文章出處

返回目錄

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

下面是關于掃碼支持用到的文件

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

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

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

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

最后,我們將官方的DEMO里的BUG注釋一下, 支付就可以成功了

文件:WxPayData類的FromXml方法,把對應的代碼注釋即可,因為這時,m_values字典里根本沒有return_code鍵,所以不能處理成功.

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

后記掃碼支付的兩種模式

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

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

 返回目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()