小程序|支付宝小程序唤起支付

支付是小程序生态中的重要一环,但支付宝给出的文档确不够详细,大大增加了小程序的开发难度,本文旨在说明支付宝小程序唤起支付的详细过程,用以降低开发文档的阅读难度。

支付需要配置能力列表中的小程序支付能力和获取会员基础信息的能力。
根据小程序API文档给出的说明,my.tradePay是用于发起支付的 API,实例代码如下:
// .js my.tradePay({ // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_no tradeNO: '201711152100110410533667792', success: (res) => { my.alert({ content: JSON.stringify(res), }); }, fail: (res) => { my.alert({ content: JSON.stringify(res), }); } });

但其中tradeNO参数需要调用统一收单交易创建接口(alipay.trade.create)来获得,需要注意:
  • alipay.trade.create 接口在小程序场景中 buyer_id 参数必填,且入参的 buyer_id(用户 user_id,2088 开头)必须和前端唤起支付的支付宝账号一致。
所以调用alipay.trade.create接口需要以下参数:
app_id: 小程序APPID
charset: UTF-8
format: json
method: alipay.trade.create
sign_type: RSA2
timestamp: 2021-10-29 10:43:27
version: 1.0
biz_content: {"out_trade_no":"202108230101010022","total_amount":0.01,"subject":"iphone XS","buyer_id":user_id,"timeout_express":"10m"}
sign: 签名
sign由上面的参数与私钥计算而来,详情参见签名。
user_id即用户ID,需要通过alipay.system.oauth.token接口获得,调用接口需要以下参数:
app_id: 小程序APPID
method: alipay.system.oauth.token
charset: utf-8
sign_type: RSA2
timestamp: 2021-10-29 13:31:32
version: 1.0
grant_type: authorization_code
code: auth_code
sign: 签名
需要注意的是,auth_code是用户授权码,需要通过my.getAuthCodeAPI获取,实例如下:
my.getAuthCode({ scopes: 'auth_user', success: (res) => { my.alert({ content: res.authCode, }); }, });

综上所述,支付宝小程序唤起支付以下步骤进行:
1、调用my.getAuthCodeAPI获取用户授权码authCode。
2、调用alipay.system.oauth.token接口,传入authCode以及其他必选参数获得user_id。
3、调用alipay.trade.create接口,传入user_id及其他必选参数获取tradeNO。
【小程序|支付宝小程序唤起支付】4、调用my.tradePayAPI发起支付,从而唤起支付宝支付功能。

    推荐阅读