代发类接口

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 未查询到该笔交易