PHP 支付宝APP支付 (TP5)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Drug_/article/details/83897487

PHP交流群:294088839

1.进行支付请求

require_once './payment/zfb/pagepay/service/AlipayTradeService.php';
require_once './payment/zfb/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
$payInfo=Db::name('pay_type')->where(['pay_id'=>1])->find();
$zfb=json_decode($payInfo['pay_json'],true);

//商品订单号
$out_trade_no=$order_data['order_number'];
//订单名称,必填
$subject='购买订单';
//付款金额
$total_amount=$zongMoney;
//商品描述
$body =  $out_trade_no . '-' . $user_id.'-'.$zongMoney;
$timeout_express="1m";
$aop = new \AopClient;
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = $zfb['app_id'];
$aop->rsaPrivateKey = $zfb['merchant_private_key'];
$aop->format = "json";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = $zfb['alipay_public_key'];
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request = new \AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = json_encode(array(
    'body'=>$body,
    'subject' => $subject,//支付的标题,
    'out_trade_no' => $out_trade_no,//支付宝订单号必须是唯一的,不能在支付宝再次使用,必须重新生成,哪怕是同一个订单,不能重复。否则二次支付时候会失败,订单号可以在自己订单那里保持一致,但支付宝那里必须要唯一,具体处理自己操作!
    'timeout_express' => $timeout_express,//過期時間(分钟)
    'total_amount' => $total_amount,//金額最好能要保留小数点后两位数
    'product_code' => 'QUICK_MSECURITY_PAY'
));
$request->setNotifyUrl(config('u_z_notify_url'));
$request->setBizContent($bizcontent);

//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
  //correctStatus 这个函数时我自定义的 json 函数 根据你们实际情况来进行处理
$json=correctStatus($response);
echo $json;//就是orderString 可以直接给客户端请求,无需再做处理。

2.回调地址的认证什么跟我上一篇支付宝网页支付一样

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/83897487