Hyperf 引入支付宝app支付遇到的坑

1首先把SDK放入项目里

2.

require __DIR__.'/storage/alipay-sdk-PHP-4.9.0/aop/AopClient.php';//记得用__DIR__相对路径

require __DIR__.'/storage/alipay-sdk-PHP-4.9.0/aop/request/AlipayTradeAppPayRequest.php';

use AopClient;

use AlipayTradeAppPayRequest;

/**

total_amount订单金额   out_trade_no订单号  subject商品描述

*/

public function appPay($total_amount,$out_trade_no,$subject){

        $aop = new AopClient;

        $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";

        $aop->appId = "appid";

        $aop->rsaPrivateKey = '商户私钥';

        $aop->format = "json";

        $aop->charset = "UTF-8";

        $aop->signType = "RSA2";

        $aop->alipayrsaPublicKey = 支付宝公钥';

        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay

        $request = new AlipayTradeAppPayRequest();

        //SDK已经封装掉了公共参数,这里只需要传入业务参数

        $post_data = [

            "out_trade_no" => $out_trade_no,

            "total_amount" => $total_amount,

            "subject" => $subject

        ];

        $request->setNotifyUrl("回调地址");//记得一定要在这里设置回调地址不要去平台设置,另外这个接口是POST请求接口数据里有out_trade_no订单号  trade_no流水号等参数

        $request->setBizContent(json_encode($post_data));

        //这里和普通的接口调用不同,使用的是sdkExecute

        $response = $aop->sdkExecute($request);

        return $response;//就是orderString 可以直接给客户端请求,无需再做处理。这里是最坑的,官方DEMO在这里进行h5转化会产生&等一系列后果,版本更新之后直接返回$response就可以了

 

    }

你可能感兴趣的:(swoole框架搭建及使用,新奇技术学习)