微信支付(公衆號支付)踩坑之路

業務場景:

h5頁面生成二維碼,用戶使用微信掃描二維碼進行支付

代碼流程:

a.前端點擊支付調用後端下單接口 =>

b.下單接口生成訂單並返回訂單號 =>

c.下單接口裏面直接使用訂單號去調用自己業務的統一下單接口(本來應該是返回前端,下單成功前端再回調統一支付接口) =>

d.判斷是微信支付(我的所有支付都放一個接口,使用types區分支付類型),調起微信的統一下單 =>

e.調用成功之後(返回的 result.result_code !== 'FAIL')調用簽名方法,返回前端調起微信支付需要的參數

坑:

1、openid與商戶appid不匹配

我的解決方案:appid錯誤,更換商戶對應正確的appid

2、調用支付JSAPI缺少參數:total_fee

我的解決方案:AppID或者AppSecret不對,這個報錯比較坑,檢查一下訂單編號是不是重複或者沒有

3、最大的坑:::簽名錯誤問題

  首先說說微信有兩個地方需要進行簽名生成(sign),

     (1) 微信統一下單的時候  d   (微信統一下單接口文檔

           統一下單的時候會根據傳入的參數進行sign生成,這個把所有參數按照文檔寫好就行,唯一要注意的中文編碼問題

     (2) 調用統一下單之後給前端返回微信支付需要的參數的時候  e  (微信內H5調起支付)

           在這裏也會調用你傳入的參數進行sign生成,,但是一定一定一定要注意,,這裏的參數是大小寫和參數寫入的順序都是固定的,一定要嚴格的看着這些參數從傳入到json對象轉爲字符串連接之後大小寫都是按照文檔來的(我的坑就在這裏,轉成字符串的時候把大寫都變爲了小寫,導致最後生成的sign錯誤,這裏有微信支付接口簽名校驗工具可以使用。如果這裏面生成的sign和程序生成的不一樣,那就去檢查一下大小寫和參數順序)

這裏提供一個解決方案比較詳細鏈接進行參考:

http://www.alixixi.com/biancheng/a/2019030898593.shtml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章