支付是小程序生态中的重要一环,但支付宝给出的文档确不够详细,大大增加了小程序的开发难度,本文旨在说明支付宝小程序唤起支付的详细过程,用以降低开发文档的阅读难度。
支付需要配置能力列表中的小程序支付能力和获取会员基础信息的能力。根据小程序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接口需要以下参数:
- alipay.trade.create 接口在小程序场景中 buyer_id 参数必填,且入参的 buyer_id(用户 user_id,2088 开头)必须和前端唤起支付的支付宝账号一致。
app_id: 小程序APPIDsign由上面的参数与私钥计算而来,详情参见签名。
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: 签名
user_id即用户ID,需要通过alipay.system.oauth.token接口获得,调用接口需要以下参数:
app_id: 小程序APPID需要注意的是,auth_code是用户授权码,需要通过my.getAuthCodeAPI获取,实例如下:
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: 签名
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发起支付,从而唤起支付宝支付功能。
推荐阅读
- 微信开发|一文实现微信小程序支付 史上最全版
- 小程序|微信小程序转uniapp
- 微信小程序|微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)
- 微信小程序|微信小程序学习之旅--零基础制作自己的小程序--第二个页面的制作
- vue|微信小程序中的web-view,实现微信小程序与h5页面间跳转
- 小程序|微信小程序入门篇
- 微信小程序|二、零基础入门微信小程序项目开发之页面跳转实现
- 微信小程序|微信小程序学习之旅--第一个页面的制作
- 微信小程序|轻松入门微信小程序云开发(详细)