搜索结果

×

搜索结果将在这里显示。

发起钱包转账

接口说明

接口描述:商户业务系统可通过转账接口,实现各钱包账户余额互转。转账成功判断说明,接口返回转账状态state=2为转账成功, state=1时需调用转账查询接口确认转账状态。接口返回code=0仅表示转账发起成功。

适用对象: 特约商户

请求URL:https://pay.yintongzaixian.com/api/wallet/transfer

请求方式:POST

请求类型:application/json 或 application/x-www-form-urlencoded

请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo 是 String(30) M1621873433953 商户号
应用ID appId 是 String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo 是 String(64) M16283883828 商户生成的订单号,需保证唯一
付款方钱包用户编号 payWalletId 是 String(30) 12444260034 付款方钱包用户编号
收款方钱包用户编号 receiveWalletId 是 String(30) 12444260012 收款方钱包用户编号
转账金额 amount 是 long 30 转账金额, 单位:分
货币代码 currency 是 String(3) cny 货币代码,固定cny
客户端IP地址 clientIp 是 String(30) 127.0.0.1 客户端IP地址
渠道参数 channelExtra 否 String(256) {"code":"13920933111042"} 特定渠道发起的额外参数,json格式字符串,保留字段
扩展参数 extParam 否 String(128) 134586944573118714 商户扩展参数,回调时会原样返回
请求时间 reqTime 是 long 1622016572190 请求接口时间,13位时间戳
接口版本 version 是 String(3) 1.0 接口版本号,固定:1.0
签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
签名类型 signType 是 String(32) MD5 签名类型,目前只支持MD5方式

请求示例数据

{
    "amount": 1000,
    "mchOrderNo": "MT1700100666084",
    "payWalletId": "2",
    "appId": "64e87b640d1480cf86ae4385",
    "clientIp": "192.166.1.132",
    "sign": "A7A6F45C76A4D651EA68835E350DA133",
    "receiveWalletId": "6",
    "signType": "MD5",
    "currency": "cny",
    "reqTime": "1700100666",
    "mchNo": "M1692957540",
    "version": "1.0"
}

返回参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code 是 int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg 否 String 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign 否 String CCD9083A6DAD9A2DA9F668C3D4517A84 对data内数据签名,如data为空则不返回
返回数据 data 否 String {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
平台转账单号 transferId 是 String T1724973335227740162 平台转账单号
商户订单号 mchOrderNo 是 String MT1700096903554 商户订单号
转账金额 amount 是 long 30 转账金额, 单位:分
转账状态 state 是 int 2 转账状态: 0-订单生成, 1-转账中, 2-转账成功, 3-转账失败, 4-订单关闭
渠道转账单号 channelOrderNo 否 String T7812873321y8192 渠道转账单号
渠道错误码 errCode 否 String 100E0047 上游渠道返回的错误码
渠道错误描述 errMsg 否 String 账户余额不足 上游渠道返回的错误描述

返回示例数据

{
    "code": 0,
    "data": {
        "amount": 100000000,
        "channelOrderNo": "",
        "errCode": "100E0047",
        "errMsg": "账户余额不足",
        "mchOrderNo": "MT1700100666084",
        "state": 3,
        "transferId": "T1724973335227740162"
    },
    "msg": "SUCCESS",
    "sign": "DD37B9800B2F3DAA6E2E653723B73B5D"
}

SDK调用示例(Java):

JeepayClient jeepayClient = JeepayClient.getInstance(Jeepay.appId, Jeepay.apiKey, Jeepay.getApiBase());
WalletTransferCreateRequest request = new WalletTransferCreateRequest();
WalletTransferCreateReqModel model = new WalletTransferCreateReqModel();
model.setMchNo(Jeepay.mchNo);                           // 商户号
model.setAppId(jeepayClient.getAppId());                 // 应用ID

request.setBizModel(model);
try {
    WalletTransferCreateResponse 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());
}