代发类接口¶
213 代发接口¶
功能说明¶
商户调用该接口可以进行代发交易
请求参数¶
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 |
消息类型 | cmd_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为213 |
商户客户号 | mer_cust_id | 定长16位的String | 必须 | 商户的唯一标识 |
订单日期 | order_date | 定长8位String | 必须 | 格式为“yyyyMMdd” |
出账客户号 | pay_cust_id | 定长16位的String | 必须 | |
出账账户号 | pay_acct_id | 变长9位 | 必须 | |
订单号 | order_id | 变长20位的String | 必须 | 由商户的系统生成,订单号和订单日期保证唯一 |
交易金额 | trans_amt | 变长14位String | 必须 | (金额格式必须是###.00)比如2.00,2.01 |
收款账户类型 | acct_type | 定长1位String | 必须 | 银行对公账户(1),银行对私账户(2) |
银行账号 | bank_card_no | 变长30位String | 必须 | 代发到的银行账户 |
银行编号 | bank_id | 变长8位 | Y(acct_type=1)/N | 对公必填,对私选填 |
银行名称 | bank_name | 变长50位String | Y(acct_type=1)/N | 对公必填,对私选填 |
开户行省份 | bank_prov | 定长4位String | 可选 | 填写编号(商户有省份值请填入) ; 与地区值同时传或都不传 |
开户行地区 | bank_area | 定长4位String | 可选 | 填写编号(商户有地区值请填入); 与省份值同时传或都不传 |
支行名称 | bank_subbranch | 变长50位String | 可选 | |
联行号 | unite_bank_code | 变长20位String | 可选 | |
代发用途 | purpose | 变长20位String | 必须 | |
收款人姓名 | cust_name | 变长20位String | 必须 | 必须与银行户名相同 |
收款人手机号 | mobile | 变长11位String | 可选 | |
证件类型 | cert_type | 变长2位String | Y(acct_type=2)/N | 00身份证 01护照 02军官证 03士兵证 04回乡证 06警官证 08台胞证 05户口本 13其他 (收款账户为对私必传,对公为可选) |
证件号 | cert_id | 变长20位String | Y(acct_type=2)/N | (收款账户为对私必传,对公为可选) |
代发方式 | trans_mode | 变长2位String | 可选 | 代发的到账时间。 00 : T0 ; 01 : T1 (不传默认走T0), |
商户后台应答地址 | bg_ret_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 |
商户私有域 | mer_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 |
扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 |
交易发生地 | transaction_addr | 变长128位的String | 必须 | |
对手方交易IP | user_ip_addr | 变长20位的String | 必须 |
返回参数¶
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
消息类型 | cmd_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为213 |
应答返回码 | resp_code | 定长6位String | 必须 | 213001—处理中 , 其他见返回码 |
应答返回描述 | resp_desc | 变长String | 必须 | 返回码的对应中文描述 |
商户客户号 | mer_cust_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 |
订单日期 | order_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 |
订单号 | order_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 |
本平台交易唯一标识号 | platform_seq_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 |
手续费 | fee_amt | 变长14位String | 必须 | |
商户后台应答地址 | bg_ret_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 |
商户私有域 | mer_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 |
扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 |
返回码¶
返回码 | 返回描述 |
213000 | 交易成功 |
213001 | 请求处理中 |
213003 | 交易失败 |
213098 | 系统超时 |
213099 | 系统异常 |
213100 | 请求参数非法 |
213101 | 商户无此接口权限 |
213102 | 验证签名失败 |
213103 | 商户状态异常 |
213107 | 消息类型与签名内容不一致 |
213108 | 商户客户号与签名内容不一致 |
213109 | 版本号与签名内容不一致 |
213110 | 商户号不存在 |
213112 | 出账账号不存在 |
213113 | 过渡账户不能出账 |
213303 | 银行卡信息与银行信息不匹配 |
213304 | 银行卡类型错误 |
213320 | 交易订单号重复 |
213326 | 商户客户号与出账客户号不一致 |
213331 | 代发手续费账户未配置 |
213321 | 代发手续费未配置 |
213328 | 卡号或证件号或电话号码解密失败 |
213322 | 代发失败 |
213329 | 交易收款人已列入反洗钱黑名单,交易已被禁止 |
213333 | 您尚未开通T0/T1代发功能,请联系汇付业务人员 |
213334 | 账户余额或手续费余额不足,请先进行充值 |
代码示例¶
java
String valueObj = "{
"cmd_id": "213",
"version": "10",
"mer_cust_id": "6666000000026086",
"order_date": "20171228",
"order_id": "200111127",
"pay_cust_id": "6666000000026086",
"pay_acct_id": "79506",
"trans_amt": "1.36",
"acct_type": "1",
"bank_card_no": "62533820171228",
"bank_name": "",
"bank_prov": "",
"bank_area": "",
"bank_subbranch": "",
"bank_id": "",
"purpose": "啊啊啊啊啊",
"cust_name": "飞飞飞",
"mobile": "16666666666",
"cert_type": "00",
"cert_id": "220523198005162957",
"trans_mode": "01",
"ret_url": "",
"bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
"mer_priv": "test_mer_priv",
"extension": ""
}";
String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
String checkValue = sign(valueObj);
String cmdId = "213";
String merCustId = "6666000000026086";
String version = "10";
String contentType = "application/x-www-form-urlencoded";
String charset = "UTF-8";
String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue;
jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset);
jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send();
String body = httpResponse.bodyText();
String resultObj = parseResult(body);//解密
成功响应:
200
{
"cmd_id": "213",
"resp_code": "213000",
"resp_desc": "交易成功",
"mer_cust_id" : "6666000000026086",
"order_date": "20180327",
"order_id": "10000000001",
.......
}
失败响应:
200
{
"cmd_id": "213",
"resp_code": "213099",
"resp_desc": "交易失败",
"mer_cust_id" : "6666000000026086",
"order_date": "20180327",
"order_id": "10000000001",
.......
}
313 代发电子回单¶
请求参数¶
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 |
消息类型 | cmd_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为313 |
商户客户号 | mer_cust_id | 定长16位的String | 必须 | 商户的唯一标识 |
原订单日期 | order_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307; |
原订单号 | order_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合; (订单日期+订单号与平台流水号必选其一) |
平台流水号 | platform_seq_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 (订单日期+订单号与平台流水号必选其一) |
商户后台应答地址 | bg_ret_url | 变长128位的String | 必须 | 通过后台异步通知商户回执单生成结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 |
同步返回参数¶
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
消息类型 | cmd_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为313 |
应答返回码 | resp_code | 定长6位String | 必须 | 313001—处理中 , 其他见返回码表 |
应答返回描述 | resp_desc | 变长String | 必须 | 返回码的对应中文描述 |
商户客户号 | mer_cust_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 |
原订单日期 | order_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307 |
原订单号 | order_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 |
原平台交易唯一标识号 | platform_seq_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 |
商户后台应答地址 | bg_ret_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 |
收款人姓名 | cust_name | 变长20位String | 必须 | 必须与银行户名相同 |
银行账号 | bank_card_no | 变长30位String | 必须 | 代发到的银行账户 |
代发用途 | purpose | 变长20位String | 必须 | 代发用途 |
商户后台应答返回参数¶
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
消息类型 | cmd_id | 定长3位String | 必须 | 313 |
应答返回码 | resp_code | 定长6位String | 必须 | 313000–调用成功,其他见返回码表 |
应答返回描述 | resp_desc | 变长String | 必须 | 返回码的对应中文描述 |
商户客户号 | mer_cust_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 |
原订单日期 | order_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307 |
原订单号 | order_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 |
原平台交易唯一标识号 | platform_seq_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 |
商户后台应答地址 | bg_ret_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 |
回执单下载地址 | receipt_url | 变长256位的String | 必须 | 生成的电子签章回执单的下载地址 |
收款人姓名 | cust_name | 变长20位String | 必须 | 必须与银行户名相同 |
银行账号 | bank_card_no | 变长30位String | 必须 | 代发到的银行账户 |
代发用途 | purpose | 变长20位String | 必须 |
代码示例¶
java
String valueObj = "{
"version": "10",
"cmd_id": "313",
"mer_cust_id": "6666000000028641",
"order_date": "20180509",
"order_id": "1000001",
"platform_seq_id": "201805090000010264",
"bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json"
}";
String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
String checkValue = sign(valueObj);
String cmdId = "313";
String merCustId = "6666000000026086";
String version = "10";
String contentType = "application/x-www-form-urlencoded";
String charset = "UTF-8";
String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue;
jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset);
jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send();
String body = httpResponse.bodyText();
String resultObj = parseResult(body);//解密
成功响应:
200
{
"cmd_id": "313",
"resp_code": "313000",
"resp_desc": "交易成功",
"mer_cust_id" : "6666000000026086",
"order_date": "20180327",
"order_id": "10000000001",
.......
}
失败响应:
200
{
"cmd_id": "313",
"resp_code": "313099",
"resp_desc": "交易失败",
"mer_cust_id" : "6666000000026086",
"order_date": "20180327",
"order_id": "10000000001",
.......
}
返回码¶
代发回执单(cmd_id=313) | |
313000 | 交易成功 |
313003 | 交易失败 |
313099 | 系统异常 |
313100 | 请求参数非法 |
313101 | 商户无此接口权限 |
313102 | 验证签名失败 |
313103 | 商户状态异常 |
313104 | 用户状态异常 |
313107 | 消息类型与签名内容不一致 |
313108 | 商户客户号与签名内容不一致 |
313109 | 版本号与签名内容不一致 |
313110 | 商户号不存在 |
313310 | 产品信息校验失败 |
313201 | 该商户未开通代发回执单权限 |
313202 | 未查询到该笔交易 |