• thinkphp6.0 集成Alipay 手机和电脑端支付的方法


    本文由 BI8EJM 原创,转载请注明出处!

    第一步

      下载 Alipay 的PHP SDK  :https://docs.open.alipay.com/54/103419/

    第二步

      解压下载都到的压缩包:

      解压后得到的文件内容如图

       

    第三步、上传得到的目录中的 aop 文件夹到 thinkphp 6.0 的 extend 目录,如下图:

      

     第四步、修改 AopClient.php 文件,加入命名空间 aop 具体修改如下图

      在第二行位置,也就是最开始的位置,加入代码:

    namespace aop;

      

     第五步、修改 PC 支付文件 AlipayTradePagePayRequest.php 同样是加入命名空间 namespace aop equest ,具体如下:

      在第二行位置,也就是最开始的位置,加入代码:

    namespace aop
    equest;

      

     第六步、使用PC支付接口,生成支付链接

      PS:接口方法这不是统一定义、而是在购买控制器中直接定义的,如要统一可以创建公共控制器或其他方法统一。

      1.在 确认订单的控制器 ,我这里是 Buy 中引入支付方法。

      

    use aopAopClient;
    use aop
    equestAlipayTradePagePayRequest;
    

      

      

      2.创建私有方法 $alipay_config ,替换下面红色的内容部分,为你的信息,具体信息在你的支付宝开发者平台获取,地址:https://openhome.alipay.com/platform/appManage.htm#/apps

        private $alipay_config = array(
            'app_id' => '你的app_id',
            'notify_url'=>"https://xxx.com/xxx/ 这是你的异步通知地址",
            'merchant_private_key' => '你的私钥',
            'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
            'public_key' => "你的公钥",
        );
    

      

       3.配置、引入 aop

            $aop = new AopClient();
            $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
            $aop->appId = $this->alipay_config['appid'];
            $aop->method = 'alipayTradePagePay';
            $aop->charset = 'utf-8';
            $aop->signType = 'RSA2';
    
            $aop->alipayrsaPublicKey = $this->alipay_config['public_key'];
            $aop->rsaPrivateKey      = $this->alipay_config['private_key'];
    

      4.生成  biz_content 内容,具体内容可根据自己需求增删,具体文档参考:https://docs.open.alipay.com/api_1/alipay.trade.page.pay/ 

        参数解释:

          out_trade_no :订单号,阿里要求是唯一的。

          product_code :销售产品码,与支付宝签约的产品码名称。注:目前仅支持 FAST_INSTANT_TRADE_PAY

          total_amount :支付金额

          subject :订单名称

          timeout_express : 支付过期时间,订单创建后多久过期,这里 设置 30m 意思是,订单创建后 30 分钟后过期,过期了这个就不能支付了,这里只是alipay这里不能支付,不要搞晕了。

            $biz_content = json_encode([
                'out_trade_no'=> rand(11111111,99999999),
                'product_code'=> 'FAST_INSTANT_TRADE_PAY',
                'total_amount'=> 99.9,
                'subject'=> 'BI8EJM Alipay 测试',
                'timeout_express'=>'30m',
            ]);
    

      

      5. 引入 PC 支付 并显示 支付链接

      

            $payRequest= new AlipayTradePagePayRequest();
    
            $payRequest->setReturnUrl(url('index/index'));
            $payRequest->setNotifyUrl($this->alipay_config['notify_url']);
            $payRequest->setBizContent($biz_content);
            $response = $aop->sdkExecute($payRequest);
    echo '<a href="'.'https://openapi.alipay.com/gateway.do?'.$response.'">

      

      至此,支付链接生成就完毕了。

    第七步、测试打开支付链接

      

      点击:立即支付 成功跳转到支付页面

    第八步、异曲同工。

      这里仅仅展示了 PC 的支付,说好的手机支付呢?手机支付一样,你只需要在手机支付接口文件中,指定命名空间,然后引入手机支付方法即可,希望你能顺利完成。

      

  • 相关阅读:
    结对编程——四则运算
    需求分析
    结对编程
    调查问卷的心得体会
    软件工程课初步目标
    软件工程课程建议
    结对编程--fault,error,failure
    结对编程--四则运算
    需求分析
    结对编程
  • 原文地址:https://www.cnblogs.com/ckoo/p/11556258.html
Copyright © 2020-2023  润新知