首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》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      * 生成接口参数XML16      */17     function createXml18     {19         try20         {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;// 公众账号ID28                $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 }