讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 17.10 訂單查詢 >

17.10 訂單查詢

查詢訂單接口如下。


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 }