注冊 | 登陸
您的位置:阿里西西 > 編程技術 > 手機APP編程 > 詳細內容

公眾號微信支付遭遇:微信支付JSAPI報錯:支付驗證簽名

  稿源:互聯網   2019-03-08   點擊:   撤稿糾錯
在開發微信支付的JSAPI功能時,進行各種調試工作到最后一步時,又遇到了坑。官方文檔的坑不是一般的多! 本文詳解一下個人在解決這個問題的排坑方法。
本站收錄這篇文章公眾號微信支付遭遇:微信支付JSAPI報錯:支付驗證簽名失敗 錯誤排坑文章,詳細解說文章中相關公眾號 微信支付 JSAPI 支付驗證 簽名 技術與知識,歡迎能給大家一些在這方面的支持和幫助!下面是詳細內容:

根據這個微信支付JSAPI報錯:支付驗證簽名失敗 的原因,我們可以很肯定的問題就出在了JSAPI簽名驗證方面。

首先梳理一下JSAPI的流程。

先從第一步統一下單接口開始。本人已經把Native招碼接口的支付完成了,但轉到JSAPI來的時候,就問題百出。

當統一下單的交易類型 trade_type 設置為JSAPI的時候,比Native掃碼支付就多了個參數,那就是 prepay_id  !理清楚這個很關鍵。

也就是說要實現JSAPI支付,那么我們就要進行兩次簽名的過程。為什么要談到簽名這事,因為我們的問題提示就是支付簽名失敗!

好,下面接著說兩次簽名的過程,第一次簽名是先提交統一下單的請求,在這里很多人都發現 如果在統一下單的時候,不填寫sign_type為MD5,則會默認使用HMAC-SHA256加密,這個是我們要排的第一個坑。

雖然進行JSAPI統一下單時,你不不填寫sign_type=MD5時,還是能成功取得prepay_id的返回值,但我建議第一份統一下單的簽名還是把這個參數帶上(至少我后面排坑時也是帶上的,并且通過了!)

這時,我們把帶sign_type=MD5參數的統一下單取到了prepay_id,接著進行第二次簽名,也就是H5頁面支付所需要的簽名。

這一步,我通過了官方的在線工具:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

進行了初步的調試驗證!

通過工具,我們可以少走很多彎路,清楚的看到參數的排列簽名加密順序。

這樣我們就可以很輕松的寫出加密簽名的代碼:

UCase(MD5("appId="&AppID&"&nonceStr="&nonstr&"&package=prepay_id="&prepay_id&"&signType=MD5&timeStamp="×tr&"&key="&MchKey&""))

上面的代碼加密出來就是H5頁面所需要的正確的第二次簽名了!

調試時,可以把nonceStr隨機數和timeStamp寫成非變量明文,進行和工具測試,檢驗SIGN正確后再重新寫為變量值。

很多人在這一步也會遇到: 調用支付JSAPI缺少參數:total_fee  的錯誤,這個錯誤并非是total_fee金額的問題,而是參數的一些錯誤,比如大小寫問題,說到大小寫問題,這里一定要清楚,第一份統一下單簽名的參數名大小寫和第二份H5簽名的參數名大小寫是不一樣的,appid和appId的區別,你懂的,一定要嚴格按開發文檔的參數名進行書寫,避免進坑!

如果您遇到同樣的問題,有幸能看到這篇本站站長親歷寫下的文章,我想按步驟去排查,你應該很快就能解決這個問題了!!

教程內容到此結束,歡迎您再次訪問http://www.hmtlio.tw,我們致力于提供豐富的web開發教程及資源。

相關閱讀

相關排行總榜

ASP教程

PHP教程

.NET教程

ASP采集功能WinHttp.WinHttpRequest.5.1的
AspJpeg圖片處理組件屬性的詳細中文使用說
通過ASP生成html純靜態頁面的簡單示例
ASP開發中一個把GB2312轉UTF-8編碼的函數
推薦幾個ASP開發中常用的fso操作文件圖片
ASP讀取操作生成excel文件的實例代碼教程
使用ASP進行網站開發防范ASP木馬的10條建
通過ASP調用MSSQL數據庫視圖和存儲過程的
通過aspupload上傳組件實現的ASP實現遠程
ASP調用MSSQL存儲過程進行分頁的兩種方式
PHP解決HTTP和HTTPS跨域共享session的方法
php程序判斷來訪客戶端是手機端還是電腦P
用PHP來獲取當前頁面所有url參數信息的教
配置好環境后,進行php代碼調試的方法總結
教您使用php代碼實現上傳圖片或文件到服務
PHP開發中推薦十款最出色的安全開發工具庫
PHP基礎學習之數組介紹
淺談JSP與ASP.PHP的各種平臺應用比較
php制作一個萬年歷查詢的實例代碼教程
制作簡單安全的php驗證碼類代碼實例
ASP.NET環境配置中幾種身份驗證方式及權限
記錄一次對ASP.NET網站漏洞的入侵和防范教
Asp.net在mvc環境下實現上傳頭像加剪裁功
對 ASP.NET 異步編程的一點理解與分析
ASP.NET讀取與操作Session的代碼案例教程
ASP.NET將大文件數據分成較小的部分進行分
講解.Net組件程序設計之異步調用
AS腳本與Asp.net通過UrlRequest進行前端交
一組常用的.NET命名空間中文解釋
asp.net解決url地址欄傳遞中文參數出現亂
彩票25选5开奖结果