欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-04-05 15:34:45
本文由 BI8EJM 原创,转载请注明出处! 第一步 下载 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/ 第二步 解压下载都到的压缩包: 解压后得到的文件内容如图 第三步、上传得到的目录中的 aop 文件夹到 thinkphp 6. ......

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

第一步

  下载 alipay 的php sdk  :

第二步

  解压下载都到的压缩包:

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

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

 

 

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

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

 

 

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

 

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

namespace aop;

 

 

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

 

 

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

 

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

namespace aop\request;

 

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

 

 

 

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

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

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

  

use aop\aopclient;
use aop\request\alipaytradepagepayrequest;

  

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

 

 

  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 内容,具体内容可根据自己需求增删,具体文档参考: 

    参数解释:

      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.'">

  

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

 

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

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

 

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

 

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

 

 

 

第八步、异曲同工。

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