查询订单接口如下。
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 }