手机APP支付总结:
一. 支付宝手机APP支付:
支付宝手机APP文档: https://doc.open.alipay.com/docs/doc.htm?treeId=204&articleId=105051&docType=1
首先先了解支付宝官方提供的官方文档, 说明很详细,根据流程获取APPID,私钥,秘钥, 然后下载支付宝官方提供的手机APP支付的demo或sdk, 文档和demo都很详细, 如果在测试时遇到问题, 可以找在线的人工服务进行沟通解决方案.
二. 客户端调用接口
客户端在服务端调用接口时,只需要给客户端提供支付宝的OrderString即可, 字符串是以&符号拼接的, 客户端接收后即可调起支付宝, 但是要保证的是参数值要保证正确的情况下客户端才可以调起支付宝, 支付宝有提供OrderString的示例. PHP服务端SDK生成APP支付订单信息示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
$aop
=
new
AopClient;
$aop
->gatewayUrl =
"https://openapi.alipay.com/gateway.do"
;
$aop
->appId =
"app_id"
;
$aop
->rsaPrivateKey =
'请填写开发者私钥去头去尾去回车,一行字符串'
;
$aop
->format =
"json"
;
$aop
->charset =
"UTF-8"
;
$aop
->signType =
"RSA2"
;
$aop
->alipayrsaPublicKey =
'请填写支付宝公钥,一行字符串'
;
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request
=
new
AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent
=
"{\"body\":\"我是测试数据\","
.
"\"subject\": \"App支付测试\","
.
"\"out_trade_no\": \"20170125test01\","
.
"\"timeout_express\": \"30m\","
.
"\"total_amount\": \"0.01\","
.
"\"product_code\":\"QUICK_MSECURITY_PAY\""
.
"}"
;
$request
->setNotifyUrl(
"商户外网可以访问的异步地址"
);
$request
->setBizContent(
$bizcontent
);
//这里和普通的接口调用不同,使用的是sdkExecute
$response
=
$aop
->sdkExecute(
$request
);
//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
echo
htmlspecialchars(
$response
);
//就是orderString 可以直接给客户端请求,无需再做处理。
|
需要注意的是当客户端接收到的这个orderString是以&格式拼接的字符串的话, 客户端是不能调起支付宝的, 需要服务端进行处理以数组的格式让客户端进行拼接字符串, 或者让客户端处理, 这个需要客户端和服务端进行沟通.
三. 支付完成回调处理
客户端在调用支付宝支付完成后, 根据客户端提供的同步或者异步回调的方法中进行处理更新订单的状态信息,如果你有其他的操作, 也可以在支付完成后操作即可.
以上即是支付宝手机App支付个人遇到的问题及处理方法, 仅供参考.
本文转自噼里啪啦啦 51CTO博客,原文链接:http://blog.51cto.com/pilipala/1916618,如需转载请自行联系原作者