代扣类接口

111 绑卡短信发送接口

功能说明

发送短信验证码,以便在进行后续绑卡业务中验证该短信验证码。

  • 根据接口参数验卡类型card_verify_type配合使用103快捷卡绑卡接口、115非消费类代扣签约绑卡接口。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为111
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
验卡类型 card_verify_type 定长2位String 必须 快捷绑卡: 02 消费分期代扣绑卡: 03 非消费分期代扣绑卡: 04
开户银行代号 bank_id 变长8位String 可输 具体见附件:开户银行代号
借贷标记 dc_flag 定长1位String 必须 0–借记,储蓄卡 1–贷记,信用卡
银行卡号 card_no 变长32位String 必须 本次快捷绑卡待绑定的银行卡号
银行预留手机号 card_mobile 变长11位String 必须 本次快捷绑卡待绑定的银行卡,在银行开户时的预留手机号
银行卡开户省份 card_prov 定长4位String 可输 本次快捷绑卡待绑定的银行卡开户省份
银行卡开户地区 card_area 定长4位String 可输 本次快捷绑卡待绑定的银行卡开户地区
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户短信发送结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为111
应答返回码 resp_code 定长6位String 111000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
验卡类型 card_verify_type 定长8位String 必须 快捷绑卡: 02 消费分期代扣绑卡: 03 非消费分期代扣绑卡: 04
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户短信发送结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "111",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000027184",
       "order_date": "20180328",
       "order_id": "0020180365",
       "card_verify_type": "02",
       "bank_id": "01020000",
       "dc_flag": "0",
       "card_no": "6212261001039279143",
       "card_mobile": "13666666691",
       "card_prov": "0031",
       "card_area": "3100",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_priv": "",
       "extension": ""
       }";

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

返回码

返回码 返回描述
111000 交易成功
111098 系统超时
111099 系统异常
111100 请求参数非法
111101 商户无此接口权限
111102 验证签名失败
111103 商户状态异常
111104 用户状态异常
111107 消息类型与签名内容不一致
111108 商户客户号与签名内容不一致
111109 版本号与签名内容不一致
111110 商户号不存在
111111 用户客户号不存在
111204 商户配置异常
111210 短信验证码发送过于频繁
111211 短信验证码发送失败
111300 当前商户不支持借记卡
111301 当前商户不支持贷记卡
111302 当前银行卡已绑过快捷卡
111303 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡
111304 验证码发送失败
111305 验证码发送成功
111306 贷记卡类型时,贷记卡CVV2、贷记卡有效期必须输入
111307 非贷记卡类型时,贷记卡CVV2、贷记卡有效期不能输入
111308 只有个人用户和个体户能绑定快捷卡
111309 验证码发送中

113 消费类订单录入接口

功能说明

用于用户录入消费类订单信息(例如分期买手机时订单总金额),以便后续进行代扣。同一个产品订单可以被多个用户签约,相互独立、互不占用订单额度。

  • 一般配合817前台和809后台代扣签约绑卡接口使用,如果是消费类代扣,则需要先调113接口再调817或809接口,产品编号(product_id)需一致。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 默认为10,可扩展
消息类型 cmd_id 定长3位String 必须 113
商户客户号 mer_cust_id 定长16位String 必须  
订单号 order_id 变长20位String 必须 商户系统生成,商户下唯一
订单日期 order_date 定长8 位String 必须 YYYYMMDD
项目ID product_id 变长20位String 必须  
项目总金额 product_amt 变长14位的String 必须 金额格式是###.00
项目期数 product_periods 变长14位的String 必须  
项目开始时间 product_start_time 定长14位的String 必须 yyyyMMddHHmmss
项目结束时间 product_end_time 定长14位的String 必须  
项目所在地 product_location 定长4位的String 必须 省份编号
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户信息录入结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 必须 为商户的自定义字段,该字段在交易完成后由本平台原样返回
入参扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 113
应答返回码 resp_code 定长6位的String 必须  
应答描述 resp_desc 变长String 必须  
商户客户号 mer_cust_id 定长16位String 必须  
订单号 order_id 变长20位String 必须 商户系统生成,商户下唯一
订单日期 order_date 定长8 位String 必须 YYYYMMDD
项目ID product_id 变长16位String 必须  
项目总金额 product_amt 变长14位的String 必须 金额格式是###.00
项目期数 product_periods 变长14位的String 必须  
项目开始时间 product_start_time 变长14位的String 必须  
项目结束时间 product_end_time 变长14位的String 必须  
项目所在地 product_location 定长4位的String 必须  
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户信息录入结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
返参扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "113",
       "mer_cust_id": "6666000000026086",
       "order_id": "2220001",
       "order_date": "20180816",
       "product_id": "1014",
       "product_amt": "120.01",
       "product_periods": "11111",
       "product_start_time": "20180815151200",
       "product_end_time": "20180815201200",
       "product_location": "0031",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_priv": "",
       "extension": "test_extension"
       }";

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

返回码

返回码 返回描述
113000 交易成功
113099 系统异常
113100 请求参数非法
113101 商户无此接口权限
113102 验证签名失败
113103 商户状态异常
113104 用户状态异常
113202 交易订单号重复
113301 项目开始时间晚于或等于项目结束时间

115 非消费类代扣签约绑卡接口

功能说明

用于用户进行非消费类代扣签约绑卡。

  • 配合111短信发送接口使用,先调111接口获取短信再调115接口。

调用方式:页面浏览器

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 目前固定为10
消息类型 cmd_id 定长3位String 每一种消息类型代表一种交易,此处为“115”
商户客户号 mer_cust_id 定长16位String 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 格式为“yyyyMMdd” 注:请和绑卡短信发送接口的订单日期一致
订单号 order_id 变长20位String 由商户的系统生成,订单号和订单日期保证唯一 注:请和绑卡短信发送接口的订单号一致
开户银行代号 bank_id 变长8位String 具体见附件:开户银行代号
借贷标记 dc_flag 定长1位String 0–借记,储蓄卡 1–贷记,信用卡
银行卡号 card_no 变长32位String  
银行预留手机号 card_mobile 变长11位String 银行开户时的预留手机号
银行卡开户省份 card_prov 定长4位String 银行卡开户省份
银行卡开户地区 card_area 定长4位String 银行卡开户地区
短信验证码 sms_code 定长6位String  
商户后台应答地址 bg_ret_url 变长128位的String 通过后台异步通知商户绑卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
页面返回URL ret_url 变长128位的String 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户私有域 mer_priv 变长120位的String 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 用于扩展请求参数
设备信息 dev_info_json 变长1024位的String 参见 设备静态信息

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 每一种消息类型代表一种交易,此处为”115”
应答返回码 resp_code 定长6位String 115000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 格式为“yyyyMMdd”
订单号 order_id 变长20位String 由商户的系统生成,订单号和订单日期保证唯一
本平台交易唯一标识号 platform_seq_id 定长18位String 组成规则:8位本平台日期+ 10位系统流水号
开户银行代号 bank_id 变长8位String 对应订单录入中产品ID
银行卡号 card_no 变长32位String 本次代扣签约绑卡绑定的银行卡号掩码
绑定银行卡ID bind_card_id 变长20位String 用于代扣支付交易
商户后台应答地址 bg_ret_url 变长128位的String 通过后台异步通知商户绑卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
页面返回URL ret_url 变长128位的String 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户私有域 mer_priv 变长120位的String 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "115",
       "mer_cust_id": "6666000000217291",
       "user_cust_id": "6666000000291215",
       "order_date": "20180402",
       "order_id": "0020180372",
       "product_id": "P0000001",
       "bank_id": "03134402",
       "dc_flag": "0",
       "card_no": "6230580000038076969",
       "card_mobile": "13761708192",
       "card_prov": "0031",
       "card_area": "3100",
       "sms_code": "219062",
       "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 = "115";
 String merCustId = "6666000000026086";
 String version = "10";
 httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
 PrintWriter out = httpServletResponse.getWriter();
 out.println();
 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 out.println("<HTML>");
 out.println(" <HEAD><TITLE>sender</TITLE></HEAD>");
 out.println(" <BODY style=\"display: none\">");
 out.println("<form name=\"submitForm\" action=\"" + url + "\" method=\"post\">");
 out.println("<input type=\"hidden\" name=\"cmd_id\" value=\"" + cmd_id + "\"/>");
 out.println("<input type=\"hidden\" name=\"version\" value=\"" + version + "\"/>");
 out.println("<input type=\"hidden\" name=\"mer_cust_id\" value=\"" + merCustId + "\"/>");
 out.println("<input type=\"hidden\" name=\"check_value\" value=\"" + checkValue + "\"/>");
 out.println("</from>");
 out.println("<script>window.document.submitForm.submit();</script>");
 out.println(" </BODY>");
 out.println("</HTML>");
 out.flush();
 out.close();
成功响应:
200
      {
        "cmd_id": "115",
        "resp_code": "115000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "115",
     "resp_code": "115099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

返回码

返回码 返回描述
115000 交易成功
115003 交易失败
115098 系统超时
115099 系统异常
115100 请求参数非法
115101 商户无此接口权限
115102 验证签名失败
115103 商户状态异常
115107 消息类型与签名内容不一致
115108 商户客户号与签名内容不一致
115109 版本号与签名内容不一致
115110 商户号不存在
115202 订单号重复
115204 商户配置异常
115205 短信验证码不正确
115303 银行卡号与银行不匹配
115304 银行卡类型错误
115308 省份地区信息非法
115312 企业用户/商户不支持代扣绑卡
115314 请获取验证码
115315 银行卡信息有更新,请重新获取验证码
115320 当前商户不支持贷记卡
115321 当前商户不支持借记卡
115502 系统未开放或暂时关闭,请稍后再试
115503 交易通讯超时,请发起查询交易
115504 交易状态未明,请查询对账结果
115505 重复签约
115506 交易失败,详情查看银行返回信息
115507 验卡失败,具体问题参见对应银行认证失败原因
115508 交易处理中(撤销)
115510 订单信息为空
115511 订单信息有误
115512 重复交易
115513 交易失败,订单已超时!
115514 批量文件格式错误
115519 订单系统错误
115520 持卡人信息为空
115521 持卡人信息有误
115522 持卡人系统错误
115523 卡信息为空
115524 卡信息有误
115525 卡系统错误
115526 卡系统错误
115529 业务受限
115530 业务系统信息为空
115531 业务系统信息有误
115532 业务系统错误
115533 金额超限
115534 查无此交易
115535 网关不支持签约交易
115536 与原交易信息不符
115537 已超过最大查询次数或操作过于频繁
115538 风险受限
115539 网关不支持解约交易!
115540 授权码为空
115541 批量状态不正确,无法下载
115542 扣款成功但交易超过规定支付时间
115543 二级商户号为空
115544 商品描述为空
115545 支付类型为空
115546 交易类型为空
115547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
115548 微信公众号支付subOpenId不能为空
115549 无签约记录
115550 账户信息有误
115551 交易金额低于下限
115552 交易失败,未在我方进行实名认证或认证不通过
115553 二级商户名为空!
115554 入驻类型为空或值不对!
115555 商户入驻信息不匹配!
115556 商户入驻失败!
115557 银行卡类型不支持
115558 认证失败
115559 交易次数超限
115560 交易失败,请联系发卡银行
115561 对不起,您所输的银行卡号有误,请核实后再试!
115562 交易失败,发卡银行不支持该商户,请更换其他银行卡
115563 卡状态不正确
115564 银行卡余额不足
115565 卡信息或银行预留手机号有误
115566 短信验证码已过期
115567 密码输入次数超限
115568 您的银行卡暂不支持该业务
115571 对不起,你所输的验证码有误,请核实后再试!
115572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
115573 对不起,您所输的户名有误,请核实后再试!
115574 对不起,您的证件类型有误,请核实后再试!
115575 对不起,您的所输证件号码有误,请核实后再试!
115576 对不起,您所输的手机号码有误,,请核实后再试!
115577 验证码发送失败
115578 验证码超限或超时
115579 对不起,您的用户信息未通过银行验证,请核实后再试!
115580 银行卡状态异常
115581 支付失败,请稍后再试
115582 退款失败,请稍后再试
115583 余额不足次数超限,请隔日再试
115584 单笔金额超限
115585 单日金额超限
115586 单月金额超限
115587 订单信息重复
115588 支付订单信息有误
115589 退款失败,退款金额与订单金额不符
115590 交易失败,参数不合法
115591 系统异常
115592 交易失败,银行系统繁忙,请稍后再试
115593 系统超时
115594 银行处理中,请稍后再试
115595 短信验证码不正确
115596 CVV或有效期错误
115597 短息服务异常
115598 短信验证码验证次数超限,请重新发送
1155F0 支付渠道问题
1155F1 交易失败,未开通银联认证支付
1155F2 交易失败,未添加白名单
1155F3 签约失败,请稍后再试
1155F4 该卡当日失败次数超过阀值
1155F5 退款失败,没有找到成功的交易记录
1155F6 查无协议号,须要重新签约!
1155P0 交易挂起,需要确认
1155S2 需跳转页面签约
1155B0 无可用支付方式
1155B1 消费超过该商户支持限额
1155C0 MCHID不存在
1155C1 二维码已过期
1155C2 授权码相关错误
1155C3 用户支付中,需要输入密码
1155C4 XML格式错误
1155C6 签名错误
1155C7 编码格式错误
1155C8 支付帐号错误
1155C9 APPID不存在
1155D0 获取顾客账户信息失败,请刷新付款码后重新收款
1155D1 appid和mch_id不匹配
1155D2 验签失败
1155D3 post数据为空
1155D4 无效transaction_id
1155D5 分账信息校验失败
1155D6 没有权限使用该产品
1155D7 卖家信息有误
1155D8 买家信息有误
1155D9 卖家买家账号相同
1155A0 透传银行错误描述
1155A1 风控拦截
1155U0 银行无签约信息,或已解约
1155U1 pnrpay_element无签约信息,或已解约

817 前台代扣绑卡代开户接口

功能说明

使用该接口让商户在前台代扣绑卡和开户(若未开过户的话),即开户+代扣绑卡二合一接口(有页面)。

  • 如果是消费类代扣,则需要先调113接口再调817接口。

调用方式:页面返回

接口类型:页面应答 + 异步应答

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为817
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长20位String 可选 对应产品录入中产品ID
产品订单号 product_order_id 变长20位String 可选 由商户的系统生成,本次签约的产品订单号,产品订单号保证唯一
开户名 user_name 变长50位String 必须 用户的真实姓名
身份证号 cert_id 定长18位String 必须 用户身份证号
开户银行代号 bank_id 变长8位String 必须 具体见附件一中:代扣充值支持银行列表
银行卡号 card_no 变长32位String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长1位String 必须 D–借记,储蓄卡C–贷记,信用卡 注:本接口暂仅支持借记卡
银行预留手机号 card_mobile 变长11位String 必须 银行开户时的预留手机号
银行卡开户省份 card_prov 定长4位String 可选 银行卡开户省份
银行卡开户地区 card_area 定长4位String 可选 银行卡开户地区
页面返回URL ret_url 变长128位String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上。注意: 1) URL应使用UTF-8字符集URLEncode编码后传入 2)URL中请不要包含特殊字符 3) 必须是外网地址
商户后台应答地址 bg_ret_url 变长128位的String 必须 后台异步通知商户开户结果
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段
扩展域 extension 变长512位的String 可选 用于扩展请求参数;若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”}二级商户号由汇付生成,详见4.2.13.二级商户号录入接口
页面类型 page_type 定长2位String 可选 桌面端样式页面:00 ;移动端样式页面:10; 默认桌面端样式
设备信息 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 必须 每一种消息类型代表一种交易,此处为817
应答返回码 resp_code 定长6位String 必须 817000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 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位系统流水号
开户标识 reg_flag 定长8位String 必须 00000000:新开户 00000001:已开户
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长128位String 必须 返参中的URL为UTF-8字符集URLEncode编码后的字符串,商户应解码获取原文
页面返回URL ret_url 变长128位String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段
扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "817",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026189",
       "order_id": "201572184",
       "order_date": "20170828",
       "bank_id": "01050000",
       "card_no": "6212840000000012345",
       "ret_url": "",
       "user_name": "",
       "dc_flag": "0",
       "card_prov": "0031",
       "card_area": "3100",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_priv": "",
       "extension": ""
       }";

 String testUrl = "http://mertest.chinapnr.com/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "817";
 String merCustId = "6666000000026086";
 String version = "10";
 httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
 PrintWriter out = httpServletResponse.getWriter();
 out.println();
 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 out.println("<HTML>");
 out.println(" <HEAD><TITLE>sender</TITLE></HEAD>");
 out.println(" <BODY style=\"display: none\">");
 out.println("<form name=\"submitForm\" action=\"" + url + "\" method=\"post\">");
 out.println("<input type=\"hidden\" name=\"cmd_id\" value=\"" + cmd_id + "\"/>");
 out.println("<input type=\"hidden\" name=\"version\" value=\"" + version + "\"/>");
 out.println("<input type=\"hidden\" name=\"mer_cust_id\" value=\"" + merCustId + "\"/>");
 out.println("<input type=\"hidden\" name=\"check_value\" value=\"" + checkValue + "\"/>");
 out.println("</from>");
 out.println("<script>window.document.submitForm.submit();</script>");
 out.println(" </BODY>");
 out.println("</HTML>");
 out.flush();
 out.close();
成功响应:
200
      {
        "cmd_id": "817",
        "resp_code": "817000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
成功响应:
200
   {
     "cmd_id": "817",
     "resp_code": "817099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

返回码

前台页面代开户(cmd_id=817)  
817000 交易成功
817002 请求已受理
817003 交易失败
817099 系统异常
817100 请求参数非法
817101 商户无此接口权限
817102 验证签名失败
817103 商户状态异常
817104 用户状态异常
817107 消息类型与签名内容不一致
817108 商户客户号与签名内容不一致
817109 版本号与签名内容不一致
817204 商户配置异常
817318 用户已绑定代扣卡,请勿重复申请
817316 手机号与已绑定卡记录不匹配
817312 企业用户/商户不支持代扣绑卡
817308 省份地区信息非法
817310 产品信息校验失败
817202 交易订单号重复
817303 银行卡号与银行不匹配
817304 该银行卡非借记卡
817317 产品编号已签约
817216 页面已失效
817250 风控信息验证失败
817112 账号不存在
817203 账户可用余额不足
817450 个人用户开户失败
817305 手续费收取失败
817210 短信验证码发送过于频繁
817307 用户有快捷卡正在绑定中,请勿重复绑卡
817212 账户余额查询失败
817502 系统未开放或暂时关闭,请稍后再试
817503 交易通讯超时,请发起查询交易
817504 交易状态未明,请查询对账结果
817505 重复签约
817506 交易失败,详情查看银行返回信息
817507 验卡失败,具体问题参见对应银行认证失败原因
817508 交易处理中(撤销)
817510 订单信息为空
817511 订单信息有误
817512 重复交易
817513 交易失败,订单已超时!
817514 批量文件格式错误
817519 订单系统错误
817520 持卡人信息为空
817521 持卡人信息有误
817522 持卡人系统错误
817523 卡信息为空
817524 卡信息有误
817525 卡系统错误
817526 卡系统错误
817529 业务受限
817530 业务系统信息为空
817531 业务系统信息有误
817532 业务系统错误
817533 金额超限
817534 查无此交易
817535 网关不支持签约交易
817536 与原交易信息不符
817537 已超过最大查询次数或操作过于频繁
817538 风险受限
817539 网关不支持解约交易!
817540 授权码为空
817541 批量状态不正确,无法下载
817542 扣款成功但交易超过规定支付时间
817543 二级商户号为空
817544 商品描述为空
817545 支付类型为空
817546 交易类型为空
817547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
817548 微信公众号支付subOpenId不能为空
817549 无签约记录
817550 账户信息有误
817551 交易金额低于下限
817552 交易失败,未在我方进行实名认证或认证不通过
817553 二级商户名为空!
817554 入驻类型为空或值不对!
817555 商户入驻信息不匹配!
817556 商户入驻失败!
817557 银行卡类型不支持
817558 认证失败
817559 交易次数超限
817560 交易失败,请联系发卡银行
817561 对不起,您所输的银行卡号有误,请核实后再试!
817562 交易失败,发卡银行不支持该商户,请更换其他银行卡
817563 卡状态不正确
817564 银行卡余额不足
817565 卡信息或银行预留手机号有误
817566 短信验证码已过期
817567 密码输入次数超限
817568 您的银行卡暂不支持该业务
817571 对不起,你所输的验证码有误,请核实后再试!
817572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
817573 对不起,您所输的户名有误,请核实后再试!
817574 对不起,您的证件类型有误,请核实后再试!
817575 对不起,您的所输证件号码有误,请核实后再试!
817576 对不起,您所输的手机号码有误,,请核实后再试!
817577 验证码发送失败
817578 验证码超限或超时
817579 对不起,您的用户信息未通过银行验证,请核实后再试!
817580 银行卡状态异常
817581 支付失败,请稍后再试
817582 退款失败,请稍后再试
817583 余额不足次数超限,请隔日再试
817584 单笔金额超限
817585 单日金额超限
817586 单月金额超限
817587 订单信息重复
817588 支付订单信息有误
817589 退款失败,退款金额与订单金额不符
817590 交易失败,参数不合法
817591 系统异常
817592 交易失败,银行系统繁忙,请稍后再试
817593 系统超时
817594 银行处理中,请稍后再试
817595 短信验证码不正确
817596 CVV或有效期错误
817597 短息服务异常
817598 短信验证码验证次数超限,请重新发送
8175F0 支付渠道问题
8175F1 交易失败,未开通银联认证支付
8175F2 交易失败,未添加白名单
8175F3 签约失败,请稍后再试
8175F4 该卡当日失败次数超过阀值
8175F5 退款失败,没有找到成功的交易记录
8175F6 查无协议号,须要重新签约!
8175P0 交易挂起,需要确认
8175S2 需跳转页面签约
8175B0 无可用支付方式
8175B1 消费超过该商户支持限额
8175C0 MCHID不存在
8175C1 二维码已过期
8175C2 授权码相关错误
8175C3 用户支付中,需要输入密码
8175C4 XML格式错误
8175C6 签名错误
8175C7 编码格式错误
8175C8 支付帐号错误
8175C9 APPID不存在
8175D0 获取顾客账户信息失败,请刷新付款码后重新收款
8175D1 appid和mch_id不匹配
8175D2 验签失败
8175D3 post数据为空
8175D4 无效transaction_id
8175D5 分账信息校验失败
8175D6 没有权限使用该产品
8175D7 卖家信息有误
8175D8 买家信息有误
8175D9 卖家买家账号相同
8175A0 透传银行错误描述
8175A1 风控拦截
8175U0 银行无签约信息,或已解约
8175U1 pnrpay_element无签约信息,或已解约

809 后台代扣绑卡代开户接口

功能说明

实现消费分期及非消费分期代扣签约绑卡短信请求和签约绑卡和开户(若未开户的话),即开户+代扣绑卡二合一接口,该接口需调用2次,第一次调用时,step_flag传01获取验证码(四要素验证通过的情况下才会发短信,验证不通过则不会发送验证码),获取验证码后第二次调用该接口,step_flag传02验证短信并确认绑卡。前后两次订单号不要一样,但是bind_trans_id必须一致。

  • 如果是消费类代扣,则需要先调113接口再调809接口。
  • 纯API接口版,无页面

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 目前固定为11
消息类型 cmd_id 定长3位String 每一种消息类型代表一种交易,此处为“809”
商户客户号 mer_cust_id 定长16位String 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 格式为“yyyyMMdd”
订单号 order_id 变长20位String 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长20位String 对应订单录入中产品ID
产品订单号 product_order_id 变长20位String 本次签约的产品订单号,product_id填写的情况下,必填。
开户名 user_name 变长50位String 用户的真实姓名
开户银行代号 bank_id 变长8位String 具体见附件:开户银行代号
银行卡号 card_no 变长32位String 待绑定的银行卡号
借贷标记 dc_flag 定长1位String D–借记,储蓄卡 C–贷记,信用卡 注:本接口暂仅支持借记卡
身份证号 cert_id 定长18位String 用户客户号跟身份证号至少传一个
银行预留手机号 card_ mobile 变长11位String 银行开户时的预留手机号
银行卡开户省份 card_prov 定长4位String 银行卡开户省份
银行卡开户地区 card_area 定长4位String 银行卡开户地区
阶段标志 step_flag 定长2位String 01:发短信阶段 02:验证短信阶段
短信验证码 sms_code 定长6位String 可选 与本次快捷绑卡时的银行预留手机号对应的短信验证码
绑卡请求流水 bind_trans_id 变长20位String 标志一个绑卡请求,商户下判断唯一,只能是数字和字母
商户后台应答地址 bg_ret_url 变长128位的String 后台异步通知商户开户结果
商户私有域 mer_priv 变长120位的String 为商户的自定义字段
扩展域 extension 变长512位的String 用于扩展请求参数
设备信息 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 必须 每一种消息类型代表一种交易,此处为809
应答返回码 resp_code 定长6位String 必须 809000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
用户账户号 acct_id 变长8位String 可选 用户账户号
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位String 必须 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长20位String 必须 对应订单录入中产品ID
产品订单号 product_order_id 变长20位String 必须 本次签约的产品订单号
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
开户标识 reg_flag 定长8位String 必须 00000000:新开户 00000001:已开户
开户银行代号 bank_id 变长8位String 必须 对应产品录入中产品ID
银行卡号 card_no 变长32位String 必须 待绑定的银行卡卡号
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长128位的String 必须 后台异步通知商户开户结果
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段
扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回码

返回码 返回描述
809099 系统异常
809002 请求已受理
809003 交易失败
809100 请求参数非法
809102 验证签名失败
809103 商户状态异常
809104 用户状态异常
809105 账户状态异常
809110 商户号不存在
809111 用户客户号不存在
809112 账号不存在
809113 过渡账户不能出账
809202 交易订单号重复
809203 账户可用余额不足
809204 商户配置异常
809210 短信验证码发送过于频繁
809212 账户余额查询失败
809300 当前商户不支持借记卡
809301 当前商户不支持贷记卡
809302 当前银行卡已绑过快捷卡
809303 银行卡号与银行不匹配
809304 个人用户开户失败
809305 手续费收取失败
809307 用户有快捷卡正在绑定中,请勿重复绑卡
809308 省份地区信息非法
809309 该银行卡号与卡类型不匹配
809310 产品信息校验失败
809312 企业用户/商户不支持代扣绑卡
809314 请获取验证码
809316 手机号与已绑定卡记录不匹配
809317 产品编号已签约
809318 用户已绑定代扣卡,请勿重复申请
809320 该商户不支持贷记卡
809321 该商户不支持借记卡
809329 理财账户不允许进行支付,分账和作为手续费
809416 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡
809502 系统未开放或暂时关闭,请稍后再试
809503 交易通讯超时,请发起查询交易
809504 交易状态未明,请查询对账结果
809505 重复签约
809506 交易失败,详情查看银行返回信息
809507 验卡失败,具体问题参见对应银行认证失败原因
809508 交易处理中(撤销)
809510 订单信息为空
809511 订单信息有误
809512 重复交易
809513 交易失败,订单已超时!
809514 批量文件格式错误
809519 订单系统错误
809520 持卡人信息为空
809521 持卡人信息有误
809522 持卡人系统错误
809523 卡信息为空
809524 卡信息有误
809525 卡系统错误
809526 卡系统错误
809529 业务受限
809530 业务系统信息为空
809531 业务系统信息有误
809532 业务系统错误
809533 金额超限
809534 查无此交易
809535 网关不支持签约交易
809536 与原交易信息不符
809537 已超过最大查询次数或操作过于频繁
809538 风险受限
809539 网关不支持解约交易!
809540 授权码为空
809541 批量状态不正确,无法下载
809542 扣款成功但交易超过规定支付时间
809543 二级商户号为空
809544 商品描述为空
809545 支付类型为空
809546 交易类型为空
809547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
809548 微信公众号支付subOpenId不能为空
809549 无签约记录
809550 账户信息有误
809551 交易金额低于下限
809552 交易失败,未在我方进行实名认证或认证不通过
809553 二级商户名为空!
809554 入驻类型为空或值不对!
809555 商户入驻信息不匹配!
809556 商户入驻失败!
809557 银行卡类型不支持
809558 认证失败
809559 交易次数超限
809560 交易失败,请联系发卡银行
809561 对不起,您所输的银行卡号有误,请核实后再试!
809562 交易失败,发卡银行不支持该商户,请更换其他银行卡
809563 卡状态不正确
809564 银行卡余额不足
809565 卡信息或银行预留手机号有误
809566 短信验证码已过期
809567 密码输入次数超限
809568 您的银行卡暂不支持该业务
809571 对不起,你所输的验证码有误,请核实后再试!
809572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
809573 对不起,您所输的户名有误,请核实后再试!
809574 对不起,您的证件类型有误,请核实后再试!
809575 对不起,您的所输证件号码有误,请核实后再试!
809576 对不起,您所输的手机号码有误,,请核实后再试!
809577 验证码发送失败
809578 验证码超限或超时
809579 对不起,您的用户信息未通过银行验证,请核实后再试!
809580 银行卡状态异常
809581 支付失败,请稍后再试
809582 退款失败,请稍后再试
809583 余额不足次数超限,请隔日再试
809584 单笔金额超限
809585 单日金额超限
809586 单月金额超限
809587 订单信息重复
809588 支付订单信息有误
809589 退款失败,退款金额与订单金额不符
809590 交易失败,参数不合法
809591 系统异常
809592 交易失败,银行系统繁忙,请稍后再试
809593 系统超时
809594 银行处理中,请稍后再试
809595 短信验证码不正确
809596 CVV或有效期错误
809597 短息服务异常
809598 短信验证码验证次数超限,请重新发送
8095F0 支付渠道问题
8095F1 交易失败,未开通银联认证支付
8095F2 交易失败,未添加白名单
8095F3 签约失败,请稍后再试
8095F4 该卡当日失败次数超过阀值
8095F5 退款失败,没有找到成功的交易记录
8095F6 查无协议号,须要重新签约!
8095P0 交易挂起,需要确认
8095S2 需跳转页面签约
8095B0 无可用支付方式
8095B1 消费超过该商户支持限额
8095C0 MCHID不存在
8095C1 二维码已过期
8095C2 授权码相关错误
8095C3 用户支付中,需要输入密码
8095C4 XML格式错误
8095C6 签名错误
8095C7 编码格式错误
8095C8 支付帐号错误
8095C9 APPID不存在
8095D0 获取顾客账户信息失败,请刷新付款码后重新收款
8095D1 appid和mch_id不匹配
8095D2 验签失败
8095D3 post数据为空
8095D4 无效transaction_id
8095D5 分账信息校验失败
8095D6 没有权限使用该产品
8095D7 卖家信息有误
8095D8 买家信息有误
8095D9 卖家买家账号相同
8095A0 透传银行错误描述
8095A1 风控拦截
8095U0 银行无签约信息,或已解约
8095U1 pnrpay_element无签约信息,或已解约

代码示例

java

String valueObj = "{
            "cmd_id": "809",
        "version": "11",
    "bank_id": "01050000",
    "bind_trans_id": "2018081413374",
    "card_area": "3100",
    "card_mobile": "14012312310",
    "card_no": "6232511231312345",
    "card_prov": "0031",
    "cert_id": "140926198306051290",
    "dc_flag": "D",
    "mer_cust_id": "6666000000026086",
    "order_date": "20180814",
    "order_id": "2018081413375",
    "product_id": "12",
    "product_order_id": "2018081413374",
    "sms_code": "111111",
    "step_flag": "01",
    "user_cust_id": "",
    "user_name": "唉皮皮",
        "bg_ret_url": "http://192.168.0.70:8081/asharp/acceptbgret/virgo"
            "mer_priv": "test_merpriv",
            "extension": "test_extension"
    }";

String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
String checkValue = sign(valueObj);
String cmdId = "809";
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": "809",
        "resp_code": "809000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }

成功响应:

200
   {
     "cmd_id": "809",
     "resp_code": "809099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

849 签约代扣支付接口

功能说明

该接口实现从用户银行卡代扣功能。

调用方式:系统调用(同步+异步)

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为849
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 付款客户号
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一,20位内数字或字母的组合
充值类型 recharge_type 定长8位String 必须 02020003: 代扣
交易类型 trans_type 定长8位String 必须 02020101:支付 02020103:非消费代扣支付
交易金额 trans_amt 变长14位String 必须 交易金额,格式为###.00
入账客户号 in_cust_id 定长16位String 可选 业务类型为支付时必传,且入账客户号不能是充值客户本人
入账账户号 in_acct_id 变长9位String 可选 开户返回的acct_id,若是分给平台自己,可以通过邮件查找商户客户号和子账号信息。(in_cust_id同理)
分账账户串 div_detail 变长String 可选 业务类型为支付时必传,分账串使用UTF-8字符集URLEncode编码后传入;分账串定义可参照下表;注:如果不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号
数据格式:[{‘divCustId’:‘6666000000025350’,’divAcctId’:‘78276’,’divAmt’:‘50.00’,’divFreezeFg’:‘00’}],可分给多个对象,每个对象大括号{}用逗号隔开
该参数表示分账对象,将金额分给虚拟用户的账户中,divCustId和divAcctId即为开户接口返回的user_cust_id和acct_id,若分给平台自己,可通过上线邮件中查找商户客户号和子账号信息
手续费扣款客户号 fee_cust_id 定长16位String 可选 业务类型为支付时必传,且入账客户号不能是充值客户本人
手续费子账户号 fee_acct_id 变长9位String 可选 开户返回的acct_id,若是分给平台自己,可以通过邮件查找商户客户号和子账号信息。(in_cust_id同理)
商户后台应答地址 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.二级商户号录入接口
交易场景 trans_scene 定长3位 可选 不需要
交易场景小类 trans_scene_sub 定长6位 可选 不需要
二级商户号 secondary_merid 变长12位 String 可选  
代扣签约流水 sign_seq_id 变长18位String 必须 代扣签约绑卡时返回的唯一签约流水号platform_seq_id
银行卡号 card_no 变长32位String 可选 代扣支付使用的卡号,不传时默认使用最新绑定的代扣卡
设备信息 dev_info_json 变长1024位String 必须 参见 设备静态信息
交易发生地 transaction_addr 变长128位String 必须  
资金用途 purpose 变长128位String 必须  
对手方交易IP user_ip_addr 变长20位String 必须  

分账账户串(div_detail )内容:

参数中文名称 参数名称 数据格式 是否必须 说明
分账客户号 divCustId 变长16位String 必须 div_detail参数下的二级参数 分账客户号
分账账户号 divAcctId 变长9位String 必须 div_detail参数下的二级参数 分账账户号
分账金额 divAmt 变长14位String 必须 div_detail参数下的二级参数 分账金额,保留两位小数
是否冻结标志 divFreezeFg 定长2位String 必须 div_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结

注:如果支付时不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号

同步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 每一种消息类型代表一种交易,此处为849
应答返回码 resp_code 定长6位String 必须 849000–调用成功,其他见:返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述,中文为UTF-8字符集URLEncode编码后的字符串,商户应解码获取原文
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 可选 付款客户号,交易类型为免注册网银支付时,非必传
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一,20位内数字或字母的组合
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+10位系统流水号
交易类型 trans_type 定长8位String 可选 02020101:支付 02020103:非消费金融代扣支付
充值类型 recharge_type 定长8位String 可选 02020000: 个人网银,02020001: 企业网银
交易金额 trans_amt 变长14位String 必须 交易金额,格式为###.00
代扣签约流水 sign_seq_id 变长18位String 可选 代扣签约订单唯一标识,代扣充值必传,其他充值不需传
入账客户号 in_cust_id 定长16位String 可选 业务类型为支付时必传,且入账客户号不能是充值客户本人
分账账户串 div_detail 变长String 可选 业务类型为支付时必传,分账账户必须是入账客户的账户,数据格式:[{“div_acct_id”:”000001”,”div_amt”:”1.00”}],分账串金额之和需等于充值金额,支持1条分账指令
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费扣款客户号 fee_cust_id 定长16位String 可选 手续费扣款客户号
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长128位String 必须 返参中的URL为UTF-8字符集URLEncode编码后的字符串,商户应解码获取原文。
商户私有域 mer_priv 变长120位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行Base64加密后再使用。
扩展域 extension 变长512位String 可选 用于扩展请求参数
银行卡号 card_no 变长32位String 可选 代扣支付使用的卡号,不传时默认使用最新绑定的代扣卡
业务请求流水 biz_trans_id 变长20位String 可选 标志一个二段式快捷请求,商户下判断唯一,只能是数字和字母充值类型为二段式快捷时必填

返回码

返回码 返回描述
849000 交易成功
849002 请求已受理
849003 交易失败
849099 系统异常
849100 请求参数非法
849101 商户无此接口权限
849102 验证签名失败
849103 商户状态异常
849104 用户状态异常
849107 消息类型与签名内容不一致
849108 商户客户号与签名内容不一致
849109 版本号与签名内容不一致
849110 商户号不存在
849111 用户客户号不存在
849202 交易订单号重复
849204 商户配置异常
849215 请补录身份信息
849228 (入账客户号、入账账户号)与分账串信息必须输入一项
849230 入账客户号和入账账户号必须同时输入
849231 入账用户状态异常
849302 不支持此支付类型
849303 商户支付基础信息未配置
849305 入账客户信息不正确
849306 入账分账串信息不正确
849308 该用户未绑定代扣卡
849309 该用户代扣协议不存在或状态异常
849311 企业用户或商户不支持代扣充值
849313 该充值银行与用户快捷或代扣卡不匹配
849314 支付手续费账户状态不正常
849318 代扣卡不存在或状态异常
849321 支付手续费未配置
849329 理财账户不允许进行支付,分账和作为手续费!
849727 分账信息异常
849733 分账支付明细处理失败
849737 支付明细处理失败
849748 二级商户号不存在
849749 二级商户号状态异常
849315 手续费金额不得大于等于交易金额
849502 系统未开放或暂时关闭,请稍后再试
849503 交易通讯超时,请发起查询交易
849504 交易状态未明,请查询对账结果
849505 重复签约
849506 交易失败,详情查看银行返回信息
849507 验卡失败,具体问题参见对应银行认证失败原因
849508 交易处理中(撤销)
849510 订单信息为空
849511 订单信息有误
849512 重复交易
849513 交易失败,订单已超时!
849514 批量文件格式错误
849519 订单系统错误
849520 持卡人信息为空
849521 持卡人信息有误
849522 持卡人系统错误
849523 卡信息为空
849524 卡信息有误
849525 卡系统错误
849526 卡系统错误
849529 业务受限
849530 业务系统信息为空
849531 业务系统信息有误
849532 业务系统错误
849533 金额超限
849534 查无此交易
849535 网关不支持签约交易
849536 与原交易信息不符
849537 已超过最大查询次数或操作过于频繁
849538 风险受限
849539 网关不支持解约交易!
849540 授权码为空
849541 批量状态不正确,无法下载
849542 扣款成功但交易超过规定支付时间
849543 二级商户号为空
849544 商品描述为空
849545 支付类型为空
849546 交易类型为空
849547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
849548 微信公众号支付subOpenId不能为空
849549 无签约记录
849550 账户信息有误
849551 交易金额低于下限
849552 交易失败,未在我方进行实名认证或认证不通过
849553 二级商户名为空!
849554 入驻类型为空或值不对!
849555 商户入驻信息不匹配!
849556 商户入驻失败!
849557 银行卡类型不支持
849558 认证失败
849559 交易次数超限
849560 交易失败,请联系发卡银行
849561 对不起,您所输的银行卡号有误,请核实后再试!
849562 交易失败,发卡银行不支持该商户,请更换其他银行卡
849563 卡状态不正确
849564 银行卡余额不足
849565 卡信息或银行预留手机号有误
849566 短信验证码已过期
849567 密码输入次数超限
849568 您的银行卡暂不支持该业务
849571 对不起,你所输的验证码有误,请核实后再试!
849572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
849573 对不起,您所输的户名有误,请核实后再试!
849574 对不起,您的证件类型有误,请核实后再试!
849575 对不起,您的所输证件号码有误,请核实后再试!
849576 对不起,您所输的手机号码有误,,请核实后再试!
849577 验证码发送失败
849578 验证码超限或超时
849579 对不起,您的用户信息未通过银行验证,请核实后再试!
849580 银行卡状态异常
849581 支付失败,请稍后再试
849582 退款失败,请稍后再试
849583 余额不足次数超限,请隔日再试
849584 单笔金额超限
849585 单日金额超限
849586 单月金额超限
849587 订单信息重复
849588 支付订单信息有误
849589 退款失败,退款金额与订单金额不符
849590 交易失败,参数不合法
849591 系统异常
849592 交易失败,银行系统繁忙,请稍后再试
849593 系统超时
849594 银行处理中,请稍后再试
849595 短信验证码不正确
849596 CVV或有效期错误
849597 短息服务异常
849598 短信验证码验证次数超限,请重新发送
8495F0 支付渠道问题
8495F1 交易失败,未开通银联认证支付
8495F2 交易失败,未添加白名单
8495F3 签约失败,请稍后再试
8495F4 该卡当日失败次数超过阀值
8495F5 退款失败,没有找到成功的交易记录
8495F6 查无协议号,须要重新签约!
8495P0 交易挂起,需要确认
8495S2 需跳转页面签约
8495B0 无可用支付方式
8495B1 消费超过该商户支持限额
8495C0 MCHID不存在
8495C1 二维码已过期
8495C2 授权码相关错误
8495C3 用户支付中,需要输入密码
8495C4 XML格式错误
8495C6 签名错误
8495C7 编码格式错误
8495C8 支付帐号错误
8495C9 APPID不存在
8495D0 获取顾客账户信息失败,请刷新付款码后重新收款
8495D1 appid和mch_id不匹配
8495D2 验签失败
8495D3 post数据为空
8495D4 无效transaction_id
8495D5 分账信息校验失败
8495D6 没有权限使用该产品
8495D7 卖家信息有误
8495D8 买家信息有误
8495D9 卖家买家账号相同
8495A0 透传银行错误描述
8495A1 风控拦截
8495U0 银行无签约信息,或已解约
8495U1 pnrpay_element无签约信息,或已解约

代码示例

java

String valueObj = "{
            "version": "10",
            "cmd_id": "849",
            "mer_cust_id": "6666000000026086",
            "user_cust_id": "6666000000030895",
            "order_date": "20180816",
            "order_id": "2018081615344454",
            "open_id": "3",
            "app_id": "01050000",
            "good_tag": "D",
            "raw_flag": "6232511231322345",
            "trans_amt": "93",
            "in_cust_id": "",
            "divCustId": "",
            "divFreezeFg": "",
            "divAcctId": "",
            "in_acct_id": "",
            "divAmt": "",
            "biz_trans_id": "",
            "goods_desc": "",
            "call_back_url": "",
            "order_expire_time": "",
            "goods_type": "",
            "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
            "sign_seq_id": "",
            "secondary_mer_id": "",
            "mer_priv": "test_merpriv",
            "extension": "test_extension"
    }";

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

825 直接代扣支付

功能说明

直接代扣功能。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为825
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一,20位内数字或字母的组合
付款方姓名 user_name 变长50位String 必须 用户的真实姓名,中文应使用UTF-8字符集URLEncode编码后传入
付款方证件类型 cert_type 定长8位String 必须 01020100:身份证 01020101:护照 01020102:军官证 01020104:回乡证 01020106:台胞证 01020107:其他 目前仅支持身份证
付款方证件号 cert_id 变长20位String 必须 付款方证件号码,与证件类型对应
付款方银行预留手机号 card_mobile 变长11位String 必须 付款方银行预留手机号,变长11位数字
付款方银行卡号 card_no 变长32位String 必须 付款方银行卡号,变长32位数字
交易金额 trans_amt 变长14位String 必须 交易金额,格式为###.00
银行账户类型 card_type 定长8位String 必须 01050001:对公账户 01050000:对私账户 目前仅支持对私
入款方账户号 in_cust_acct_id 变长9位String 必须 入款方账户号
入款方用户号 in_cust_id 定长16位String 必须 入款方客户号,不能是出款方客户号
商户后台应答地址 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.9.二级商户号录入接口
设备信息 dev_info_json 变长1024位String 必须 参见 设备静态信息
交易发生地 transaction_addr 变长128位String 必须  
资金用途 purpose 变长128位String 必须  
对手方交易IP user_ip_addr 变长20位String 必须  

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为825
应答返回码 resp_code 定长6位String 必须 825000–调用成功,其他见附件四:返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述,中文为UTF-8字符集URLEncode编码后的字符串,商户应解码获取原文
商户客户号 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 可选 手续费金额,格式为###.00
手续费扣款客户号 fee_cust_id 定长16位String 可选 手续费扣款客户号
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号

返回码

返回码 返回描述
825000 交易成功
825002 请求已受理
825003 交易失败
825099 系统异常
825100 请求参数非法
825102 验证签名失败
825103 商户状态异常
825104 用户状态异常
825105 账户状态异常
825110 商户号不存在
825202 交易订单号重复
825303 商户支付基础信息未配置
825314 支付手续费账户状态不正常
825321 支付手续费未配置
825322 入账账户不正确
825323 该银行卡非借记卡
825502 系统未开放或暂时关闭,请稍后再试
825503 交易通讯超时,请发起查询交易
825504 交易状态未明,请查询对账结果
825505 重复签约
825506 交易失败,详情查看银行返回信息
825507 验卡失败,具体问题参见对应银行认证失败原因
825508 交易处理中(撤销)
825510 订单信息为空
825511 订单信息有误
825512 重复交易
825513 交易失败,订单已超时!
825514 批量文件格式错误
825519 订单系统错误
825520 持卡人信息为空
825521 持卡人信息有误
825522 持卡人系统错误
825523 卡信息为空
825524 卡信息有误
825525 卡系统错误
825526 卡系统错误
825529 业务受限
825530 业务系统信息为空
825531 业务系统信息有误
825532 业务系统错误
825533 金额超限
825534 查无此交易
825535 网关不支持签约交易
825536 与原交易信息不符
825537 已超过最大查询次数或操作过于频繁
825538 风险受限
825539 网关不支持解约交易!
825540 授权码为空
825541 批量状态不正确,无法下载
825542 扣款成功但交易超过规定支付时间
825543 二级商户号为空
825544 商品描述为空
825545 支付类型为空
825546 交易类型为空
825547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
825548 微信公众号支付subOpenId不能为空
825549 无签约记录
825550 账户信息有误
825551 交易金额低于下限
825552 交易失败,未在我方进行实名认证或认证不通过
825553 二级商户名为空!
825554 入驻类型为空或值不对!
825555 商户入驻信息不匹配!
825556 商户入驻失败!
825557 银行卡类型不支持
825558 认证失败
825559 交易次数超限
825560 交易失败,请联系发卡银行
825561 对不起,您所输的银行卡号有误,请核实后再试!
825562 交易失败,发卡银行不支持该商户,请更换其他银行卡
825563 卡状态不正确
825564 银行卡余额不足
825565 卡信息或银行预留手机号有误
825566 短信验证码已过期
825567 密码输入次数超限
825568 您的银行卡暂不支持该业务
825571 对不起,你所输的验证码有误,请核实后再试!
825572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
825573 对不起,您所输的户名有误,请核实后再试!
825574 对不起,您的证件类型有误,请核实后再试!
825575 对不起,您的所输证件号码有误,请核实后再试!
825576 对不起,您所输的手机号码有误,,请核实后再试!
825577 验证码发送失败
825578 验证码超限或超时
825579 对不起,您的用户信息未通过银行验证,请核实后再试!
825580 银行卡状态异常
825581 支付失败,请稍后再试
825582 退款失败,请稍后再试
825583 余额不足次数超限,请隔日再试
825584 单笔金额超限
825585 单日金额超限
825586 单月金额超限
825587 订单信息重复
825588 支付订单信息有误
825589 退款失败,退款金额与订单金额不符
825590 交易失败,参数不合法
825591 系统异常
825592 交易失败,银行系统繁忙,请稍后再试
825593 系统超时
825594 银行处理中,请稍后再试
825595 短信验证码不正确
825596 CVV或有效期错误
825597 短息服务异常
825598 短信验证码验证次数超限,请重新发送
8255F0 支付渠道问题
8255F1 交易失败,未开通银联认证支付
8255F2 交易失败,未添加白名单
8255F3 签约失败,请稍后再试
8255F4 该卡当日失败次数超过阀值
8255F5 退款失败,没有找到成功的交易记录
8255F6 查无协议号,须要重新签约!
8255P0 交易挂起,需要确认
8255S2 需跳转页面签约
8255B0 无可用支付方式
8255B1 消费超过该商户支持限额
8255C0 MCHID不存在
8255C1 二维码已过期
8255C2 授权码相关错误
8255C3 用户支付中,需要输入密码
8255C4 XML格式错误
8255C6 签名错误
8255C7 编码格式错误
8255C8 支付帐号错误
8255C9 APPID不存在
8255D0 获取顾客账户信息失败,请刷新付款码后重新收款
8255D1 appid和mch_id不匹配
8255D2 验签失败
8255D3 post数据为空
8255D4 无效transaction_id
8255D5 分账信息校验失败
8255D6 没有权限使用该产品
8255D7 卖家信息有误
8255D8 买家信息有误
8255D9 卖家买家账号相同
8255A0 透传银行错误描述
8255A1 风控拦截
8255U0 银行无签约信息,或已解约
8255U1 pnrpay_element无签约信息,或已解约
82563C 手续费金额不得大于等于交易金额
825800 风控信息验证失败

代码示例

java

String valueObj = "{
            "version": "10",
            "cmd_id": "825",
            "mer_cust_id": "6666000000026086",
            "order_date": "20180816",
            "order_id": "2018081615344454",
            "user_name": "",
            "cert_type": "01020100",
            "cert_id": "",
            "card_mobile": "13100001111",
            "card_no": "6225768612148888",
            "gateway_seqId": "1234567890",
            "trans_amt": "1.00",
            "card_type": "01050000",
            "in_cust_acct_id": "",
            "in_cust_id": "",
            "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
            "mer_priv": "test_merpriv",
            "extension": "test_extension"
    }";

String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
String checkValue = sign(valueObj);
String cmdId = "825";
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": "825",
        "resp_code": "825000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180816",
        "order_id": "2018081615344454",
        .......
      }

失败响应:

200
   {
     "cmd_id": "825",
     "resp_code": "825099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180816",
     "order_id": "2018081615344454",
     .......
   }

105 银行卡解绑接口

功能说明

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

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本 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 固定1位String 可选 0:取现,1:代扣,2:快捷,为空时表示同时解绑代扣和快捷卡
短信验证码日期 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 该银行卡未被绑定为快捷卡