詳解微信小程序調(diào)用支付接口支付
我前段時(shí)間做微信支付,遇到了很多坑,網(wǎng)上也沒(méi)有講解的特別明白的,通過(guò)借鑒各路人才的經(jīng)驗(yàn),最后也完成了,網(wǎng)上有很多講解,我在這只講一些注意點(diǎn)和解決的方法。我就講講我從完全懵到完成的過(guò)程吧。
在微信提供的接口文檔中提供了一個(gè)微信支付接口,應(yīng)該是直接調(diào)用這個(gè)接口就可以發(fā)起微信支付
文檔路徑:https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html#wxrequestpaymentobject

但是,當(dāng)開(kāi)始信心滿滿的去看所需參數(shù)時(shí),懵逼了,這些參數(shù)是什么

在這些參數(shù)中最難理解和獲取的就是這兩個(gè)了,仔細(xì)研究后發(fā)現(xiàn),package這個(gè)參數(shù)的獲取要調(diào)用微信提供的另一個(gè)接口,統(tǒng)一下單接口。原來(lái)在微信中支付需要先進(jìn)行一下預(yù)下單。這里的時(shí)間戳使用的是秒值,不是毫秒值
文檔路徑:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

這個(gè)接口就需要后臺(tái)通過(guò)http請(qǐng)求來(lái)調(diào)了

而在這些參數(shù)中,有兩個(gè)參數(shù)很眼熟,在第一步發(fā)起微信請(qǐng)求時(shí)也有這兩個(gè)參數(shù),后發(fā)現(xiàn)這里的隨機(jī)字符串就是調(diào)起支付時(shí)用到的隨機(jī)字符串,而且是必須一致,那么簽名呢,要是也認(rèn)為一樣就完全調(diào)溝里了,這里的簽名我稱為一次簽名,因?yàn)橹Ц兜臅r(shí)候要進(jìn)行第二次簽名。簽名生成算法有講解,多讀幾遍就明白了,我建議讀個(gè)幾十遍。
把這些必填的參數(shù)都準(zhǔn)備好
很重要的是你要首先有個(gè)店鋪,就有商戶號(hào)了
訂單號(hào)必須唯一哦,通知地址就是當(dāng)支付成功后微信會(huì)回調(diào)這個(gè)地址,在這里你可以做一些事,比如修改訂單狀態(tài)什么的。
然后就是簽名生成,這個(gè)很重要:把需要的參數(shù)都放到一個(gè)map中,然后對(duì)這些參數(shù)進(jìn)行排序,然后把商品key拼接到后面進(jìn)行MD5加密就生成簽名了,我還是建議仔細(xì)看看簽名生成算法,不要想太復(fù)雜,就是排序,拼接,加密三步完成。
最后就是準(zhǔn)備參數(shù)傳輸了,這里的參數(shù)傳輸是以xml的方式傳輸,下面就是傳輸?shù)臄?shù)據(jù),其實(shí)就是一個(gè)大的字符串,
你可以這樣
String s =“<xml>” +"<appid>wxdxxxxxxxxx</appid>" +"<mch_id>10000100</mch_id>" +"<nonce_str>24jtlk2j3ltjl2kjlkt3j</nonce_str>" +"<sign>432l4j5j4325l23k4j5lj34</sign>" +"</xml>"

我就意思一下了,大家懂就行,其實(shí)就是一個(gè)字符串,完全可以通過(guò)遍歷參數(shù)map來(lái)自己拼接的。
然后就是把這個(gè)大字符串傳過(guò)去,以上沒(méi)問(wèn)題的話就會(huì)返回一個(gè)字符串的xml,格式類型咱們拼接的參數(shù)。

從中取出我們需要的東西,最重要的應(yīng)該就是這個(gè),預(yù)下單id,這就是之前咱們需要的package
使用時(shí)是這樣的:package='prepay_id=201411109120471241k1241240124bk1k24'
然后就是二次簽名了,簽名生成順序和第一次是一樣的,主要要確定需要哪些參數(shù)。

然后把這些參數(shù)返回給前臺(tái)使用,取出來(lái)放進(jìn)去就行了。

到這里前端調(diào)用一下就發(fā)起支付了。
有什么問(wèn)題歡迎提問(wèn)
以上所述是小編給大家介紹的微信小程序調(diào)用支付接口支付詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
提高團(tuán)隊(duì)代碼質(zhì)量利器ESLint及Prettier詳解
這篇文章主要為大家介紹了提高團(tuán)隊(duì)代碼質(zhì)量利器ESLint及Prettier使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
JavaScript中對(duì)循環(huán)語(yǔ)句的優(yōu)化技巧深入探討
這篇文章主要介紹了JavaScript中對(duì)循環(huán)語(yǔ)句的優(yōu)化技巧深入探討,本文翻譯自一個(gè)臺(tái)灣朋友的文章,需要的朋友可以參考下2014-06-06
Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因
Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因,需要的朋友可以參考一下2013-05-05
javascript屬性訪問(wèn)表達(dá)式用法分析
這篇文章主要介紹了javascript屬性訪問(wèn)表達(dá)式用法,實(shí)例分析了javascript屬性訪問(wèn)表達(dá)式的功能與使用方法,需要的朋友可以參考下2015-04-04
微信小程序?qū)崿F(xiàn)拍照畫(huà)布指定區(qū)域生成圖片
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)拍照畫(huà)布指定區(qū)域生成圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
超漂亮的Bootstrap 富文本編輯器summernote
Summernote 是一個(gè)簡(jiǎn)單,靈活,所見(jiàn)即所得(WYSIWYG)的編輯器,基于 jQuery 和 Bootstrap 構(gòu)建。對(duì)bootstrap 文本編輯器相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-04-04
解決uni-app報(bào)錯(cuò)Error:?read?EBADF?at?Pipe?.?onStreamRead...
這篇文章主要介紹了uni-app報(bào)錯(cuò)Error:?read?EBADF?at?Pipe?.?onStreamRead...解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
詳解微信小程序之scroll-view的flex布局問(wèn)題
這篇文章主要介紹了詳解微信小程序之scroll-view的flex布局問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
解決echarts官網(wǎng)打不開(kāi)訪問(wèn)失敗的問(wèn)題
這篇文章主要介紹了解決echarts官網(wǎng)打不開(kāi)訪問(wèn)失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10

