订单查询接口
统一请求网关地址
http://pay.trsoft.xin/order/trpayGetWay
请求方式
POST
公共入参
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
appkey | string | 是 | 32 | 软件的appkey | 示例值 |
method | string | 是 | 32 | 请求方法 | trpay.trade.query |
sign | string | 是 | 32 | 签名,加密规则见下面 | 9BF3162452BBD9736A18EE44EF895DC3 |
timestamp | string | 是 | 32 | 时间戳 | 1515722592 |
version | string | 是 | 32 | 版本,固定值 | 1.0 |
订单查询业务参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
outTradeNo | string | 是 | 32 | 订单号 | e52bc78c-32c9-4457-9aca-c594bceb4c69 |
payType | string | 是 | 1 | 订单类型:1支付宝2微信3银联 | 1 |
响应格式
{
"code": "0000",
"tipMsg": "请求成功",
"data": {
"trade_state": "SUCCESS",
"trade_state_tip": "支付成功"
}
}
响应报文说明
目前接口只返回json格式,开发者需要自己解析
公共响应码
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
code | string | 是 | 32 | 公共响应码 | 0000 |
tipMsg | string | 是 | 32 | 响应说明 | 请求成功 |
data | object | 是 | 无 | 业务响应数据 | {"trade_state": "SUCCESS","trade_state_tip": "支付成功"} |
业务响应说明
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
trade_state | string | 是 | 32 | 支付状态, SUCCESS支付成功, NOTPAY未支付, CLOSED已关闭, PAYERROR支付失败 | SUCCESS |
trade_ state_tip | string | 是 | 32 | 支付状态说明 | 支付成功 |
公共响应码列表
响应码 | 类型 | 描述 |
---|---|---|
0000 | string | 请求成功 |
0001 | string | 签名错误 |
0002 | string | 参数错误 |
0003 | string | APPKEY错误或者审核未通过 |
0004 | string | 未知错误 |
支付状态码说明
响应码 | 类型 | 描述 |
---|---|---|
SUCCESS | string | 支付成功 |
NOTPAY | string | 未支付 |
CLOSED | string | 已关闭 |
PAYERROR | string | 支付失败 |
Sign加密算法:
签名算法 签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
- 参数名ASCII码从小到大排序(字典序);
- 如果参数的值为空不参与签名;
- 参数名区分大小写;
- 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
- 微信接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
举例:
假设传送的参数如下:
method=trpay.trade.query
version=1.0
outTradeNo=d295bbda-c820-46b8-ab40-80965ce7c2a7
timestamp=12345678
payType=2
appkey=fa77295e1ac34381baa7e36b5b01816d
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringA="appkey=fa77295e1ac34381baa7e36b5b01816d&method=trpay.trade.query&outTradeNo=d295bbda-c820-46b8-ab40-80965ce7c2a7&payType=2×tamp=12345678&version=1.0";
第二步:拼接软件的密钥:
stringSignTemp=stringA+"&appSceret=095f2030160e4d8199c08bde45b27582" //注:appSceret为软件的密钥,可进入后台获取
sign=MD5(stringSignTemp).toUpperCase()="9BF3162452BBD9736A18EE44EF895DC3"
网友评论