uniapp开发H5微信支付
// #ifdef WEB || H5
// npm install jweixin-module
const jweixin = require('jweixin-module');
// #endif
/**
* 对接支付
* @param params 对应orderInfo对象值
* @return 输入支付结果
**/
const getPay = (params = {}) => {
let provider, orderInfo;
let getProvider_type = null;
getProvider().then(res => {
getProvider_type = res;
})
// #ifdef APP
orderInfo = 'orderInfo';
// #endif
// #ifdef MP-WEIXIN
orderInfo = {
"appId": params.appId, //公众号名称,由商户传入
"timeStamp": params.timeStamp, //时间戳
"nonceStr": params.nonceStr, //随机串
"package": params.package,
"signType": params.signType, //微信签名方式:
"paySign": params.paySign //微信签名
};
// #endif
// #ifdef WEB || H5
let data = params;
return new Promise((reslove, reject) => {
jweixin.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timeStamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.paySign, // 必填,签名
jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表
})
jweixin.error(function(err) {
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
// console.error('config错误', err)
});
jweixin.ready(function(ren) {
jweixin.chooseWXPay({
timestamp: data.timeStamp, // 时间戳
nonceStr: data.nonceStr, // 随机数
package: data.package, //
signType: data.signType,
paySign: data.paySign, // 签名
success: function(res) {
uni.showToast({
title: '支付成功'
});
reslove({
type: true,
back: 'success'
})
},
cancel: function(can) {
uni.showToast({
title: '取消支付',
icon: 'none'
});
reslove({
type: false,
back: 'cancel'
})
},
fail: function(err) {
uni.showToast({
title: '支付失败',
icon: 'none'
});
reslove({
type: false,
back: 'fail'
})
}
})
})
})
// #endif
// #ifdef MP-WEIXIN
return new Promise((reslove, reject) => {
uni.requestPayment({
"provider": getProvider_type && getProvider_type.provider && getProvider_type
.provider[0] ? getProvider_type.provider[0] : 'wxpay',
...orderInfo,
success(res) {
reslove(res)
},
fail(err) {
reject(err)
}
})
})
// #endif
}
标签:uniapp,orderInfo,data,jweixin,H5,params,微信,getProvider,type
From: https://blog.csdn.net/weixin_44085311/article/details/137002650