uniapp實現(xiàn)支付功能
詳細參考:
https://gitee.com/copperpeas/uniapp-payment
uniapp-payment
介紹
uniapp支付
微信支付流程
測試接入的是uniapp官方預(yù)下單接口
APP應(yīng)用首先去微信等開發(fā)平臺申請開通支付,部分支付渠道需要配置支付目錄,授權(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
簡單流程: 第一步:調(diào)用登錄接口,獲取到用戶的openid等 第二步:Code,價格等發(fā)送給后臺,后臺發(fā)送微信生成預(yù)支付訂單,并且返回訂單信息 第三步:小程序拿到預(yù)下單訂單信息,發(fā)起支付,調(diào)起支付APP 第四步:后臺驗證支付結(jié)果
小程序第三步調(diào)起支付給APP調(diào)起支付參數(shù)不一樣,大體流程是一致的
商戶系統(tǒng)和微信支付系統(tǒng)主要交互:
1、小程序內(nèi)調(diào)用登錄接口,獲取到用戶的openid,api參見公共api【小程序登錄API】
2、商戶server調(diào)用支付統(tǒng)一下單,api參見公共api【統(tǒng)一下單API】
3、商戶server調(diào)用再次簽名,api參見公共api【再次簽名】
4、商戶server接收支付通知,api參見公共api【支付結(jié)果通知API】
5、商戶server查詢支付結(jié)果,api參見公共api【查詢訂單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: "支付失敗,原因為: " + res .errMsg, showCancel: false }) }, complete: () => { this.loading = false; } })
APP支付 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3
簡單流程:
第一步:獲取支付類型,APPid,支付金額 第二步:發(fā)送給后臺,后臺發(fā)送微信生成預(yù)支付訂單,并且返回訂單信息 第三步:拿到預(yù)下單訂單信息,發(fā)起支付,調(diào)起支付APP 第四步:后臺驗證支付結(jié)果
商戶系統(tǒng)和微信支付系統(tǒng)主要交互說明:
步驟1:用戶在商戶APP中選擇商品,提交訂單,選擇微信支付。
步驟2:商戶后臺收到用戶支付單,調(diào)用微信支付統(tǒng)一下單接口。參見【統(tǒng)一下單API】。
步驟3:統(tǒng)一下單接口返回正常的prepay_id,再按簽名規(guī)范重新生成簽名后,將數(shù)據(jù)傳輸給APP。參與簽名的字段名為appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式為Sign=WXPay
步驟4:商戶APP調(diào)起微信支付。api參見本章節(jié)【app端開發(fā)步驟說明】
步驟5:商戶后臺接收支付通知。api參見【支付結(jié)果通知API】
步驟6:商戶后臺查詢支付結(jié)果。api參見【查詢訂單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: "支付失敗,原因為: " + e.errMsg, showCancel: false }) }, complete: () => { this.providerList[index].loading = false; } })
微信有預(yù)下單,而支付寶不存在
支付寶支付流程
支付寶支付參考 https://docs.open.alipay.com/ 左邊支付欄目 支付寶APP支付 https://docs.open.alipay.com/204/105297
簡單流程:
第一步:獲取支付類型,APPid,支付金額
第二步:發(fā)送給后臺,后臺針對支付寶請求參數(shù)說明,組裝數(shù)據(jù),返回訂單信息
第三步:拿到組裝單訂單信息,發(fā)起支付,調(diào)起支付APP
第四步:后臺驗證支付結(jié)果
到此這篇關(guān)于uniapp實現(xiàn)支付功能的文章就介紹到這了,更多相關(guān)uniapp 支付內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳細談?wù)凧avaScript中循環(huán)之間的差異
JS循環(huán)語句也叫迭代語句,是一種特殊的語句,主要用于需要多次執(zhí)行的代碼塊,下面這篇文章主要給大家介紹了關(guān)于JavaScript中循環(huán)之間的差異的相關(guān)資料,需要的朋友可以參考下2021-08-08關(guān)于window.pageYOffset和document.documentElement.scrollTop
window.pageYOffset:Netscape屬性,指的是滾動條頂部到網(wǎng)頁頂部的距離2011-04-04JavaScript使用DeviceOne開發(fā)實戰(zhàn)(四)仿優(yōu)酷視頻應(yīng)用
這篇文章主要介紹了JavaScript使用DeviceOne開發(fā)實戰(zhàn)(四)仿優(yōu)酷視頻應(yīng)用的相關(guān)資料,需要的朋友可以參考下2015-12-12