您好,登錄后才能下訂單哦!
我前段時間做微信支付,遇到了很多坑,網上也沒有講解的特別明白的,通過借鑒各路人才的經驗,最后也完成了,網上有很多講解,我在這只講一些注意點和解決的方法。我就講講我從完全懵到完成的過程吧。
在微信提供的接口文檔中提供了一個微信支付接口,應該是直接調用這個接口就可以發起微信支付
文檔路徑:https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html#wxrequestpaymentobject
但是,當開始信心滿滿的去看所需參數時,懵逼了,這些參數是什么
在這些參數中最難理解和獲取的就是這兩個了,仔細研究后發現,package這個參數的獲取要調用微信提供的另一個接口,統一下單接口。原來在微信中支付需要先進行一下預下單。這里的時間戳使用的是秒值,不是毫秒值
文檔路徑:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
這個接口就需要后臺通過http請求來調了
而在這些參數中,有兩個參數很眼熟,在第一步發起微信請求時也有這兩個參數,后發現這里的隨機字符串就是調起支付時用到的隨機字符串,而且是必須一致,那么簽名呢,要是也認為一樣就完全調溝里了,這里的簽名我稱為一次簽名,因為支付的時候要進行第二次簽名。簽名生成算法有講解,多讀幾遍就明白了,我建議讀個幾十遍。
把這些必填的參數都準備好
很重要的是你要首先有個店鋪,就有商戶號了
訂單號必須唯一哦,通知地址就是當支付成功后微信會回調這個地址,在這里你可以做一些事,比如修改訂單狀態什么的。
然后就是簽名生成,這個很重要:把需要的參數都放到一個map中,然后對這些參數進行排序,然后把商品key拼接到后面進行MD5加密就生成簽名了,我還是建議仔細看看簽名生成算法,不要想太復雜,就是排序,拼接,加密三步完成。
最后就是準備參數傳輸了,這里的參數傳輸是以xml的方式傳輸,下面就是傳輸的數據,其實就是一個大的字符串,
你可以這樣
String s =“<xml>” +"<appid>wxdxxxxxxxxx</appid>" +"<mch_id>10000100</mch_id>" +"<nonce_str>24jtlk2j3ltjl2kjlkt3j</nonce_str>" +"<sign>432l4j5j4325l23k4j5lj34</sign>" +"</xml>"
我就意思一下了,大家懂就行,其實就是一個字符串,完全可以通過遍歷參數map來自己拼接的。
然后就是把這個大字符串傳過去,以上沒問題的話就會返回一個字符串的xml,格式類型咱們拼接的參數。
從中取出我們需要的東西,最重要的應該就是這個,預下單id,這就是之前咱們需要的package
使用時是這樣的:package='prepay_id=201411109120471241k1241240124bk1k24'
然后就是二次簽名了,簽名生成順序和第一次是一樣的,主要要確定需要哪些參數。
然后把這些參數返回給前臺使用,取出來放進去就行了。
到這里前端調用一下就發起支付了。
有什么問題歡迎提問
以上所述是小編給大家介紹的微信小程序調用支付接口支付詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。