最近一直在加班做項目,好久沒有更新文章了,這段時間也遇到了不少問題,今天要分享的主要是django開發微信退款功能。做過微信支付開發的人都知道,微信支付開發文檔裡邊很多都是基于java、php、.net等的demo,很少有python,是以在開發的時候經常遇坑。django微信支付的話網上也有很多部落格寫了,但是唯獨有微信退款,少之又少,甚至沒有。因為微信退款需要證書的雙向認證,這個被坑得一匹,網上搜出來大多數都是教怎麼繞過https證書驗證,當然也有教怎麼配置,因為我看了微信文檔說除了php以外,其它均用p12這個檔案(◆ apiclient_cert.p12是商戶證書檔案,除PHP外的開發均使用此證書檔案。)害我一直用p12這個在弄結果一直認證不了,搞了兩天,後來連猜帶想的做出來了,其實很簡單,就是證書的問題,接下來開始實作。
一、準備環境: 1.django2.0及以上項目;2.requests網絡請求子產品; 3.在微信支付平台下載下傳證書

下載下傳下來後有有這幾個問題,在這裡我們用的隻有(apiclient_cert.pem和apiclient_key.pem)這兩個檔案,我們将這些檔案拷貝到項目目錄中
效果如下:
二、開發微信退款
1.在app項目的views中寫一個函數并配置路由,保證能夠通路這個函數,運作
2.運作效果:保證能正常運作
3.配置微信退款請求接口證書:這裡說明一下證書路徑即是你證書所在目錄,根據自己的目錄來配置,能通路到證書檔案就行,settings我用的是django自帶的那個settings裡面有個BASE_DIR這個就是項目的根目錄,配置好了之後,在resquests中加上cert這個參數就可以了,這裡需要注意的是順序不能放錯了,key檔案是放在後面的,配置好了之後在次運作就傳回200了,說明證書驗證就ok了,接下來就是配置退款請求參數解析請求結果就可以了。
運作效果:
4. 微信退款參數配置(微信支付開發文檔:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6)
配置好之後就可以重新整理就可以看傳回結果了
return_code 為SUCCESS就表示成功了,這裡我沒有配置參數是以報錯了。
三、總結
自此django開發微信退款功能就基本完成了,如果有問題基本就是參數簽名可能會出問題了,至少證書的雙向驗證我們是ok了的,當然還有結果需要處理,解析傳回的xml就可以了。思路大概就是這樣,有什麼問題歡迎留言,喜歡我的文章記得關注我哦!