支付宝支付

支付宝支付

function  order_pay($sn,$price)
{
    //合作身份者id,以2088开头的16位纯数字
    $alipay_config['partner']     = '2088121321528708';
    //收款支付宝账号
    $alipay_config['seller_email'] = 'itbing@sina.cn';
    //安全检验码,以数字和字母组成的32位字符
    $alipay_config['key']        = '1cvr0ix35iyy7qbkgs3gwymeiqlgromm';
    //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
    //签名方式 不需修改
    $alipay_config['sign_type']    = strtoupper('MD5');
    //字符编码格式 目前支持 gbk 或 utf-8
    //$alipay_config['input_charset']= strtolower('utf-8');
    //ca证书路径地址,用于curl中ssl校验
    //请保证cacert.pem文件在当前文件夹目录中
    //$alipay_config['cacert']    = getcwd().'\\cacert.pem';
    //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
    $alipay_config['transport']    = 'http';
    $parameter = array(
        "service" => "create_direct_pay_by_user",
        "partner" => $alipay_config['partner'], // 合作身份者id
        "seller_email" => $alipay_config['seller_email'], // 收款支付宝账号
        "payment_type" => '1', // 支付类型
        "notify_url"   => "http://localhost/mstreet.lzpphp.com/asy", // 服务器异步通知页面路径
        "return_url"   => "http://localhost/mstreet.lzpphp.com/syn", // 页面跳转同步通知页面路径
        "out_trade_no" => $sn, // 商户网站订单系统中唯一订单号
        "subject"  => $sn, // 订单名称
        "total_fee"    => $price, // 付款金额
        "body" => "《男人街》订单", // 订单描述 可选
        "show_url" => "", // 商品展示地址 可选
        "anti_phishing_key"    => "", // 防钓鱼时间戳  若要使用请调用类文件submit中的query_timestamp函数
        "exter_invoke_ip"  => "", // 客户端的IP地址
        "_input_charset"   => 'utf-8', // 字符编码格式
    );

    // 去除值为空的参数
    foreach ($parameter as $k => $v) {
        if (empty($v)) {
            unset($parameter[$k]);
        }
    }
    // 参数排序
    ksort($parameter);
    reset($parameter);

    // 拼接获得sign
    $str = "";
    foreach ($parameter as $k => $v) {
        if (empty($str)) {
            $str .= $k . "=" . $v;
        } else {
            $str .= "&" . $k . "=" . $v;
        }
    }
    $parameter['sign'] = md5($str . $alipay_config['key']);    // 签名
    $parameter['sign_type'] = $alipay_config['sign_type'];
    $html = "https://mapi.alipay.com/gateway.do?".$str.'&sign='.$parameter['sign'].'&sign_type='.$parameter['sign_type'];
    return  $html;

}

同步异步


    //同步
    public function syn(Request $request)
    {
        $session = new Session();
        $users = $session->get('users');
        $result = $request->input();
        if($result['is_success']=='T'){
            $re = DB::table('man_order_info')->where('order_sn',$result['subject'])
                ->update([
                    'pay_status'=>1,
                    'money_paid'=>$result['total_fee'],
                    'pay_time'=>$result['notify_time']
                ]);
            if($re){
                DB::table('man_cart')->where('user_id',$users['user_id'])->delete();
                echo "<script>alert('完成支付,返回首页');location.href='index'</script>";
            }else{
                echo "<script>alert('支付状态修改失败,请联系客服');location.href='index'</script>";
            }
//            echo "这是同步";
        }else{
            echo "<script>location.href='index'</script>";
        }

    }

    //异步
    public function asy(Request $request)
    {
        $data = $request->input();
        print_r($data);die;
        $out_trade_no = $data['out_trade_no'];
        $trade_status = $data['trade_status'];
        $gmt_payment = $data['gmt_payment'];
        $re = DB::table('man_order_info')->where('order_sn',$out_trade_no)->first();
        if($re)
        {
            $res = DB::table('man_order_info')->where('order_sn',$out_trade_no)->update([
                'pay_status'=>1,
                'pay_time'=>$gmt_payment
            ]);
            if($res){
                echo 'success';
            }
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值