近期使用uniapp写了一个小程序,分享一下支付的过程
提示:我比较小白,也是刚使用,有不对的地方多指示
基本
提示:支付的基本过程其实可以看看官方文档就可以,介绍的也是很详细的,我就说说我在做的过程
1.生成订单和支付需要的数据
代码如下(示例):
// 点击进行生成订单
async generateOrder() {
// 新增报名信息
let data = {
//这里面是后端所以要生成订单的一些数据
}
const res = await $generateOrder(data);
if (res?.code === 200) {
//res.data.nonceStr 随机字符串后端会返回
//res.data.package 统一下单的prepay_id,后端返回
//res.data.signType 签名算法都是MD5可以自己写也可以后端返回
//res.data.paySign 支付签名,具体看微信小程序支付文档,后端返回,前端不需要做什么
//res.data.timeStamp 时间戳,官网上说当前时间,但是这个也是由后端返回不然支付是签名失败
//进行支付
this.weixinPay(res.data.nonceStr,res.data.package,res.data.signType,res.data.paySign,res.data?.timeStamp)
} else {
uni.showModal({
content: res.msg,
showCancel: false
});
}
},
2.进行支付
代码如下(示例):
weixinPay(nonceStr,pa,signType,paySign,timeStamp) {
//uniapp支付api
uni.requestPayment({
provider: 'wxpay', //服务提供商,通过 uni.getProvider 获取。微信小程序直接写 wxpay就行
timeStamp: timeStamp,
nonceStr: nonceStr,
package: pa,
signType: signType,
paySign: paySign,
//回调成功之后的操作
success: function(res) {
console.log('success:' + JSON.stringify(res));
},
//回调失败之后的操作
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
}
});
},
总结
其实仔细看uniapp文档还是很简单的