取现/代发类接口

104 绑定取现卡接口

功能说明

用于绑定取现银行卡,以便用于用户取现

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为104
商户唯一标识号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户唯一标识号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须  
银行代号 bank_id 定长8位String 可选 对公:必填;对私:可选
银行卡号 card_no 变长32位String 必须  
借贷标记 dc_flag 定长1位String 必须 0:借记卡(固定)
银行卡开户省份 card_prov 定长4位String 必须  
银行卡开户地区 card_area 定长4位String 必须  
后台返回地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户绑卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为104
应答返回码 resp_code 定长6位String 必须 104000–调用成功,其他见一级返回码表
应答返回描述 resp_desc 变长String 必须 一级返回码的对应中文描述
商户唯一标识号 mer_cust_id 定长16位 必须 由汇付生成,商户的唯一性标识
用户唯一标识号 user_cust_id 定长16位 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须  
本平台交易唯一标识号 platform_seq_id 定长18位String 可选 组成规则:8位本平台日期+ 10位系统流水号
银行代号 bank_id 变长8位String 必须 银行代号
银行卡号 card_no 变长32位String 必须 银行卡号掩码
银行卡绑定ID cash_bind_card_id 变长20位String 必须 取现接口需要用到此ID
借贷标记 dc_flag 定长1位String 必须 0:借记卡 1:贷记卡
银行卡开户省份 card_prov 定长4位String 必须  
银行卡开户地区 card_area 定长4位String 必须  
后台返回地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户绑卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "104",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000291215",
       "order_id": "0020180368",
       "order_date": "20180402",
       "bank_id": "03134402",
       "dc_flag": "0",
       "card_no": "6230580000038076969",
       "card_mobile": "13761708192",
       "card_prov": "0031",
       "card_area": "3100",
       "sms_code": "324402",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "ret_url": "",
       "mer_priv": "",
       "extension": ""
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "104";
 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": "104",
        "resp_code": "104000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "104",
     "resp_code": "104304",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

返回码

返回码 返回描述
104000 交易成功
104002 请求已受理
104003 交易失败
104099 系统异常
104100 请求参数非法
104101 商户无此接口权限
104102 验证签名失败
104103 商户状态异常
104104 用户状态异常
104107 消息类型与签名内容不一致
104108 商户客户号与签名内容不一致
104109 版本号与签名内容不一致
104110 商户号不存在
104202 交易订单号重复
104308 省份地区信息非法
104319 该银行卡号已绑定为取现卡,请勿重复绑卡
104322 该卡状态不正常
104601 贷记卡不能绑定为取现卡

811 取现绑卡代开户接口

功能说明

为未开户的用户开户的同时绑定取现卡,或为已开户的用户绑定取现卡。

调用方式:系统调用

接口方式:同步+异步

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为811
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须 由商户的系统生成,订单号和订单日期保证唯一
用户客户号 user_cust_id 定长16位String 可选 由汇付生成,商户的唯一性标识。条件可选:如用户已经开户,可选填该参数,如填写,接口会以该参数来辨识用户,不再匹配客户用户名和身份证号的正确性,但依然会校验参数格式;如不填写,接口会以客户用户名及身份证号匹配客户;如果用户未开户,请不填该参数
客户用户名 user_name 变长50位String 可选 用户的真实姓名。条件可选,条件参考用户客户号描述
身份证号 cert_id 定长18位String 可选 用户身份证号,目前仅支持身份证。条件可选,条件参考用户客户号描述
注册手机号 user_mobile 定长11位String 可选 用户手机号可选,条件参考用户客户号描述
开户银行代号 bank_id 定长8位String 可选 对公:必填;对私:可选
银行卡号 card_no 变长32位String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长1位String 必须 D–借记,储蓄卡;C–贷记,信用卡;注:本接口暂仅支持借记卡
银行卡开户省份 card_prov 定长4位String 可选 银行卡开户省份
银行卡开户地区 card_area 定长4位String 可选 银行卡开户地区
是否默认取现卡 is_default 定长8位String 必须 00000000:非默认取现卡;00000001:默认取现卡。用户首次绑卡时,无论传任何值,绑定成功后都会设置为默认取现卡;用户已有默认取现卡时,新绑定默认取现卡会替换掉原有默认取现卡
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知,商户应在应答接收的响应中输出RECV_ORD_ID字样的字符串,表明商户已经收到该笔交易结果。 注意:1) URL中请不要包含特殊字符 ;2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行Base64加密后再使用。
扩展域 extension 变长512位的String 可选 用于扩展请求参数;若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”},二级商户号由汇付生成,详见4.2.13.二级商户号录入接口
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息
职业 occupation 定长2位String 必须 个人职业分类
国籍 nationality 变长128位的String 必须 例如:中华人民共和国

个人职业分类表:

职业名称 编号   职业名称 编号
国家机关、党群机关、企事业单位负责人 01   卫生行业从业人员 08
金融业从业人员 02   IT业从业人员 09
房地产业从业人员 03   农林牧渔劳动者 10
商贸从业人员 04   生产工作、运输工作和部分体力劳动者 11
自由职业者 05   退休人员 12
科教文从业人员 06   不便分类的其他劳动者 13
制造业从业人员 07      

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为“811”
应答返回码 resp_code 定长6位String 必须 811000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
已开户标识 reg_flag 定长8位String 必须 00000000:新开户 00000001:已开户
用户客户号 user_cust_id 定长16位String 可选 由汇付生成,用户的唯一性标识, 成功时必返
用户账户号 acct_id 变长8位String 可选 用户账户号 新开户且成功时必返
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须 由商户的系统生成,订单号和订单日期保证唯一
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
银行卡绑定ID cash_bind_card_id 变长20位String 必须 异步返回。用作后续取现使用
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "811",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000030895",
       "order_date": "20180816",
       "order_id": "2018081615344454",
       "product_id": "3",
       "bank_id": "01050000",
       "dc_flag": "D",
       "card_no": "6232511231322345",
       "card_mobile": "13761708193",
       "card_prov": "0031",
       "card_area": "3100",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "is_default": "00000001",
       "mer_priv": "test_merpriv",
       "extension": "test_extension"
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "811";
 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": "811",
        "resp_code": "811000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
成功响应:
200
   {
     "cmd_id": "811",
     "resp_code": "811099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

返回码

返回码 返回描述
811000 交易成功
811002 请求已受理
811003 交易失败
811099 系统异常
811100 请求参数非法
811101 商户无此接口权限
811102 验证签名失败
811103 商户状态异常
811104 用户状态异常
811107 消息类型与签名内容不一致
811108 商户客户号与签名内容不一致
811109 版本号与签名内容不一致
811110 商户号不存在
811202 交易订单号重复
811203 手续费账户余额不足
811204 商户配置异常
811300 该业务仅支持个人用户执行
811302 用户已绑定快捷或代扣卡,不能再绑定取现卡
811303 银行卡号与银行不匹配
811304 银行卡类型错误
811305 手续费扣款失败
811308 省份地区信息非法
811319 该银行卡号已绑定为取现卡,请勿重复绑卡
811322 该卡状态异常
811325 银行卡与姓名或身份证不符
811407 代开户失败

202 取现接口

功能说明

用于个人用户、企业用户和个体户用户从汇付账户取现到事先绑定的取现银行卡中。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处固定为202
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
交易金额 trans_amt 变长14位的String 必须 泛指交易金额,金额格式必须是###.00,比如2.00,2.01
取现子账户 cash_acct_id 变长9位的String 可选 取现子账户
取现绑定银行卡ID cash_bind_card_id 变长20位的String 必须 取现绑卡返回的ID
手续费收取对象 fee_obj 定长8位的String 可选 用户商户指定取现手续费的收取对象,优先级别高于商户配置的收取对象 02050200:向商户收取 02050201:向用户收取 空白默认为向商户收取
手续费收取子账户 fee_acct_id 变长9位的String 可选 向商户收取必填 向用户收取可忽略
取现方式 cash_type 定长8位的String 必须 02030000:T+0取现;02030010:T+1取现;02030020:D+1取现
服务费金额 serv_fee_amt 变长14位的String 可选  
服务费账户号 serv_acct_id 变长9位的String 可选  
服务费客户号 serv_cust_id 定长16位的String 可选  
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户取现结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息
交易发生地 transaction_addr 变长128位String 必须  
资金用途 purpose 变长128位String 必须  
对手方交易IP user_ip_addr 变长20位的String 必须  

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 每一种消息类型代表一种交易,此处为202
返回码 resp_code 变长String 必须 202000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须  
用户客户号 user_cust_id 变长16位的String 必须  
订单日期 order_date 定长8位 必须  
订单号 order_id 变长20位的String 必须  
平台流水id platform_seq_id 定长18位String 必须 交易流水号
交易金额 trans_amt 变长14位的String 必须  
实际到账金额 real_trans_amt 变长14位的String 可选 取现成功实际到账金额,各种原因导致取现失败则不传
取现绑定银行卡ID cash_bind_card_id 变长20位的String 必须  
开户银行代号 bank_id 变长8位的String 可选 具体见附件:开户银行代号
手续费金额 fee_amt 变长14位的String 必须  
手续费扣款客户号 fee_cust_id 变长16位的String 必须  
手续费扣款子账户号 fee_acct_id 变长9位的String 必须  
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户取现结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
通道描述 pay_desc 变长256位的String 可选 通道返回描述

返回码

返回码 返回描述
202000 交易成功
202002 请求已受理
202003 交易失败
202099 系统异常
202100 请求参数非法
202101 商户无此接口权限
202102 验证签名失败
202103 商户状态异常
202104 用户状态异常
202105 账户状态异常
202107 消息类型与签名内容不一致
202108 商户客户号与签名内容不一致
202109 版本号与签名内容不一致
202110 商户号不存在
202113 过渡账户不能出账
202202 交易订单号重复
202204 商户配置异常
202300 银行卡信息不存在
202301 银行卡状态异常
202302 银行卡不是取现卡
202304 该商户不支持该取现方式
202305 取现金额小于等于取现费用
202310 取现用户不能为商户本身
202311 该商户暂时不允许T0取现

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "202",
       "mer_cust_id": "6666000000217291",
       "user_cust_id": "6666000000291215",
       "order_date": "20180322",
       "order_id": "20107063",
       "trans_amt": "0.01",
       "cash_bind_card_id": "5899770",
       "fee_obj": "02050200",
       "fee_acct_id": "219871",
       "cash_type": "02030010",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_priv": "test_mer_priv",
       "extension": "test_extension"
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "202";
 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": "202",
        "resp_code": "202000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
    {
      "cmd_id": "202",
      "resp_code": "202099",
      "resp_desc": "交易失败",
      "mer_cust_id" : "6666000000026086",
      "order_date": "20180327",
      "order_id": "10000000001",
      .......
    }

105 银行卡解绑接口

功能说明

用于解绑快捷、代扣或取现卡,解绑前可以调用短信发送接口,解绑时就会校验手机验证码

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本 version 固定2位String 必须 目前固定为10
消息类型 cmd_id 固定3位String 必须 每一种消息类型代表一种交易,此处为105
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一,20位内数字或字母的组合
银行代码 bank_id 定长8位String 必须 具体见附件二:快捷支付支持银行列表
银行卡绑定ID card_id 变长20位String 可选 签约绑卡接口返回的绑卡ID,银行卡绑定ID与银行卡号不能同时为空
银行卡号 card_no 定长32位String 可选 银行卡预留手机号,银行卡绑定ID与银行卡号不能同时为空
银行卡预留手机号 card_mobile 定长11位String 可选 银行卡预留手机号, 仅当card_buss_type=0时可以不传,其他情况为必须.
卡业务类型 card_buss_type 固定1位String 可选 0:取现,1:代扣,2:快捷. 3.解绑取现代扣快捷
短信验证码日期 sms_order_date 定长8位String 可选 与sms_code对应的验证码发送订单日期
短信验证码订单号 sms_order_id 变长20位String 可选 与sms_code对应的验证码发送订单号
短信验证码 sms_code 定长6位String 可选 传短信验证码时,会校验验证码是否正确
商户后台应答地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户解绑结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位String 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位String 必须 参见 设备静态信息

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为105
应答返回码 resp_code 定长6位的String 必须  
应答描述 resp_desc 变长String 必须  
商户客户号 mer_cust_id 定长16位的String 必须 商户唯一标识,由汇付生成
用户客户号 user_cust_id 定长16位的String 必须 用户唯一标识,由汇付生成
订单号 order_id 变长20位String 必须  
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
银行代码 bank_id 定长8位String 必须  
银行卡绑定ID card_id 变长20位String 可选 银行卡绑定ID
银行卡号 card_no 定长32位String 可选 银行卡预留手机号,银行卡绑定ID与银行卡号不能同时为空
卡业务类型 cardBussType 固定1位String 可选 0:取现,1:代扣,2:快捷
银行卡预留手机号 card_mobile 定长11位String 可选 银行卡预留手机号
短信验证码日期 sms_order_date 定长8位String 可选 与sms_code对应的验证码发送订单日期
短信验证码订单号 sms_order_id 变长20位String 可选 与sms_code对应的验证码发送订单号
短信验证码 sms_code 定长6位String 可选 短信验证码
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户解绑结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "105",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026170",
       "order_id": "2000008699212",
       "order_date": "20180327",
       "bank_id": "01020000",
       "card_id": "1000000093",
       "card_mobile": "13666666661",
       "card_buss_type": "2",
       "sms_order_date": "20180327",
       "sms_order_id": "11010510",
       "sms_code": "111111",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_priv": "test_mer_priv",
       "extension": "test_extension"
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "105";
 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": "105",
        "resp_code": "105000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "105",
     "resp_code": "105304",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

返回码

返回码 返回描述
105000 交易成功
105098 系统超时
105099 系统异常
105100 请求参数非法
105101 商户无此接口权限
105102 验证签名失败
105103 商户状态异常
105104 用户状态异常
105107 消息类型与签名内容不一致
105108 商户客户号与签名内容不一致
105109 版本号与签名内容不一致
105110 商户号不存在
105111 用户客户号不存在
105301 短信验证码有误
105302 用户未绑定过该卡
105303 非代扣或快捷卡,不能解绑
105304 用户基本信息不存在
105305 验证卡信息失败
105306 银行卡解绑失败
105307 该银行卡未被绑定为取现卡
105308 该银行卡未被绑定为代扣卡
105309 该银行卡未被绑定为快捷卡

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 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位的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 可选 用于扩展请求参数
通道描述 pay_desc 变长256位的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",
     .......
   }

返回码

返回码 返回描述
313000 交易成功
313003 交易失败
313099 系统异常
313100 请求参数非法
313101 商户无此接口权限
313102 验证签名失败
313103 商户状态异常
313104 用户状态异常
313107 消息类型与签名内容不一致
313108 商户客户号与签名内容不一致
313109 版本号与签名内容不一致
313110 商户号不存在
313310 产品信息校验失败
313201 该商户未开通代发回执单权限
313202 未查询到该笔交易

229 批量代发

功能说明

线下充值批量代发(需先调用商户文件上传接口(122)上传批量代发文件)

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 固定为229
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
附件编号 attach_no 变长20位的String 必须 商户下唯一,请求文件上传(122)时的参数
代发出账账户号 out_acct_id 变长9位 必须 线下充值入款账户号
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
代发结果通知地址 pay_ret_url 变长128位的String 必须  
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息

文件处理同步异步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长3位String 必须 固定为229
应答返回码 resp_code 定长6位String 必须 229000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
商户后台应答地址 bg_ret_url 变长128位的String 必须 文件处理异步通知地址
代发结果通知地址 pay_ret_url 变长128位的String 必须 代发结果异步通知地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
交易金额 trans_amt 变长14位String 可选 交易金额,格式为###.00
商户流水号 mer_seq_id 变长20位String 可选 代发文件中的商户流水号
代发日期 pay_date 定长8位String 可选  

代发处理同步异步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长3位String 必须 固定为229
应答返回码 resp_code 定长6位String 必须 229000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
附件编号 attach_no 变长20位的String 必须 商户下唯一,请求文件上传(122)时的参数
代发出账账户号 out_acct_id 变长9位 必须 线下充值入款账户号
商户后台应答地址 bg_ret_url 变长128位的String 必须 文件处理异步通知地址
代发结果通知地址 pay_ret_url 变长128位的String 必须 代发结果异步通知地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
交易金额 trans_amt 变长14位String 可选 交易金额,格式为###.00
商户流水号 mer_seq_id 变长20位String 可选 代发文件中的商户流水号
代发日期 pay_date 定长8位String 可选  
平台流水号 platform_seq_id 变长20位String 可选  
手续费 fee_amt 变长14位String 可选  

代码示例

java

String valueObj = "{
       "cmd_id": "229",
       "version": "10",
       "mer_cust_id": "6666000000026086",
       "attach_no": "1321343455454",
       "out_acct_id": "232434327",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "pay_ret_url": "http://192.168.0.74:8001/npayCallBack/async.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": "229",
        "resp_code": "229000",
        "resp_desc": "调用成功",
        "mer_cust_id" : "6666000000026086",
        .......
      }

失败响应:

200
    {
      "cmd_id": "213",
      "resp_code": "229002",
      "resp_desc": "调用失败",
      "mer_cust_id" : "6666000000026086",
      .......
    }

233 新金融代发接口

功能说明

用于用户进行新金融代发

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为233
商户客户号 mer_cust_id 定长16位的String 必填 由汇付生成,商户的唯一性标识
出账账户号 pay_acct_id 变长9位 必填  
订单日期 order_date 定长8位String 必填 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长20位的String 必填 由商户生成,必须保证唯一, 20位内的字母或数字组合
用户客户号 user_cust_id 定长16位的String 可选 对私代发:用户客户号非必填,若已开户,必填;若未开户,可不填 对公代发:用户客户号必填
客户用户名 cust_name 变长20位String 可选 对公代发:必填 对私代发:若用户客户号未填,此项必填
身份证号 cert_id 变长20位String 可选 对私代发,若用户客户号未填,此项必填 对公代发:非必填
注册手机号 mobile 变长11位String 可选 对私代发:若用户客户号未填,此项必填 对公代发:非必填
收款账户类型 acct_type 定长1位String 必填 0对公 1对私
开户银行编号 bank_id 变长8位 必填 8位数字
银行卡号 card_no 变长9-30位String 必填 用户银行卡号
开户行省份 bank_prov 定长4位String 选填 不填,默认上海
开户行地区 bank_area 定长4位String 选填 不填,默认上海
交易金额 trans_amt 变长14位String 必填 单位:元 金额格式:##.00 比如:2.00,2.01
手续费账户号 fee_acct_id 变长9位 可选 不为空手续费在该账户扣除,不填则按配置手续费账户收取
代发用途 purpose 变长20 可选  
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id   必须 每一种消息类型代表一种交易,此处为233
应答返回码 resp_code   必填 233000–调用成功,其他见返回码附件表
应答返回码描述 resp_desc   必填 返回码的对应中文描述
商户客户号 mer_cust_id   必填 由汇付生成,商户的唯一性标识
订单日期 order_date   必填 格式为YYYYMMDD,例如:20160307
订单号 order_id   必填 由商户生成,必须保证唯一, 20位内的字母或数字组合
平台流水号 platform_seq_id   必填 组成规则:8位本平台日期+ 10位系统流水号
用户客户号 user_cust_id   可选 开户成功时返回
交易金额 trans_amt   必填 单位:元 金额格式:##.00 比如:2.00,2.01
手续费金额 fee_amt   可选  
商户私有域 mer_priv   可选  
扩展域 extension   可选  
后台应答地址 bg_ret_url   必填  

返回码

返回码 返回描述
233000 交易成功
233002 请求已受理
233003 交易失败
233096 系统繁忙
233099 系统异常
233100 请求参数非法
233110 商户号不存在
233300 该商户未开通回执单权限
233011 用户不存在
233104 用户状态异常
233121 代发类型与用户类型不符
233122 新代发相关配置未配置
233123 支付账户类型不正确,不允许是支付账户
233124 您尚未开通T0新代发功能,请联系汇付业务人员
233125 代发手续费未配置
233127 取现失败待撤销
233128 代发验卡失败
233129 代发开户失败
233130 远程系统调用超时,请稍后重试
233131 转账调用失败

代码示例

java

String valueObj = "{
       "cmd_id": "233",
       "version": "10",
       "mer_cust_id": "6666000000026086",
       "pay_acct_id": "79506",
       "order_date": "20171228",
       "order_id": "200111127",
       "user_cust_id": "6666000000026086",
       "cust_name": "飞飞飞",
       "cert_id": "220523198005162957",
       "mobile": "16666666666",
       "acct_type": "1",
       "bank_id": "01050000",
       "bank_no": "62533820171228",
       "bank_prov": "0031",
       "bank_area": "3100",
       "trans_amt": "1.36",
       "fee_acct_id": "79506",
       "purpose": "啊啊啊啊啊",
       "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 = "233";
 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",
      .......
    }