一、准备工作:
1、微信支付需要服务端和前端配合完成,在微信支付官网(微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式)申请并开通微信支付。
2、只有企业可以申请微信支付,个人无法申请
二、支付流程
第一步:在微信小程序内调用登录接口,获取用户的openid 。通过openid可以找到当前用户AppId
第二步:在微信小程序内使用uni.request
,调用服务端“统一下单”API接口,发送给后台,后台发送微信生成预支
付订单,并且返回订单信息
第三步:拿到预下单订单信息,发起支付。在微信小程序内使用uni.requestPayment
完成微信支付
第四步:后台验证支付结果
三、代码实现
1、首先通过uni.getProvider
方法获取到用户手机里的服务商,service选择payment,共有4种方式alipay(支付宝支付)、wxpay(微信支付)、baidu(百度收银台支付)、appleiap(苹果应用内支付)。代码如下:
uni.getProvider({
service: 'payment',
success: function (res) {
//在这里进行业务逻辑处理
}
});
2、通过后台获取订单信息:
uni.request({
url: addUrl() + '/api/recharge/pay',
method: 'POST',
header: { },
data: {
//请求接口的参数
},
success: (res) => {
//获得订单信息
}
})
3、调用微信/支付宝支付:
//支付宝支付
uni.requestPayment({
provider: 'alipay',
orderInfo: orderInfo, //订单数据
success: function(res) {
//处理业务逻辑
},
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
uni.showToast({
icon: 'none',
title: '支付失败'
});
}
});
//微信支付
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfo, //订单数据
success: function(res) {
//处理业务逻辑
},
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
uni.showToast({
icon: 'none',
title: '支付失败'
});
}
});