1.首先建立一個promise函數:minix --》pay.js小程序
// 小程序端支付 // #ifdef MP-WEIXIN pay(path, paramsData) { console.log(arguments); paramsData.payment = 'minipay'; return new Promise((resolve, reject) => { //建立一個promise(),第一個參數resolve表示成功的返回參數,第二個參數reject表示失敗的返回參數 if (paramsData.payment) { uni.showActionSheet({ itemList: ['微信支付', '支付寶支付'], success: function (res) { console.log(paramsData) paramsData.payment = 'minipay'// ['wxpay', 'alipay'][res.tapIndex] }, fail: function (err) { reject(err);//表示失敗後返回的數據 } }); } else { uni.login({ provider: 'weixin', success: (loginRes) => { console.log(loginRes); paramsData.code = loginRes.code; this.$api[path].pay(paramsData).then(res => { console.log('你好你好年後') console.log(res) let resData = res.data.meta; this.order_id = res.data.id; // 小程序支付 uni.requestPayment({ provider: 'wxpay', appId: resData.appId, timeStamp: resData.timeStamp, nonceStr: resData.nonceStr, package: resData.package, signType: resData.signType, paySign: resData.paySign, success: (res) => { resolve(res);//表示成功後返回的數據 }, fail: (err) => { reject(err); } }); }); }, fail: err => { reject(err); } }); } }) } // #endif
2.調用上面封裝好的函數:api
other.veu:
引入pay.js中的函數paypromise
1. import pay from '@/mixins/pay.js';微信
2. 用this調用方法app
this.pay("order", { id: id, operation: "pay" }).then(res => { console.log(res)//此處返回值是上面的resolve(res)的數據 }).catch(err => { console.log(err)//此處返回值是上面reject(err);的數據 })