做一个普通网站多少钱,百度网站收录查询,企业网站的购买方式,wordpress当前导航菜单本文示例基于 uniapp 的 uni.requestPayment() 微信支付拉起方法封装及调用示例#xff1a;
方法封装
注#xff1a;方法为 vue3 hooks 写法 可直接复制使用#xff0c;但要注意传入的 data 参数中的各字段名#xff0c;结合各自拉起支付时后端返回的参数字段做相应修改。…本文示例基于 uniapp 的 uni.requestPayment() 微信支付拉起方法封装及调用示例
方法封装
注方法为 vue3 hooks 写法 可直接复制使用但要注意传入的 data 参数中的各字段名结合各自拉起支付时后端返回的参数字段做相应修改。
/*** 吊起微信支付* param {Object} data 支付参数对象至少包含timeStampnonceStrpackagesignTypepaySign* param {String} successTip 支付成功后的提示文本默认支付成功* param {String} failTip 支付失败 后的提示文本默认支付未完成*/
export function wxPay(data, successTip 支付成功, failTip 支付未完成) {return new Promise((resolve, reject) {// 这里校验这5个参数是因为这个api拉起微信支付这5个参数是必填的如果要拉起其他小程序的支付则不一定必须这5个if(!data?.timeStamp || !data?.nonceStr || !data?.package || !data?.signType || !data?.paySign) return resolve(false)uni.requestPayment({provider: wxpay,timeStamp: data.timeStamp,nonceStr: data.nonceStr,package: data.package,signType: data.signType,paySign: data.paySign,success(result) {uni.showToast({icon: success,title: successTip})resolve(true)},fail(e) {uni.$u.toast(failTip)resolve(false)}})})
}
调用示例
注wxPay 方法会返回一个 Promise 所以可以使用 .then() 来获取支付结果由上面方法可知.then() 中会返回一个表示支付是否成功的 boolean 值。
// ...这里的 buyVip 为调用后端接口的 api 它会返回拉起微信支付所需参数
const res await buyVip(params)
if (res.code 200) {wxPay(res.data, 会员服务已开通).then(isPay {if (isPay) { // 支付成功时 isPay 为 truegetUserDataDetail().then(data {if (data.code 200) {store.setUserInfo(data.data)}})}})
}