php tp5支付宝app支付,tp5 接入支付宝 APP支付

首先去官网下载SDK,申请app_id等,就不说了,必备的东西

直接说源码操作

首先预下单:(生成参数)

···

public function ali_trade_pay($order)

{

import('.Alipay.aop.AopClient', '', '.php');

import('.Alipay.aop.request.AlipayTradeAppPayRequest', '', '.php');

$aop = new \AopClient();

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

$aop->appId = "商户号";

$aop->rsaPrivateKey = '*****************************';//商户私钥,去头去尾去回车,一行字符串

$aop->format = "json";

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

$aop->signType = "RSA2";

$aop->alipayrsaPublicKey = '*******************************';//支付宝公钥,去头去尾去回车,一行字符串

$request = new \AlipayTradeAppPayRequest();

$bizcontent = "{\"body\":\"".$order['order_sn']."\","

. "\"subject\": \"".$order['order_sn']."\","

. "\"out_trade_no\": \"". $order['out_trade_no']."\","//商户订单号

. "\"timeout_express\": \"30m\","

. "\"total_amount\": \"".$order['order_amount']."\","//支付金额

. "\"product_code\":\"QUICK_MSECURITY_PAY\""

. "}";

$request->setNotifyUrl(APP_URL.'cen/Callback/aliNotify/');//回调地址

$request->setBizContent($bizcontent);

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

//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题

//$response = htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。 接口类请注释,如果是直接输出页面到Js,可以不注释

return $response;

}

···

APP端通过接口唤起支付即可

注意:APP支付 只支持RSA2加密!!!!

app_id和权限要给

他的转码JSON,有时候会异常,所以可以改用、

$arr=[]; //参数条件

$bizcontent=json_encode($arr);

$request->setBizContent($bizcontent);

然后注意回调:

//支付宝回调

public function aliNotify()

{

import('.Alipay.aop.AopClient', '', '.php');

import('.Alipay.aop.request.AlipayTradeAppPayRequest', '', '.php');

$aop = new \AopClient();

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

$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");

//验证通过

if($flag == true && ‘验证条件’)

{

//根据返回的信息进行订单处理

$flow = new model\Flow();

$flow->order_paid($_POST['out_trade_no'],$_POST['trade_no']);

echo "success"; //支付宝

}

else

{

echo "fail";

}

}

获取订单号和状态,验签,然后判断状态

$_POST['trade_status'] == 'TRADE_SUCCESS'

该结果为成功,通过订单号去查询状态并进行数据库业务逻辑

注意,支付宝在返回非success下,会多次调用该接口,请做好返回值判断

同时,请根据订单号去数据库查状态,是否充值过,防止重复入库

接入完成。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值