由于文档中写的不清楚,所以走了些弯路,记录下来
前端所要做的就是
-
请求后端接口,获取到orderinfo
-
调用支付API uni.requestPayment
-
处理回调
主要就是orderinfo格式文档写的不够清楚,这里进行说明orderinfo完全是后端返回的,前端不做任何处理,所以orderinfo有问题推给后端,前端不用浪费时间, app的支付不管ios还是android都是string类型
微信orderinfo格式
"{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"
支付宝orderinfo格式
app_id=xxxxxxxxx&method=xxxxxxxxxx&format=JSON&charset=UTF-8&sign_type=RSA2&version=1.0&return_url=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx¬ify_url=xxxxx×tamp=xxxxxx&sign=xxxxxxx&biz_content=xxxxxxxxxx
uni.requestPayment({
provider: 'alipay',
orderInfo: '后端返回的orderinfo字符串',
success: res => {
// 进入此回调说明支付成功
},
fail: err => {
const message = err.errMsg || '';
if (message.indexOf('[payment支付宝:62001]') !== -1) {
uni.showModal({
content: '您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。',
showCancel: false
});
} else {
uni.showModal({
content: '支付失败,原因为: ' + message,
showCancel: false
});
}
},
complete: () => {
this.submitting = false;
}
});
17 个评论
要回复文章请先登录或注册
2***@qq.com
1***@163.com
gftttrrtrt4 (作者)
6***@qq.com
gftttrrtrt4 (作者)
2***@qq.com
前海万联