小程式 微信退款功能實現講解 (PHP方式)
☹. 背景
- 微信開發中,既然涉及到了微信支付,對於合理的購物網站,必定會有使用者退款請求
- 當然,一種方式是登入 微信商戶平臺 ,在
交易列表
中進行微信退款操作 - 但是,如果業務量龐大,作為友好互動,自然需要進行程式碼實現 微信退款 操作咯
稍作一提,這是針對 小程式退款申請
的方法指導(目測跟公眾號退款沒啥區別)
理論上 ,請對應參考文章: ofollow,noindex"> 小程式微信支付 例項配置詳解
程式語言: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()
方法
-
具體的使用,請閱讀我的註釋程式碼就好
附錄:
❶. 實現效果

❷. Github 原始碼下載 >>>
- 強調:如果你的前期準備已經完成,可只需參考原始碼
wxMini-PayDemo\Server-PHP\PayController.class.php