# 查询订单

> 使用本接口需要开启[开放接口服务](/minigame/dev/wxcloudrun/src/guide/weixin/open)

该接口提供所有微信支付订单的查询，商户可以通过该接口主动查询订单状态，完成下一步的业务逻辑。

需要调用查询接口的情况：

- 当商户后台、网络、服务器等出现异常，商户系统最终未接收到支付通知；
- 调用支付接口后，返回系统错误或未知交易状态情况；
- 调用被扫支付 API，返回 USERPAYING 的状态；
- 调用关单或撤销接口 API 之前，需确认支付状态；

## 接口地址

``` bash
http://api.weixin.qq.com/_/pay/queryorder
```

## 入参数据

``` json
{
  "out_trade_no":"2021WERUN1647840687637",
  "sub_mch_id":"1712734762"
}
```

## 出参数据

``` json
{
  "errcode":0,
  "errmsg":"ok",
  "respdata":{
    "return_code":"SUCCESS",
    "return_msg":"OK",
    "appid":"wxd2565e6a04246fd1",
    "mch_id":"1800780001",
    "sub_appid":"wxd2565e6a04246fd1",
    "sub_mch_id":"1712734762",
    "nonce_str":"C5h9TIF57KyXXr3M",
    "sign":"99C4B35B4DE79AD46B9F6F541F3EF586",
    "result_code":"SUCCESS",
    "openid":"oPoIm-roYxAo441g3WD3D_6I-4bE",
    "is_subscribe":"N",
    "sub_openid":"oCKlip5njeZWaC4oeOVEoXi1TTsk",
    "trade_type":"JSAPI",
    "trade_state":"SUCCESS",
    "bank_type":"OTHERS",
    "total_fee":1,
    "fee_type":"CNY",
    "cash_fee":1,
    "cash_fee_type":"CNY",
    "coupon_id_list":[],
    "coupon_type_list":[],
    "coupon_fee_list":[],
    "transaction_id":"4204860361200001213072203688",
    "out_trade_no":"2021WERUN1647840687637","attach":"",
    "time_end":"20220321135131",
    "trade_state_desc":"测试微信支付"
  }
}
```

## 参数说明

| 字段名| 变量名 | 必填 | 类型 | 示例值 | 描述|
|---|----|---|------|--------|-----------|
| 子商户号| sub_mch_id | 是 | String(32) | 1900000109 | 微信支付分配的子商户号|
| 微信订单号| transaction_id | 二选一 | String(32) | 1009660380201506130728806387 | 微信的订单号，优先使用|
| 商户订单号| out_trade_no | 二选一 | String(32) | 1217752501201407033233368018 | 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-\|*@ ，且在同一个商户号下唯一。 |
| 随机字符串| nonce_str| 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 随机字符串，不长于32位。推荐随机数生成算法|

## 返回值说明

| 字段名 | 变量名| 必填 | 类型| 示例值 | 描述 |
|---|---|------|---|----------|----------|
| 返回状态码 | return_code | 是 | String(16)| SUCCESS| SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看trade_state来判断 |
| 返回信息 | return_msg| 否 | String(128) | 签名失败 | 返回信息，如非空，为错误原因。如 签名失败、参数格式校验错误|

以下字段在 return_code 为 SUCCESS 的时候有返回

| 字段名| 变量名 | 必填 | 类型| 示例值 | 描述 |
|---|---|------|---|----------|--------|
| 服务商的APPID | appid| 是 | String(32)| wxd678efh567hg6787 | 服务商商户的APPID|
| 商户号| mch_id | 是 | String(32)| 1230000109 | 微信支付分配的商户号 |
| 小程序的APPID | sub_appid| 是 | String(32)| wx8888888888888888 | 微信分配的小程序ID |
| 子商户号| sub_mch_id | 是 | String(32)| 1900000109 | 微信支付分配的子商户号 |
| 随机字符串| nonce_str| 是 | String(32)| 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串，不长于32位。推荐[随机数生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884#2%E3%80%81%E7%94%9F%E6%88%90%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%AE%97%E6%B3%95) |
| 签名| sign | 是 | String(32)| C380BEC2BFD727A4B6845133519F3AD6 | 签名，详见[签名生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884#1%E3%80%81%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95) |
| 业务结果| result_code| 是 | String(16)| SUCCESS| SUCCESS/FAIL |
| 错误代码| err_code | 否 | String(32)| SYSTEMERROR| 错误码 |
| 错误代码描述| err_code_des | 否 | String(128) | 系统错误 | 结果信息描述 |

以下字段在 returnCode 和 result_code 都为 SUCCESS 的时候有返回

| 字段名 | 变量名 | 必填 | 类型| 示例值 | 描述 |
|--------|----------|------|---|------|--------|
| 设备号 | device_info| 否 | String(32)| 013467007045764 | 微信支付分配的终端设备号， |
| 用户标识 | openid | 是 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 用户在商户appid下的唯一标识|
| 是否关注公众账号 | is_subscribe | 是 | String(1) | Y| 用户是否关注公众账号，Y-关注，N-未关注 |
| 用户子标识 | sub_openid | 否 | String(128) | wxd930ea5d5a258f4f | 用户在子商户appid下的唯一标识|
| 是否关注子公众账号 | sub_is_subscribe | 否 | String(1) | Y| 用户是否关注子公众账号，Y-关注，N-未关注 |
| 交易类型 | trade_type | 是 | String(16)| JSAPI| 调用接口提交的交易类型，取值如下：JSAPI，NATIVE，APP，MICROPAY，详细说明见[参数规定](https://pay.weixin.qq.com/doc/v2/partner/4011941200) |
| 交易状态 | trade_state| 是 | String(32)| SUCCESS| SUCCESS—支付成功 
 REFUND—转入退款 
NOTPAY—未支付 
 CLOSED—已关闭 
 REVOKED—已撤销（刷卡支付） 
 USERPAYING--用户支付中 
 PAYERROR--支付失败(其他原因，如银行返回失败) |
| 付款银行 | bank_type| 是 | String(16)| CMC| 银行类型，采用字符串类型的银行标识 |
| 订单金额 | total_fee| 是 | Int | 100| 订单总金额，单位为分 |
| 标价币种 | fee_type | 否 | String(8) | CNY| 货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见[货币类型](https://pay.weixin.qq.com/doc/v2/partner/4011941200#3%E3%80%81%E8%B4%A7%E5%B8%81%E7%B1%BB%E5%9E%8B)|
| 应结订单金额 | settlement_total_fee | 否 | Int | 100| 当订单使用了免充值型优惠券后返回该参数，应结订单金额=订单金额-免充值优惠券金额。 |
| 现金支付金额 | cash_fee | 是 | Int | 100| 现金支付金额订单现金支付金额，详见[支付金额](https://pay.weixin.qq.com/doc/v2/partner/4011941200#1%E3%80%81%E4%BA%A4%E6%98%93%E9%87%91%E9%A2%9D) |
| 现金支付货币类型 | cash_fee_type| 否 | String(16)| CNY| 货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见[货币类型](https://pay.weixin.qq.com/doc/v2/partner/4011941200#3%E3%80%81%E8%B4%A7%E5%B8%81%E7%B1%BB%E5%9E%8B)|
| 代金券金额 | coupon_fee | 否 | Int | 100| “代金券或立减优惠”金额<=订单总金额，订单总金额-“代金券或立减优惠”金额=现金支付金额，详见[支付金额](https://pay.weixin.qq.com/doc/v2/partner/4011941200#1%E3%80%81%E4%BA%A4%E6%98%93%E9%87%91%E9%A2%9D) |
| 代金券使用数量 | coupon_count | 否 | Int | 1| 代金券或立减优惠使用数量 |
| 代金券ID | coupon_id_$n | 否 | String(20)| 10000| 代金券或立减优惠ID, $n为下标，从0开始编号|
| 代金券类型 | coupon_type_$n | 否 | String| CASH | CASH--充值代金券 
 NO_CASH---非充值优惠券 
 开通免充值券功能，并且订单使用了优惠券后有返回（取值：CASH、NO_CASH）。$n为下标,从0开始编号，举例：coupon_type_$0|
| 单个代金券金额 | coupon_fee_$n| 否 | Int | 100| 单个代金券或立减优惠支付金额, $n为下标，从0开始编号|
| 微信支付订单号 | transaction_id | 是 | String(32)| 1217752501201407033233368018| 微信支付订单号 |
| 商户订单号 | out_trade_no | 是 | String(32)| 1217752501201407033233368018| 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-\|*@ ，且在同一个商户号下唯一。 |
| 商家数据包 | attach | 否 | String(128) | 123456 | 商家数据包，原样返回 |
| 支付完成时间 | time_end | 是 | String(14)| 20141030133525 | 订单支付时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。其他详见[时间规则](https://pay.weixin.qq.com/doc/v2/partner/4011941200#4%E3%80%81%E6%97%B6%E9%97%B4)|
| 交易状态描述 | trade_state_desc | 是 | String(256) | 支付失败，请重新下单支付 | 对当前查询订单状态的描述和下一步操作的指引 |

## 错误码

| 名称| 描述 | 原因 | 解决方案|
|---|--------|------|---|
| ORDERNOTEXIST | 此交易订单号不存在 | 查询系统中不存在此交易订单号 | 该API只能查提交支付交易返回成功的订单，请商户检查需要查询的订单号是否正确 |
| SYSTEMERROR | 系统错误 | 后台系统返回错误 | 系统异常，请再调用发起查询|
