查詢退款的接口如下。
https:// api.mch.weixin.qq.com/pay/refundquery
查詢退款時,POST數據示例如下。
<xml> <appid>wx2421b1c4370ec43b</appid> <mch_id>10000100</mch_id> <nonce_str>0b9f35f484df17a732e537c37708d1d0</nonce_str> <out_refund_no></out_refund_no> <out_trade_no>1415757673</out_trade_no> <refund_id></refund_id> <transaction_id></transaction_id> <sign>66FFB727015F450D167EF38CCC549521</sign> </xml>
上述數據的參數說明如表17-20所示。
表17-20 查詢退款接口的參數說明
正確創建時,返回的數據示例如下。
<xml> <appid><![CDATA[wx2421b1c4370ec43b]]></appid> <mch_id><![CDATA[10000100]]></mch_id> <nonce_str><![CDATA[TeqClE3i0mvn3DrK]]></nonce_str> <out_refund_no_0><![CDATA[1415701182]]></out_refund_no_0> <out_trade_no><![CDATA[1415757673]]></out_trade_no> <refund_count>1</refund_count> <refund_fee_0>1</refund_fee_0> <refund_id_0><![CDATA[2008450740201411110000174436]]></refund_id_0> <refund_status_0><![CDATA[PROCESSING]]></refund_status_0> <result_code><![CDATA[SUCCESS]]></result_code> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <sign><![CDATA[1F2841558E233C33ABA71A961D27561C]]></sign> <transaction_id><![CDATA[1008450740201411110005820873]]></transaction_id> </xml>
上述數據的參數說明如表17-21所示。
表17-21 查詢退款接口返回參數說明
退款查詢接口類的實現代碼如下。
1 /** 2 * 退款查詢接口 3 */ 4 class RefundQuery_pub extends Wxpay_client_pub 5 { 6 7 function __construct { 8 // 設置接口鏈接 9 $this->url = "https:// api.mch.weixin.qq.com/pay/refundquery"; 10 // 設置curl超時時間 11 $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT; 12 } 13 14 /** 15 * 生成接口參數XML 16 */ 17 function createXml 18 { 19 try 20 { 21 if($this->parameters["out_refund_no"] == null && 22 $this->parameters["out_trade_no"] == null && 23 $this->parameters["transaction_id"] == null && 24 $this->parameters["refund_id "] == null) 25 { 26 throw new SDKRuntimeException("退款查詢接口中,out_refund_no、out_ trade_no、transaction_id、refund_id四個參數必填一個!"."<br>"); 27 } 28 $this->parameters["appid"] = WxPayConf_pub::APPID;// 公眾賬號ID 29 $this->parameters["mch_id"] = WxPayConf_pub::MCHID;// 商戶號 30 $this->parameters["nonce_str"] = $this->createNoncestr;// 隨機字符串 31 $this->parameters["sign"] = $this->getSign($this->parameters);// 簽名 32 return $this->arrayToXml($this->parameters); 33 }catch (SDKRuntimeException $e) 34 { 35 die($e->errorMessage); 36 } 37 } 38 39 /** 40 * 作用:獲取結果,使用證書通信 41 */ 42 function getResult 43 { 44 $this->postXmlSSL; 45 $this->result = $this->xmlToArray($this->response); 46 return $this->result; 47 } 48 49 }