微信小程序接入微信支付實(shí)現(xiàn)過(guò)程詳解
一、基本介紹
1、支付場(chǎng)景:點(diǎn)擊支付按鈕喚起微信支付彈窗,輸入正確密碼后完成支付。
2、基本流程:點(diǎn)擊支付按鈕首先生成一個(gè)訂單,然后在后端調(diào)用微信api接口進(jìn)行統(tǒng)一下單,將接口返回的數(shù)據(jù)回傳到前端拉起支付操作,然后異步通知支付結(jié)果。
二、配置信息
1、微信公眾平臺(tái)配置
點(diǎn)擊功能 – 微信支付,關(guān)聯(lián)一下 注冊(cè)好的微信商戶平臺(tái)
1、微信商戶平臺(tái)配置
(1)設(shè)置證書和密鑰
登錄微信商戶平臺(tái),點(diǎn)擊賬戶中心 – API安全,設(shè)置證書和兩個(gè)密鑰(此處兩個(gè)密鑰設(shè)置為相同的。
(2)申請(qǐng)JSAPI支付
①點(diǎn)擊產(chǎn)品中心 – 我的產(chǎn)品 ,點(diǎn)擊申請(qǐng)JSAPI支付。
②填寫支付授權(quán)目錄
開發(fā)配置中需要填寫支付授權(quán)目錄(后端服務(wù)器域名)
三、編碼實(shí)現(xiàn)
1、獲取用戶的openId
必須要有微信用戶的openid才可以喚醒支付功能。openid由微信公眾號(hào)提供,是對(duì)于消費(fèi)者微信產(chǎn)生的唯一用戶身份標(biāo)識(shí)。
獲取方法:傳送門
2、獲取prepay_id和支付簽名驗(yàn)證paySign
商戶在小程序中先調(diào)用接口在微信支付服務(wù)后臺(tái)生成預(yù)支付交易單,返回正確的預(yù)支付交易后調(diào)起支付。
(1)調(diào)用接口生成預(yù)支付訂單拿到訂單id
orderInsert(data).then(res => { if (res.data.code === 1) { this.getPayInfo(res.data.data.id) } else { wx.showToast({ title: res.data.msg, icon: 'none' }) } })
(2)通過(guò)訂單id調(diào)用接口獲取用戶支付所需參數(shù)
getPayInfo(id) { unifiedOrder({id}).then(res => { if(res.data.code === 1) { this.payMoney(res.data.data) } else { wx.showToast({ title: res.data.msg, icon: "error" }) } } }
(3)通過(guò)wx.requestPayment
方法調(diào)用起支付功能
payMoney(moneyData) { wx.requestPayment({ timeStamp: moneyData.timeStamp, nonceStr: moneyData.nonceStr, package: moneyData.packageValue, signType: moneyData.signType, paySign: moneyData.paySign, success(res) { }, fail(res) { wx.showToast({ title: "支付失敗!", icon: "error" }) } }) }
四、流程總結(jié)
(1)小程序獲取微信openId以及訂單號(hào)傳給后臺(tái)
(2)后臺(tái)根據(jù)openId和訂單號(hào)進(jìn)行簽名post微信統(tǒng)一下單接口
(3)后臺(tái)獲取微信返回的xml字符串解析二次簽名后返回給前端
(4)前端調(diào)起微信支付API
到此這篇關(guān)于微信小程序接入微信支付實(shí)現(xiàn)過(guò)程詳解的文章就介紹到這了,更多相關(guān)小程序接入微信支付內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript面向?qū)ο笾薪涌趯?shí)現(xiàn)方法詳解
這篇文章主要介紹了JavaScript面向?qū)ο笾薪涌趯?shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了javascript面向?qū)ο蠼涌诘母拍睢?shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07DWR實(shí)現(xiàn)模擬Google搜索效果實(shí)現(xiàn)原理及代碼
本文主要介紹DWR實(shí)現(xiàn)模擬Google搜索效果實(shí)現(xiàn)原理,感興趣的朋友可以了解下,或許對(duì)你的DWR學(xué)習(xí)有幫助,閑話就不多說(shuō)了,看代碼了2013-01-01關(guān)于foreach循環(huán)中遇到的問(wèn)題小結(jié)
這篇文章主要介紹了關(guān)于foreach循環(huán)中遇到的問(wèn)題總結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05使用Web Uploader實(shí)現(xiàn)多文件上傳
這篇文章主要介紹了使用Web Uploader實(shí)現(xiàn)多文件上傳的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06js 數(shù)組 find,some,filter,reduce區(qū)別詳解
區(qū)分清楚Array中filter、find、some、reduce這幾個(gè)方法的區(qū)別,根據(jù)它們的使用場(chǎng)景更好的應(yīng)用在日常編碼中。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06JavaScript對(duì)象拷貝與賦值操作實(shí)例分析
這篇文章主要介紹了JavaScript對(duì)象拷貝與賦值操作,結(jié)合實(shí)例形式分析了javascript對(duì)象定義、拷貝、賦值等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12JavaScript使用forEach()與jQuery使用each遍歷數(shù)組時(shí)return false 的區(qū)別
這篇文章主要介紹了JavaScript使用forEach()與jQuery使用each遍歷數(shù)組時(shí)return false 的區(qū)別,非常不錯(cuò),需要的朋友可以參考下2016-08-08JavaScript實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01