微信掃碼i支付~官方DEMO的坑

返回目錄php

以前寫過關於微信支付那些坑的文章(《微信JSApi支付~集成到MVC環境後的最後一個坑(網上沒有這種解決方案)》,《微信JSApi支付~坑和如何填坑》),下面說一下微信官方提供的"掃碼支付",一配置,一運行,生成了一個二維碼,手機一掃,出現了"獲取商戶訂單信息超時或商戶返回httpcode非200",在百度上一問,都是說簽名錯誤,固然個人簽名必定沒錯,因此,還要本身找問題,通過了一翻測試與日誌,終於找到了一個點,那就是關於字典類型的對象的判斷上,判斷一個沒不在的鍵,而後使用這個鍵,而後就是失敗,連異常都不報,暈!html

下面是關於掃碼支持用到的文件數據庫

簡單說一下這幾個文件的功能api

NativePayPage.aspx:掃碼支付發起頁面微信

NativeNotifyPage.aspx:由微信服務端進行回調的頁面,這個在公衆平臺進行設置(微信支持->開發設置->權限目錄;微信支持->開發設置->支付回調)異步

ResultNotifyPage.aspx:處理微信訂單信息,在WxPayConfig類裏進行配置post

最後,咱們將官方的DEMO裏的BUG註釋一下, 支付就能夠成功了測試

文件:WxPayData類的FromXml方法,把對應的代碼註釋便可,由於這時,m_values字典里根本沒有return_code鍵,因此不能處理成功.微信支付

對於知識的研究,咱們有時確實要多加後日志,請不要太相信大公司寫的公開API,它們可能也有BUG!url

後記掃碼支付的兩種模式

模式1開發流程:
一、生成二維碼(https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4),給買家掃碼
二、回調到上圖設置的回調的URL當中,獲得必要的參數,調用統一下單API,生成參數,提交到微信接口,並把這些參數保存到數據庫(最重要的是 商戶訂單號,此訂單號再微信支付成功異步回調中,會返回這個訂單號,也就是說,訂單號是此條數據的惟一標識)
三、步驟2中統一下單會返回一個 code_url(二維碼鏈接),生成二維碼,給買家掃碼
四、買家打開微信掃碼,支付完成。
五、微信進入回調的url (該回調的URL在下單的API的參數中)
六、在回調的接口中獲取微信傳過來的參數。根據商戶訂單號--修改數據庫的數據。 推送到APP成功的狀態

模式2開發流程:
一、調用統一下單API,生成參數,提交到微信接口,並把這些參數保存到數據庫(最重要的是商戶訂單號,此訂單號再微信支付成功異步回調中,會返回這個訂單號,也就是說,訂單號是此條數據的惟一標識)
二、步驟2中統一下單會返回一個 code_url(二維碼鏈接),生成二維碼,給買家掃碼
三、買家打開微信掃碼,支付完成。
四、微信進入回調的url (該回調的URL在下單的API的參數中)
五、在回調的接口中獲取微信傳過來的參數。根據商戶訂單號--修改數據庫的數據。 推送到APP成功的狀態

 返回目錄

相關文章
相關標籤/搜索