uniapp實(shí)現(xiàn)支付功能的方法:首先獲取可用的支付環(huán)境;然后判斷用戶是否有支付寶支付環(huán)境;接著再?gòu)暮蠖私涌讷@取相關(guān)數(shù)據(jù)配置到orderInfo里;最后拿到后端返回?cái)?shù)據(jù)后調(diào)用相關(guān)支付函數(shù)。
本教程操作環(huán)境:windows7系統(tǒng)、uni-app2.5.1版本,該方法適用于所有品牌電腦。
推薦(免費(fèi)):uni-app開(kāi)發(fā)教程
uniapp實(shí)現(xiàn)支付功能的方法:
//支付寶支付 zfbPay(){ uni.getProvider({ //獲取可用的支付環(huán)境 service: 'payment', success: res=>{ if (~res.provider.indexOf('alipay')) { //先判斷用戶是否有支付寶支付環(huán)境 uni.showLoading({title: '正在調(diào)起支付寶支付'}) let params={ //給后端傳什么參數(shù)看你的后端需要什么 money:this.moneyCount, ispc:3 } uni.request({ //再?gòu)暮蠖私涌讷@取相關(guān)數(shù)據(jù)配置到orderInfo里,這個(gè)接口由后端配置好了,返回結(jié)果見(jiàn)下圖1-支付寶 url: `${this.$baseUrl}/api-order/amstc/userRechargeAccountByAliPay`, method: 'POST', header: { "Token":this.userToken, "Content-Type":"application/x-www-form-urlencoded" }, data: params, success: res => { if(res.data.code==200){ let payInfo=res.data.data //拿到后端返回?cái)?shù)據(jù)后調(diào)用下面支付函數(shù) uni.requestPayment({ provider: 'alipay', orderInfo: payInfo, //支付寶訂單數(shù)據(jù)(string類型) success: res=>{ uni.hideLoading(); uni.showToast({title: '支付成功',icon:'none'}) }, fail:err=>{ uni.hideLoading(); uni.showToast({title: '支付失敗,請(qǐng)稍后再試',icon:'none'}) } }); } }, fail: () => { uni.hideLoading(); uni.showToast({title: '服務(wù)器開(kāi)小差了呢,請(qǐng)您稍后再試',icon:'none'}) } }); }else{ uni.showToast({title: '獲取支付寶通道失敗,請(qǐng)檢查您的支付寶是否正常啟用',icon:'none'}) } } }); }, //微信支付 wxPay(){ uni.getProvider({ service: 'payment', success: res=>{ if (~res.provider.indexOf('wxpay')) { //先判斷用戶是否有微信支付環(huán)境(是否安裝了微信app) uni.showLoading({title: '正在調(diào)起微信支付'}) let params={ money:this.moneyCount, bs:4 } uni.request({ //再?gòu)暮蠖私涌讷@取相關(guān)數(shù)據(jù)配置到orderInfo里,這個(gè)接口由后端配置好了,返回結(jié)果見(jiàn)下圖2-微信 url: `${this.$baseUrl}/api-order/amstc/userRechargeAccountByWx`, method: 'POST', header: { "Token":this.userToken, "Content-Type":"application/x-www-form-urlencoded" }, data: params, success: res => { if(res.data.code==200){ let resobj=JSON.parse(res.data.data) let payInfo={ appid: resobj.appid, noncestr: resobj.nonce_str, package:"Sign=WXPay", partnerid: resobj.mch_id, prepayid: resobj.prepay_id, timestamp: resobj.time_stamp, sign: resobj.sign, } uni.requestPayment({ provider: 'wxpay', orderInfo: payInfo, //微信訂單數(shù)據(jù)(Object類型) success: res=>{ uni.hideLoading(); uni.showToast({title: '支付成功',icon:'none'}) }, fail:err=>{ uni.hideLoading(); uni.showToast({title: '支付失敗,請(qǐng)稍后再試',icon:'none'}) } }); } }, fail: () => { uni.hideLoading(); uni.showToast({title: '服務(wù)器開(kāi)小差了呢,請(qǐng)您稍后再試',icon:'none'}) } }); }else{ uni.showToast({title: '獲取微信通道失敗,請(qǐng)檢查您的微信是否正常啟用',icon:'none'}) } } }); },
支付寶獲取orderInfo的接口
微信獲取orderInfo的接口
相關(guān)免費(fèi)學(xué)習(xí)推薦:php編程(視頻)