刷脸类接口

210 刷脸支付( APP 版)接口

功能说明

跳转到汇付 APP 页面,进行绑卡和刷脸支付,或用已绑银行卡直接进行刷脸支付。即绑卡+刷脸支付二合一接口(有页面,适合手机端)。

调用方式:页面浏览器

用户付款银行卡需要预先在银行网银或柜面开通在线支付功能才可进行支付。

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为210
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 付款客户号
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
交易金额 trans_amt 变长14位String 必须 金额格式是###.00
分账账户串 div_detail 变长String 可选 div_detail和下方的(in_cust_id,in_acct_id)两者必填一项,且只能填一项;分账串定义可参照下表;注:如果不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号
数据格式:[{‘divCustId’:‘6666000000025350’,’divAcctId’:‘78276’,’divAmt’:‘50.00’,’divFreezeFg’:‘00’}],可分给多个对象,每个对象大括号{}用逗号隔开
该参数表示分账对象,将金额分给虚拟用户的账户中,divCustId和divAcctId即为开户接口返回的user_cust_id和acct_id,若分给平台自己,可通过上线邮件中查找商户客户号和子账号信息
入账客户号 in_cust_id 定长16位String 可选 分账串为空的场合必填,in_cust_id表示入账的用户客户号,即开户接口返回的user_cust_id
入账账户号 in_acct_id 变长9位String 可选 分账串为空的场合必填,in_acct_id表示入账的用户账户号,即开户接口返回的acct_id
设备号 device_info 变长32位String 可选  
IP地址 ip_addr 变长20位String 可选  
经纬度 location_val 变长20位String 可选  
页面返回URL ret_url 变长128位的String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
二级商户号 secondary_mer_id 定长10位的String 可选 对于开启二级商户模式的商户,必须输入其配下的二级商户号
付款方交易终端类型 payer_term_type 定长2位String 可选 01-电脑 02-手机 03-平板设备 04-可穿戴设备 05-数字电视 06-条码支付受理终端 99-其他
付款方交易终端编码 payer_term_no 变长32位的String 可选 请参考《网络支付报文结构及要素技术规范(V1.0)》(银办发[2016] 222号)
收款方交易终端类型 payee_term_type 定长2位String 可选 01-电脑 02-手机 03-平板设备 04-可穿戴设备 05-数字电视 06-条码支付受理终端 99-其他
收款方交易终端编码 payee_term_no 变长32位的String 可选 请参考《网络支付报文结构及要素技术规范(V1.0)》(银办发[2016] 222号)
商品简称 goods_short_name 变长40位的String 可选 不能包含特殊字符:<>&’”|%#\^-
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息_
行业类型 tm_type 定长4位的String 可选 0100:住宿;0200:餐饮;0300:电器;0400:服饰;0500:旅游;0600:珠宝;0700:汽车服务;0800:美容养生;0900:酒吧,夜总会;1000:数码电脑;1100:美妆护肤;1200:百货;1300:家装建材;
增值服务 value_added_service 定长2位的String 可选 01-优选路由
备注1 remark1 定长2位的String 可选 参考说明
备注2 remark2 定长6位的String 可选 参考说明
交易发生地 transaction_addr 变长128位String 必须  
资金用途 purpose 变长128位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 必须 固定为210
返回码 resp_code 变长String 必须 210000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 付款客户号
子账户号 acct_id 变长16位String 必须 由汇付生成,用户的默认子账户号
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
开户银行代号 bank_id 变长8位String 必须 具体见附件:开户银行代号
银行卡号 card_no 变长32位String 必须 返回银行卡号掩码
绑定银行卡ID bind_card_id 变长20位String 必须 本次绑卡的ID
借贷标记 dc_flag 定长1位String 必须 0–借记,储蓄卡 1–贷记,信用卡
交易金额 trans_amt 变长14位String 必须 金额格式是###.00
分账账户串 div_detail 变长String 可选  
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费扣款客户号 fee_cust_id 定长16位String 可选 手续费扣款客户号
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
页面返回URL ret_url 变长128位的String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
增值服务 value_added_service 定长2位的String 可选 01-优选路由
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  

返回码

返回码 返回描述
210000 支付成功
210001 支付请求受理中
210099 系统异常
210201 页面数据被篡改
210202 交易订单号重复
210203 账户可用余额不足
210204 商户配置异常
210205 短信验证码验证失败
210206 短信验证码发送手机号与验证手机号不一致
210208 短信验证码已失效请重新获取
210211 短信验证码发送失败
210214 查询出现异常
210215 请补录身份信息
210216 短信验证码发送过于频繁或单日发送次数超限
210301 只有个人用户和个体户能快捷支付
210302 商户支付基础信息未配置
210303 支付手续费账户状态不正常
210304 支付手续费未配置
210306 身份证实名验证错误
210307 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡
210308 个人用户信息校验失败
210309 开户手续费收取失败
210310 该笔交易已结束
210311 无任何银行信息
210314 验证码发送失败
210315 验证码发送成功
210317 用户有快捷卡正在绑定中,请勿重复绑卡
210319 验证码发送中
210320 银行卡解绑失败
210321 操作超时,请重试
210322 省份地区信息非法
210324 银行卡信息验证失败
210325 银行卡号与银行、卡类型信息不匹配
210502 系统未开放或暂时关闭,请稍后再试
210503 交易通讯超时,请发起查询交易
210504 交易状态未明,请查询对账结果
210505 重复签约
210506 交易失败,详情查看银行返回信息
210507 验卡失败,具体问题参见对应银行认证失败原因
210508 交易处理中(撤销)
210510 订单信息为空
210511 订单信息有误
210512 重复交易
210513 交易失败,订单已超时!
210514 批量文件格式错误
210519 订单系统错误
210520 持卡人信息为空
210521 持卡人信息有误
210522 持卡人系统错误
210523 卡信息为空
210524 卡信息有误
210525 卡系统错误
210526 卡系统错误
210529 业务受限
210530 业务系统信息为空
210531 业务系统信息有误
210532 业务系统错误
210533 金额超限
210534 查无此交易
210535 网关不支持签约交易
210536 与原交易信息不符
210537 已超过最大查询次数或操作过于频繁
210538 风险受限
210539 网关不支持解约交易!
210540 授权码为空
210541 批量状态不正确,无法下载
210542 扣款成功但交易超过规定支付时间
210543 二级商户号为空
210544 商品描述为空
210545 支付类型为空
210546 交易类型为空
210547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
210548 微信公众号支付subOpenId不能为空
210549 无签约记录
210550 账户信息有误
210551 交易金额低于下限
210552 交易失败,未在我方进行实名认证或认证不通过
210553 二级商户名为空!
210554 入驻类型为空或值不对!
210555 商户入驻信息不匹配!
210556 商户入驻失败!
210557 银行卡类型不支持
210558 认证失败
210559 交易次数超限
210560 交易失败,请联系发卡银行
210561 对不起,您所输的银行卡号有误,请核实后再试!
210562 交易失败,发卡银行不支持该商户,请更换其他银行卡
210563 卡状态不正确
210564 银行卡余额不足
210565 卡信息或银行预留手机号有误
210566 短信验证码已过期
210567 密码输入次数超限
210568 您的银行卡暂不支持该业务
210571 对不起,你所输的验证码有误,请核实后再试!
210572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
210573 对不起,您所输的户名有误,请核实后再试!
210574 对不起,您的证件类型有误,请核实后再试!
210575 对不起,您的所输证件号码有误,请核实后再试!
210576 对不起,您所输的手机号码有误,,请核实后再试!
210577 验证码发送失败
210578 验证码超限或超时
210579 对不起,您的用户信息未通过银行验证,请核实后再试!
210580 银行卡状态异常
210581 支付失败,请稍后再试
210582 退款失败,请稍后再试
210583 余额不足次数超限,请隔日再试
210584 单笔金额超限
210585 单日金额超限
210586 单月金额超限
210587 订单信息重复
210588 支付订单信息有误
210589 退款失败,退款金额与订单金额不符
210590 交易失败,参数不合法
210591 系统异常
210592 交易失败,银行系统繁忙,请稍后再试
210593 系统超时
210594 银行处理中,请稍后再试
210595 短信验证码不正确
210596 CVV或有效期错误
210597 短息服务异常
210598 短信验证码验证次数超限,请重新发送
2105F0 支付渠道问题
2105F1 交易失败,未开通银联认证支付
2105F2 交易失败,未添加白名单
2105F3 签约失败,请稍后再试
2105F4 该卡当日失败次数超过阀值
2105F5 退款失败,没有找到成功的交易记录
2105F6 查无协议号,须要重新签约!
2105P0 交易挂起,需要确认
2105S2 需跳转页面签约
2105B0 无可用支付方式
2105B1 消费超过该商户支持限额
2105C0 MCHID不存在
2105C1 二维码已过期
2105C2 授权码相关错误
2105C3 用户支付中,需要输入密码
2105C4 XML格式错误
2105C6 签名错误
2105C7 编码格式错误
2105C8 支付帐号错误
2105C9 APPID不存在
2105D0 获取顾客账户信息失败,请刷新付款码后重新收款
2105D1 appid和mch_id不匹配
2105D2 验签失败
2105D3 post数据为空
2105D4 无效transaction_id
2105D5 分账信息校验失败
2105D6 没有权限使用该产品
2105D7 卖家信息有误
2105D8 买家信息有误
2105D9 卖家买家账号相同
2105A0 透传银行错误描述
2105A1 风控拦截
2105U0 银行无签约信息,或已解约
2105U1 pnrpay_element无签约信息,或已解约
210721 分账串内容不能超过五个
210722 分账串部分字段为空
210723 分账串金额格式错误
210724 分账串累计金额不等于订单金额
210725 分账信息用户状态异常
210726 分账信息账户状态异常
210727 分账信息异常
210728 分账串账户信息格式错误
210729 分账串账户异常
210732 分账串客户号信息格式错误
210739 快捷支付短信发送异常
210741 分账串内容重复
210742 快捷支付成功,分账失败
210743 请获取验证码

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "210",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026190",
       "order_id": "20620000087",
       "order_date": "20170828",
       "trans_amt": "6.92",
       "div_detail": "[{'divCustId':'6666000000026185','divAcctId':'79704','divAmt':'6.92','divFreezeFg':'00'}]",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "ret_url": "",
       "mer_priv": "test",
       "extension": "test"
       }";

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

页面展示

未绑卡时页面展示

_images/210_1.png

已绑卡时页面展示

_images/210_2.png

成功失败页面展示

_images/210_result.png

211 刷脸支付后台版接口

功能说明

跳转到汇付 APP 页面,用已绑银行卡直接进行刷脸支付。(有页面)。

调用方式:页面浏览器

用户付款银行卡需要预先在银行网银或柜面开通在线支付功能才可进行支付。

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为211
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 付款客户号
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
交易金额 trans_amt 变长14位String 必须 金额格式是###.00
分账账户串 div_detail 变长String 可选 div_detail和下方的(in_cust_id,in_acct_id)两者必填一项,且只能填一项;分账串定义可参照下表;注:如果不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号
数据格式:[{‘divCustId’:‘6666000000025350’,’divAcctId’:‘78276’,’divAmt’:‘50.00’,’divFreezeFg’:‘00’}],可分给多个对象,每个对象大括号{}用逗号隔开
该参数表示分账对象,将金额分给虚拟用户的账户中,divCustId和divAcctId即为开户接口返回的user_cust_id和acct_id,若分给平台自己,可通过上线邮件中查找商户客户号和子账号信息
入账客户号 in_cust_id 定长16位String 可选 分账串为空的场合必填,in_cust_id表示入账的用户客户号,即开户接口返回的user_cust_id
入账账户号 in_acct_id 变长9位String 可选 分账串为空的场合必填,in_acct_id表示入账的用户账户号,即开户接口返回的acct_id
设备号 device_info 变长32位String 可选  
IP地址 ip_addr 变长20位String 可选  
经纬度 location_val 变长20位String 可选  
页面返回URL ret_url 变长128位的String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
二级商户号 secondary_mer_id 定长10位的String 可选 对于开启二级商户模式的商户,必须输入其配下的二级商户号
付款方交易终端类型 payer_term_type 定长2位String 可选 01-电脑 02-手机 03-平板设备 04-可穿戴设备 05-数字电视 06-条码支付受理终端 99-其他
付款方交易终端编码 payer_term_no 变长32位的String 可选 请参考《网络支付报文结构及要素技术规范(V1.0)》(银办发[2016] 222号)
收款方交易终端类型 payee_term_type 定长2位String 可选 01-电脑 02-手机 03-平板设备 04-可穿戴设备 05-数字电视 06-条码支付受理终端 99-其他
收款方交易终端编码 payee_term_no 变长32位的String 可选 请参考《网络支付报文结构及要素技术规范(V1.0)》(银办发[2016] 222号)
商品简称 goods_short_name 变长40位的String 可选 不能包含特殊字符:<>&’”|%#\^-
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息_
绑定银行卡ID bind_card_id 变长20位String 必须 付款人代扣支付时的代扣绑卡的ID (代扣支付时的返回参数)
行业类型 tm_type 定长4位的String 可选 0100:住宿;0200:餐饮;0300:电器;0400:服饰;0500:旅游;0600:珠宝;0700:汽车服务;0800:美容养生;0900:酒吧,夜总会;1000:数码电脑;1100:美妆护肤;1200:百货;1300:家装建材;
增值服务 value_added_service 定长2位的String 可选 01-优选路由
备注1 remark1 定长2位的String 可选 参考说明
备注2 remark2 定长6位的String 可选 参考说明
交易发生地 transaction_addr 变长128位String 必须  
资金用途 purpose 变长128位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 必须 固定为211
返回码 resp_code 变长String 必须 211000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 付款客户号
子账户号 acct_id 变长16位String 必须 由汇付生成,用户的默认子账户号
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
开户银行代号 bank_id 变长8位String 必须 具体见附件:开户银行代号
银行卡号 card_no 变长32位String 必须 返回银行卡号掩码
借贷标记 dc_flag 定长1位String 必须 0–借记,储蓄卡 1–贷记,信用卡
交易金额 trans_amt 变长14位String 必须 金额格式是###.00
分账账户串 div_detail 变长String 可选  
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费扣款客户号 fee_cust_id 定长16位String 可选 手续费扣款客户号
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
页面返回URL ret_url 变长128位的String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
增值服务 value_added_service 定长2位的String 可选 01-优选路由
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
绑定银行卡ID bind_card_id 变长20位String 可选 付款人代扣支付时的代扣绑卡的ID (代扣支付时的返回参数)

返回码

返回码 返回描述
211000 支付成功
211001 支付请求受理中
211099 系统异常
211201 页面数据被篡改
211202 交易订单号重复
211203 账户可用余额不足
211204 商户配置异常
211205 短信验证码验证失败
211206 短信验证码发送手机号与验证手机号不一致
211208 短信验证码已失效请重新获取
211211 短信验证码发送失败
211214 查询出现异常
211215 请补录身份信息
211216 短信验证码发送过于频繁或单日发送次数超限
211301 只有个人用户和个体户能快捷支付
211302 商户支付基础信息未配置
211303 支付手续费账户状态不正常
211304 支付手续费未配置
211306 身份证实名验证错误
211307 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡
211308 个人用户信息校验失败
211309 开户手续费收取失败
211310 该笔交易已结束
211311 无任何银行信息
211314 验证码发送失败
211315 验证码发送成功
211317 用户有快捷卡正在绑定中,请勿重复绑卡
211319 验证码发送中
211320 银行卡解绑失败
211321 操作超时,请重试
211322 省份地区信息非法
211324 银行卡信息验证失败
211325 银行卡号与银行、卡类型信息不匹配
211502 系统未开放或暂时关闭,请稍后再试
211503 交易通讯超时,请发起查询交易
211504 交易状态未明,请查询对账结果
211505 重复签约
211506 交易失败,详情查看银行返回信息
211507 验卡失败,具体问题参见对应银行认证失败原因
211508 交易处理中(撤销)
211510 订单信息为空
211511 订单信息有误
211512 重复交易
211513 交易失败,订单已超时!
211514 批量文件格式错误
211519 订单系统错误
211520 持卡人信息为空
211521 持卡人信息有误
211522 持卡人系统错误
211523 卡信息为空
211524 卡信息有误
211525 卡系统错误
211526 卡系统错误
211529 业务受限
211530 业务系统信息为空
211531 业务系统信息有误
211532 业务系统错误
211533 金额超限
211534 查无此交易
211535 网关不支持签约交易
211536 与原交易信息不符
211537 已超过最大查询次数或操作过于频繁
211538 风险受限
211539 网关不支持解约交易!
211540 授权码为空
211541 批量状态不正确,无法下载
211542 扣款成功但交易超过规定支付时间
211543 二级商户号为空
211544 商品描述为空
211545 支付类型为空
211546 交易类型为空
211547 支付宝JS支付买家支付宝账号和买家支付宝ID不能同时为空
211548 微信公众号支付subOpenId不能为空
211549 无签约记录
211550 账户信息有误
211551 交易金额低于下限
211552 交易失败,未在我方进行实名认证或认证不通过
211553 二级商户名为空!
211554 入驻类型为空或值不对!
211555 商户入驻信息不匹配!
211556 商户入驻失败!
211557 银行卡类型不支持
211558 认证失败
211559 交易次数超限
211560 交易失败,请联系发卡银行
211561 对不起,您所输的银行卡号有误,请核实后再试!
211562 交易失败,发卡银行不支持该商户,请更换其他银行卡
211563 卡状态不正确
211564 银行卡余额不足
211565 卡信息或银行预留手机号有误
211566 短信验证码已过期
211567 密码输入次数超限
211568 您的银行卡暂不支持该业务
211571 对不起,你所输的验证码有误,请核实后再试!
211572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡
211573 对不起,您所输的户名有误,请核实后再试!
211574 对不起,您的证件类型有误,请核实后再试!
211575 对不起,您的所输证件号码有误,请核实后再试!
211576 对不起,您所输的手机号码有误,,请核实后再试!
211577 验证码发送失败
211578 验证码超限或超时
211579 对不起,您的用户信息未通过银行验证,请核实后再试!
211580 银行卡状态异常
211581 支付失败,请稍后再试
211582 退款失败,请稍后再试
211583 余额不足次数超限,请隔日再试
211584 单笔金额超限
211585 单日金额超限
211586 单月金额超限
211587 订单信息重复
211588 支付订单信息有误
211589 退款失败,退款金额与订单金额不符
211590 交易失败,参数不合法
211591 系统异常
211592 交易失败,银行系统繁忙,请稍后再试
211593 系统超时
211594 银行处理中,请稍后再试
211595 短信验证码不正确
211596 CVV或有效期错误
211597 短息服务异常
211598 短信验证码验证次数超限,请重新发送
2115F0 支付渠道问题
2115F1 交易失败,未开通银联认证支付
2115F2 交易失败,未添加白名单
2115F3 签约失败,请稍后再试
2115F4 该卡当日失败次数超过阀值
2115F5 退款失败,没有找到成功的交易记录
2115F6 查无协议号,须要重新签约!
2115P0 交易挂起,需要确认
2115S2 需跳转页面签约
2115B0 无可用支付方式
2115B1 消费超过该商户支持限额
2115C0 MCHID不存在
2115C1 二维码已过期
2115C2 授权码相关错误
2115C3 用户支付中,需要输入密码
2115C4 XML格式错误
2115C6 签名错误
2115C7 编码格式错误
2115C8 支付帐号错误
2115C9 APPID不存在
2115D0 获取顾客账户信息失败,请刷新付款码后重新收款
2115D1 appid和mch_id不匹配
2115D2 验签失败
2115D3 post数据为空
2115D4 无效transaction_id
2115D5 分账信息校验失败
2115D6 没有权限使用该产品
2115D7 卖家信息有误
2115D8 买家信息有误
2115D9 卖家买家账号相同
2115A0 透传银行错误描述
2115A1 风控拦截
2115U0 银行无签约信息,或已解约
2115U1 pnrpay_element无签约信息,或已解约
211721 分账串内容不能超过五个
211722 分账串部分字段为空
211723 分账串金额格式错误
211724 分账串累计金额不等于订单金额
211725 分账信息用户状态异常
211726 分账信息账户状态异常
211727 分账信息异常
211728 分账串账户信息格式错误
211729 分账串账户异常
211732 分账串客户号信息格式错误
211739 快捷支付短信发送异常
211741 分账串内容重复
211742 快捷支付成功,分账失败
211743 请获取验证码

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "211",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026190",
       "order_id": "20620000087",
       "order_date": "20170828",
       "trans_amt": "6.92",
       "div_detail": "[{'divCustId':'6666000000026185','divAcctId':'79704','divAmt':'6.92','divFreezeFg':'00'}]",
       "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "ret_url": "",
       "mer_priv": "test",
       "extension": "test"
       }";

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

页面展示

支付页面展示

_images/211_2.png

成功失败页面展示

_images/211_result.png