查询钱包转账结果
接口说明
接口描述:商户通过该接口上送平台转账单号或商户订单号,查询转账状态。
适用对象:特约商户
请求URL:https://pay.yintongzaixian.com/api/wallet/transfer/query
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 平台转账单号 | transferId | 否 | String(30) | T1724973335227740162 | 平台转账单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 否 | String(30) | MT1699947028710 | 商户生成的订单号,与transferId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"mchOrderNo": "MT1699945076448",
"appId": "64e87b640d1480cf86ae4385",
"sign": "72A58CB144C4C3C2461AFF1340D5F5B9",
"signType": "MD5",
"reqTime": "1700101010",
"mchNo": "M1692957540",
"version": "1.0"
}
返回参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 平台转账单号 | transferId | 是 | String | T1724973335227740162 | 平台转账单号 |
| 商户号 | mchNo | 是 | String | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付接口代码 | ifCode | 是 | String(30) | hnawalletpay | 支付接口代码 |
| 商户订单号 | mchOrderNo | 是 | String | M16283883828 | 商户订单号 |
| 付款方钱包用户编号 | payWalletId | 是 | String | 124442600 | 付款方钱包用户编号 |
| 收款方钱包用户编号 | receiveWalletId | 是 | String | 124442622 | 收款方钱包用户编号 |
| 转账金额 | amount | 是 | long | 30 | 转账金额, 单位:分 |
| 转账状态 | state | 是 | int | 2 | 转账状态: 0-订单生成, 1-转账中, 2-转账成功, 3-转账失败, 4-订单关闭 |
| 渠道转账单号 | channelOrderNo | 否 | String | T7812873321y8192 | 渠道转账单号,转账状态为2时返回 |
| 转账成功时间 | successTime | 否 | String | 2023-11-01 10:02:25 | 转账成功时间,转账状态为2时返回 |
| 扩展参数 | extParam | 否 | String | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 备注 | remark | 否 | String | 备注 | 备注 |
| 渠道错误码 | errCode | 否 | String | 100E0047 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 账户余额不足 | 渠道下单返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"amount": 100000000,
"appId": "64e87b640d1480cf86ae4385",
"channelOrderNo": "",
"errCode": "100E0047",
"errMsg": "账户余额不足",
"ifCode": "hnawalletpay",
"mchNo": "M1692957540",
"mchOrderNo": "MT1699945076448",
"payWalletId": "2",
"receiveWalletId": "6",
"state": 3,
"transferId": "T1724320746689642497"
},
"msg": "SUCCESS",
"sign": "1177CB4D541354D67202C8838CF41D98"
}
SDK调用示例(Java):
JeepayClient jeepayClient = JeepayClient.getInstance(Jeepay.appId, Jeepay.apiKey, Jeepay.getApiBase());
WalletTransferQueryRequest request = new WalletTransferQueryRequest();
WalletTransferQueryReqModel model = new WalletTransferQueryReqModel();
model.setMchNo(Jeepay.mchNo); // 商户号
model.setAppId(jeepayClient.getAppId()); // 应用ID
request.setBizModel(model);
try {
WalletTransferQueryResponse response = jeepayClient.execute(request);
_log.info("验签结果:{}", response.checkSign(Jeepay.apiKey));
if (response.isSuccess(Jeepay.apiKey)) {
_log.info("data:{}", response.getData());
} else {
_log.info("请求失败:mchNo={}, msg={}", Jeepay.mchNo, response.getMsg());
}
} catch (JeepayException e) {
_log.error(e.getMessage());
}