微信小程序退款申請開發的步驟
微信小程序退款申請開發的步驟相對微信支付來說比較簡單。
值得注意的有以下兩點:
1.向微信退款接口請求退款后,根據得到的響應是可以直接確定退款是否完成的。不再需要設置專門的回調接口等待微信通知。當然如果需要也是可以在微信商戶平臺設置回調接口接受從而接受微信回調的,但并不是必須的。
2.退款請求需要在請求服務器安裝微信提供的安全證書,也就是說,發起退款請求相比較支付請求在請求時請求方法不能復用,因為微信退款需要攜帶證書的請求,此證書可在申請微信商戶號成功后從微信商戶平臺自行下載,Linux下的PHP開發環境的證書只需要放在網站根目錄的cert文件夾中即可。其他開發環境可能需要導入操作。
下面講解一下退款的具體步驟
一. 用戶發起退款請求
用戶在前端發起退款請求,后端接收到退款請求,將相應訂單標記為申請退款,展示在后臺.商戶查看后,如果同意退款再進行相應操作.此后才進入真正的退款流程.
二. 商戶發起退款請求
商戶同意退款后,后端即向微信提供的退款 API 發起請求.
同請求微信支付API一樣.退款請求也需要將需要的參數進行簽名后以XML發送到微信的退款API [https://api.mch.weixin.qq.com/pay/refund](https://api.mch.weixin.qq.com/pay/refund)
退款請求需要的參數如下(多個參數在支付API請求時也有使用):
小程序 appid。
商戶號 mch_id 。申請開通微信支付商戶認證成功后微信發給你的郵件里有
商戶訂單號 out_trade_no 。退款訂單在支付時生成的訂單號
退款訂單號 out_refund_no 。由后端生成的退款單號,需要保證唯一,因為多個同樣的退款單號只會退款一次。
總金額 total_fee 。訂單總金額,單位為分。
退款金額 refund_fee 需要退款的金額,單位同樣為分
操作員 op_user_id .與商戶號相同即可
隨機字符串 nonce_str 。同支付請求
簽名 sign 。使用上面的所有參數進行相應處理加密生成簽名。(具體處理方式與支付相同,可直接復用。)
三. 退款完成
在發起退款請求后,就可以直接根據請求的響應XML中的 result_code字段來判斷退款是否成功,從而對訂單狀態進行處理和后續操作。不需要像支付那樣等待另一個接口的通知來確定請求狀態。當然如上文所說,如果需要微信服務器發送通知到后端的話,可以到微信商戶平臺進行設置。
退款因為流程與支付大同小異,因此退款的PHP類我選擇了直接繼承支付類,
代碼如下,注意區分退款請求方法postXmlSSLCurl和支付請求方法postXmlCurl的區別,這也就是上文提到的退款需要的雙向證書的使用。
第二部分:如何開通一個小商店