uniapp實(shí)現(xiàn)支付功能
詳細(xì)參考:
https://gitee.com/copperpeas/uniapp-payment
uniapp-payment
介紹
uniapp支付
微信支付流程
測(cè)試接入的是uniapp官方預(yù)下單接口
APP應(yīng)用首先去微信等開(kāi)發(fā)平臺(tái)申請(qǐng)開(kāi)通支付,部分支付渠道需要配置支付目錄,授權(quán)域名,回調(diào)函數(shù)
預(yù)下單返回參考:
"data": {
"appid": "wx0411fa6a39d61297",
"noncestr": "Xu70l0bOQSQIDIPH",
"package": "Sign=WXPay",
"partnerid": "1230636401",
"prepayid": "wx271034552844601252843eae1384334800",
"timestamp": 1569551695,
"sign": "44B127098800419D542B688054F95A8F"
},
參考官方微信支付 https://pay.weixin.qq.com/wiki/doc/api/index.html
小程序支付:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
簡(jiǎn)單流程: 第一步:調(diào)用登錄接口,獲取到用戶(hù)的openid等 第二步:Code,價(jià)格等發(fā)送給后臺(tái),后臺(tái)發(fā)送微信生成預(yù)支付訂單,并且返回訂單信息 第三步:小程序拿到預(yù)下單訂單信息,發(fā)起支付,調(diào)起支付APP 第四步:后臺(tái)驗(yàn)證支付結(jié)果
小程序第三步調(diào)起支付給APP調(diào)起支付參數(shù)不一樣,大體流程是一致的
商戶(hù)系統(tǒng)和微信支付系統(tǒng)主要交互:
1、小程序內(nèi)調(diào)用登錄接口,獲取到用戶(hù)的openid,api參見(jiàn)公共api【小程序登錄API】
2、商戶(hù)server調(diào)用支付統(tǒng)一下單,api參見(jiàn)公共api【統(tǒng)一下單API】
3、商戶(hù)server調(diào)用再次簽名,api參見(jiàn)公共api【再次簽名】
4、商戶(hù)server接收支付通知,api參見(jiàn)公共api【支付結(jié)果通知API】
5、商戶(hù)server查詢(xún)支付結(jié)果,api參見(jiàn)公共api【查詢(xún)訂單API】
拿到預(yù)下單后調(diào)用支付
uni.requestPayment({
timeStamp: paymentData.timeStamp,
nonceStr: paymentData.nonceStr,
package: paymentData.package,
signType: 'MD5',
paySign: paymentData.paySign,
success: (res) => {
uni.showToast({
title: "感謝您的贊助!"
})
},
fail: (res) => {
uni.showModal({
content: "支付失敗,原因?yàn)? " + res
.errMsg,
showCancel: false
})
},
complete: () => {
this.loading = false;
}
})
APP支付 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3
簡(jiǎn)單流程:
第一步:獲取支付類(lèi)型,APPid,支付金額 第二步:發(fā)送給后臺(tái),后臺(tái)發(fā)送微信生成預(yù)支付訂單,并且返回訂單信息 第三步:拿到預(yù)下單訂單信息,發(fā)起支付,調(diào)起支付APP 第四步:后臺(tái)驗(yàn)證支付結(jié)果
商戶(hù)系統(tǒng)和微信支付系統(tǒng)主要交互說(shuō)明:
步驟1:用戶(hù)在商戶(hù)APP中選擇商品,提交訂單,選擇微信支付。
步驟2:商戶(hù)后臺(tái)收到用戶(hù)支付單,調(diào)用微信支付統(tǒng)一下單接口。參見(jiàn)【統(tǒng)一下單API】。
步驟3:統(tǒng)一下單接口返回正常的prepay_id,再按簽名規(guī)范重新生成簽名后,將數(shù)據(jù)傳輸給APP。參與簽名的字段名為appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式為Sign=WXPay
步驟4:商戶(hù)APP調(diào)起微信支付。api參見(jiàn)本章節(jié)【app端開(kāi)發(fā)步驟說(shuō)明】
步驟5:商戶(hù)后臺(tái)接收支付通知。api參見(jiàn)【支付結(jié)果通知API】
步驟6:商戶(hù)后臺(tái)查詢(xún)支付結(jié)果。api參見(jiàn)【查詢(xún)訂單API】
拿到預(yù)下單后調(diào)用支付
uni.requestPayment({
provider: e.id,
orderInfo: orderInfo.data,
success: (e) => {
console.log("success", e);
uni.showToast({
title: "感謝您的贊助!"
})
},
fail: (e) => {
console.log("fail", e);
uni.showModal({
content: "支付失敗,原因?yàn)? " + e.errMsg,
showCancel: false
})
},
complete: () => {
this.providerList[index].loading = false;
}
})
微信有預(yù)下單,而支付寶不存在
支付寶支付流程
支付寶支付參考 https://docs.open.alipay.com/ 左邊支付欄目 支付寶APP支付 https://docs.open.alipay.com/204/105297
簡(jiǎn)單流程:
第一步:獲取支付類(lèi)型,APPid,支付金額
第二步:發(fā)送給后臺(tái),后臺(tái)針對(duì)支付寶請(qǐng)求參數(shù)說(shuō)明,組裝數(shù)據(jù),返回訂單信息
第三步:拿到組裝單訂單信息,發(fā)起支付,調(diào)起支付APP
第四步:后臺(tái)驗(yàn)證支付結(jié)果

到此這篇關(guān)于uniapp實(shí)現(xiàn)支付功能的文章就介紹到這了,更多相關(guān)uniapp 支付內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳細(xì)談?wù)凧avaScript中循環(huán)之間的差異
JS循環(huán)語(yǔ)句也叫迭代語(yǔ)句,是一種特殊的語(yǔ)句,主要用于需要多次執(zhí)行的代碼塊,下面這篇文章主要給大家介紹了關(guān)于JavaScript中循環(huán)之間的差異的相關(guān)資料,需要的朋友可以參考下2021-08-08
Javascript es7中比較實(shí)用的兩個(gè)方法示例
這篇文章主要給大家分享了關(guān)于Javascript es7中比較實(shí)用的兩個(gè)方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07
關(guān)于window.pageYOffset和document.documentElement.scrollTop
window.pageYOffset:Netscape屬性,指的是滾動(dòng)條頂部到網(wǎng)頁(yè)頂部的距離2011-04-04
Math.js解決js中小數(shù)精度丟失問(wèn)題
在JavaScript中進(jìn)行小數(shù)運(yùn)算時(shí),會(huì)容易出現(xiàn)精度丟失的問(wèn)題,例如在進(jìn)行兩個(gè)小數(shù)相加時(shí),結(jié)果并不是預(yù)期的精確值,而是一個(gè)近似值,,使用第三方庫(kù)Math.js可以避免精度丟失的問(wèn)題,本文導(dǎo)入Math.js庫(kù)和使用Math.js的方法來(lái)進(jìn)行小數(shù)運(yùn)算,同時(shí)還可以指定格式來(lái)保留小數(shù)位數(shù)2023-12-12
JS簡(jiǎn)單模擬觸發(fā)按鈕點(diǎn)擊功能的方法
這篇文章主要介紹了JS簡(jiǎn)單模擬觸發(fā)按鈕點(diǎn)擊功能的方法,涉及JavaScript事件調(diào)用機(jī)制及事件觸發(fā)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
JavaScript使用DeviceOne開(kāi)發(fā)實(shí)戰(zhàn)(四)仿優(yōu)酷視頻應(yīng)用
這篇文章主要介紹了JavaScript使用DeviceOne開(kāi)發(fā)實(shí)戰(zhàn)(四)仿優(yōu)酷視頻應(yīng)用的相關(guān)資料,需要的朋友可以參考下2015-12-12

