订单状态查询接口
网关地址
https://sandbox.j-pay.net/pay/trade/query
请求参数
参数名称 | 类型 | 是否必填 | 参与签名 | 参数说明 |
---|---|---|---|---|
pay_memberid | String | 是 | 是 | 平台分配商户号 |
pay_orderid | String | 是 | 是 | 上送订单号唯一, 字符长度 20 |
transaction_id | String | 否 | 否 | 平台订单号 |
pay_md5sign | String | 是 | 否 | 请看 MD5 签名字段格式 |
查询结果通知
参数名称 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
memberid | String | 是 | 商户 ID |
orderid | String | 是 | 商户订单号 |
amount | String | 是 | 提交的订单金额 |
true_amount | String | 是 | 买家实际付款的金额 |
time_end | String | 是 | 支付成功时间 |
transaction_id | String | 是 | 平台订单号 |
returncode | String | 是 | “00” 为成功 |
trade_state | String | 是 | NOTPAY : 未支付 PENDING : 处理中 FAIL : 失败 SUCCESS : 已支付 REFUND : 退款 |
sign | String | 否 | 请看验证签名字段格式 |
请求示例
- Javascript
- Php
- Python
import { md5 } from "js-md5";
import axios from "axios";
const KEY = "psaf5haxkfp3x66tra1nonvhkq4mpzpr";
const MEMBER_ID = "10005";
let query = {
pay_memberid: MEMBER_ID,
pay_orderid: "O20240723141428",
};
let signData = [];
Object.keys(query)
.sort()
.forEach((key) => signData.push(`${key}=${query[key]}`));
signData.push(`key=${KEY}`);
Object.assign(query, {
pay_md5sign: md5(signData.join("&")).toUpperCase(),
});
axios
.request({
url: "https://sandbox.j-pay.net/pay/trade/query",
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
data: query,
})
.then(({ data }) => {
console.log("success", data);
})
.catch((error) => {
console.log("error", error);
});
$url = 'https://sandbox.j-pay.net/pay/trade/query';
$key = 'psaf5haxkfp3x66tra1nonvhkq4mpzpr';
$memberId = '10005';
$data = [
'pay_memberid' => $memberId,
'pay_orderid' => 'O20240723141428',
];
ksort($data);
$data['key'] = $key;
$sign = strtoupper(md5(http_build_query($data)));
$data = array_merge($data, [
'pay_md5sign' => $sign,
]);
$header = [
'Content-Type: application/x-www-form-urlencoded',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
$data = curl_exec($ch);
if (curl_error($ch)) {
echo 'Curl error: ' . curl_error($ch); exit;
}
curl_close($ch);
var_dump($data);
import hashlib
import requests
url = 'https://sandbox.j-pay.net/pay/trade/query'
key = 'psaf5haxkfp3x66tra1nonvhkq4mpzpr'
params = {
'pay_memberid': '10005',
'pay_orderid': 'O20240723141428'
}
strParam = ''
for p in sorted(params):
strParam = strParam + str(p) + "=" + str(params[p]) + '&'
strParam = strParam + 'key' + '=' + key
parmStr = strParam.encode("utf-8")
m = hashlib.md5()
m.update(parmStr)
params['pay_md5sign'] = m.hexdigest().upper()
res = requests.post(url = url, data = params)
print('response:' + res.text)
返回示例
- Success
- Error
{
memberid: '10005',
orderid: 'O20240723141428',
amount: '1.80',
true_amount: '1.80',
true_currency: 'USD',
time_end: '2024-07-18 03:23:19',
transaction_id: '966782078392',
returncode: '00',
trade_state: 'SUCCESS',
sign: '0DBA5E19B1785D8C682FE1BFAC37B100'
}
{ msg: 'message', status: 'error' }