uniapp 微信小程序支付 App微信支付宝支付
·
微信小程序:
wx.requestPayment({
provider: 'wxpay', //支付 类型-固定值
appId: res.data.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
nonceStr: res.data.nonceStr, // 随机字符串
package: res.data.package, // 固定值
timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
signType: res.data.signType, // 签名,这里用的 MD5/RSA 签名
paySign: res.data.paySign,
success: function(res) {
uni.showToast({
title: '支付成功',
duration: 3000,
icon: 'none',
});
},
fail: function(err) {
uni.showToast({
title: '支付失败',
duration: 3000,
icon: 'none',
});
}
});
res内的东西全是向后台返回的,后台创建订单后向前台返回订单信息,然后前台拿到订单信息后向微信调起支付
APP
微信:
同样的,后台返回给res后直接向微信发起支付
this.paymentWechatHandler(res.data)
//订单回调,进行微信支付
paymentWechatHandler(paymentParams) {
// 使用微信支付接口
// paymentParams 后台返回字段 时间戳、随机字符串、签名等都是后台返回的
uni.requestPayment({
"provider": 'wxpay', // 服务商
"orderInfo": {
"appid": paymentParams.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
"noncestr": paymentParams.nonceStr, // 随机字符串
"package": paymentParams.package, // 固定值
"partnerid": paymentParams.partnerid, // 微信支付商户号
"prepayid": paymentParams.prepayid, // 统一下单订单号
"timestamp": paymentParams.timeStamp, // 时间戳(单位:秒)
"sign": paymentParams.paySign, // 签名,这里用的 MD5/RSA 签名
},
success: () => {
// 支付成功 执行想要的操作
},
fail: (err) => {
console.log(err);
uni.hideLoading();
},
});
},
支付宝:
支付宝的比较简单,只需要一个orderInfo就可以拉起
this.paymentAliHandler(res.data)
//订单回调,进行支付宝支付
paymentAliHandler(paymentParams) {
// plus.runtime.openURL(paymentParams.qrCode)
// 使用支付宝支付接口
// paymentParams 后台返回字段 支付宝小程序支付相对简单,只需要传这两个参数即可
uni.requestPayment({
provider: 'alipay',
orderInfo: paymentParams.orderInfo,
success: (res) => {
//支付成功后的操作
uni.hideLoading();
},
fail: (err) => {
//支付失败后的操作
uni.hideLoading();
},
});
},
注,以上方法只能用于原生支付,若是后台使用其他第三方支付的话以上方法不适用,推荐跳到小程序进行支付
跳转支付宝小程序支付:
saId=10000007 打开支付宝扫一扫功能
qrcode 请求网址(二维码网址)
Alipay(data) {
// plus.runtime.openURL(data.qrCode);
let url = `alipays://platformapi/startapp
saId=10000007&qrcode=${encodeURI(data.qrCode)}?_s=web-other`;
let platform = uni.getSystemInfoSync().platform; //获取平台判断
if (platform == 'android') {
plus.runtime.openURL(url)
} else if (platform == 'ios') {
plus.runtime.launchApplication({
action: url
})
}
},
更多推荐



所有评论(0)