. 背景微信開發中,既然涉及到了微信支付,對于合理的購物網站,必定會有使用者退款請求
當然,一種方式是登入 微信商戶平台,在 交易清單 中進行微信退款操作
但是,如果業務量龐大,作為友好互動,自然需要進行代碼實作 微信退款 操作咯稍作一提,這是針對 小程式退款申請 的方法指導(目測跟公衆号退款沒啥差別)
理論上,請對應參考文章:程式設計語言:PHP
使用架構:ThinkPHP3.2.3 (我也覺得過時了,算了,架構啥的隻是個殼子而已!)
. 前期準備工欲善其事, 必先利其器
.文檔閱讀畢竟都是人家微信平台的東西,使用起來不去閱讀,總感覺是對開發人員的不尊重
況且,萬一官方不定時地進行了更新,後面的道友們不去閱讀很可能會遇到更多的阻礙哦
此處不多贅述,提取着重注意的要點:a. 請求需要雙向證書 詳見 證書使用 【可根據提示,直接下載下傳參考微信支付提供的 Demo(PHP)】
b. 對于請求參數,可以隻填寫必選項

. 資源準備首先,小程式的 appid,和微信支付所需的 mch_id 缺一不可
其次,提前将獲得的雙向證書放置于自己的項目中,并記錄其通路的絕對路徑
再者,需要擷取訂單進行支付時所儲存的回調資料,其 json 字元串形式如下:{ "appid":"wx81111223333444bc0", "bank_type":"CFT", "fee_type":"CNY", "is_subscribe":"N", "nonce_str":"t8wcdduity6f6k5acng33wzv5z56o7sh", "openid":"okxsf5YWzAzEPNoV31IRqft-fa1c", "out_trade_no":"20180000011119M15362284007942", "return_code":"SUCCESS", "time_end":"20180906180644", "trade_type":"JSAPI", "transaction_id":"4200000171201809060657362048"
}上面的 json 字元串是極為重要的,不然無法追索微信支付訂單資訊
前提是在實作 微信支付時就已經做了回調儲存
▓. 代碼實作如果你的前期準備已經完成,可直接參考源碼 wxMini-PayDemo\Server-PHP\PayController.class.php
其實,核心方法隻有兩個,介紹如下:
. payRefund() 方法請使用 post 請求方式,傳參訂單号和退款金額,請認真閱讀注釋資訊,畢竟每個人的業務邏輯都不同
重要的就是擷取 array 數組形式的 $wxPayResultJsonRes

. curl_post_ssl_refund() 方法具體的使用,請閱讀我的注釋代碼就好

附錄:
. 實作效果

作者:moTzxx
連結:https://www.jianshu.com/p/0eceb5fe852b