查詢訂單接口如下。
https:// api.mch.weixin.qq.com/pay/orderquery
查詢訂單時,POST數據示例如下。
<xml> <appid>wx2421b1c4370ec43b</appid> <mch_id>10000100</mch_id> <nonce_str>ec2316275641faa3aacf3cc599e8730f</nonce_str> <transaction_id>1008450740201411110005820873</transaction_id> <sign>FDD167FAA73459FD921B144BAF4F4CA2</sign> </xml>
上述數據的參數說明如表17-16所示。
表17-16 查詢訂單接口的參數說明
正確創建時,返回的數據示例如下。
<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[wx2421b1c4370ec43b]]></appid> <mch_id><![CDATA[10000100]]></mch_id> <device_info><![CDATA[1000]]></device_info> <nonce_str><![CDATA[TN55wO9Pba5yENl8]]></nonce_str> <sign><![CDATA[BDF0099C15FF7BC6B1585FBB110AB635]]></sign> <result_code><![CDATA[SUCCESS]]></result_code> <openid><![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]></openid> <is_subscribe><![CDATA[Y]]></is_subscribe> <trade_type><![CDATA[MICROPAY]]></trade_type> <bank_type><![CDATA[CCB_DEBIT]]></bank_type> <total_fee>1</total_fee> <fee_type><![CDATA[CNY]]></fee_type> <transaction_id><![CDATA[1008450740201411110005820873]]></transaction_id> <out_trade_no><![CDATA[1415757673]]></out_trade_no> <attach><![CDATA[訂單額外描述]]></attach> <time_end><![CDATA[20141111170043]]></time_end> <trade_state><![CDATA[SUCCESS]]></trade_state> </xml>
上述數據的參數說明如表17-17所示。
表17-17 查詢訂單接口返回參數說明
查詢訂單接口類的實現代碼如下。
1 /** 2 * 查詢訂單接口 3 */ 4 class OrderQuery_pub extends Wxpay_client_pub 5 { 6 function __construct 7 { 8 // 設置接口鏈接 9 $this->url = "https:// api.mch.weixin.qq.com/pay/orderquery"; 10 // 設置curl超時時間 11 $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT; 12 } 13 14 /** 15 * 生成接口參數XML 16 */ 17 function createXml 18 { 19 try 20 { 21 // 檢測必填參數 22 if($this->parameters["out_trade_no"] == null && 23 $this->parameters["transaction_id"] == null) 24 { 25 throw new SDKRuntimeException("訂單查詢接口中,out_trade_no、transaction_ id至少填一個!"."<br>"); 26 } 27 $this->parameters["appid"] = WxPayConf_pub::APPID;// 公眾賬號ID 28 $this->parameters["mch_id"] = WxPayConf_pub::MCHID;// 商戶號 29 $this->parameters["nonce_str"] = $this->createNoncestr;// 隨機字符串 30 $this->parameters["sign"] = $this->getSign($this->parameters);// 簽名 31 return $this->arrayToXml($this->parameters); 32 }catch (SDKRuntimeException $e) 33 { 34 die($e->errorMessage); 35 } 36 } 37 38 }