银联碰一碰接口

150 申请标签接口

功能说明

通过标签ID申请银联标签数据接口

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为150
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
行业 tm_type 定长4位String 可选 0100:住宿;0200:餐饮;0300:电器;0400:服饰;0500:旅游;0600:珠宝;0700:汽车服务;0800:美容养生;0900:酒吧,夜总会;1000:数码电脑;1100:美妆护肤;1200:百货;1300:家装建材;
用户省份 cust_prov 定长2位String 必须 用户省份code
用户地区 cust_area 定长6位String 必须 用户地区code
分账比例 div_amt 变长20位String 必须 分账比例=交易金额(AMT)*百分比+固定金额。单位(元)例如:”AMT*0.05+10”,说明:分账比例为交易金额的百分之五,加上固定收取10元。都可以为0
免密金额 unsecret_trans_fee 变长14位String 必须 金额格式是###.00,最低金额为0 例如:0.00
最高交易限额 max_trans_fee 变长14位String 必须 金额格式是###.00,最低金额为10万 例如:100000.00
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户交易分账结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户分账账户号 mer_acct_id 变长9位String 必须 商户分账账户号
用户分账账户号 user_acct_id 变长9位String 必须 用户分账账户号

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 固定为150
返回码 resp_code 变长String 必须 150000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
行业 tm_type 定长4位String 必须  
用户省份 cust_prov 定长2位String 必须 用户省份code
用户地区 cust_area 定长6位String 必须 用户地区code
分账比例 div_amt 变长20位String 必须  
免密金额 unsecret_trans_fee 变长14位String 必须 金额格式是###.00,最低金额为0 例如:0.00
最高交易限额 max_trans_fee 变长14位String 必须 金额格式是###.00,最低金额为10万 例如:100000.00
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户交易分账结果 注意1) 使用时不要包含中文 2) 必须是外网地址
商户分账账户号 mer_acct_id 变长9位String 必须 商户分账账户号
用户分账账户号 user_acct_id 变长9位String 必须 用户分账账户号
标签数据 nfc_tag 变长256位String 可选 通道返回
银联商户号 mer_id 变长20位String 可选 银联商户号
银联商户名 mer_name 变长20位String 可选 银联商户名

返回码

返回码 返回描述
150000 交易成功
150310 分账比例格式错误
150311 标签已绑定
150312 标签已停用
150313 标签ID和用户客户号二者必填一个
150314 标签状态异常
150315 用户分账比例未配置
150316 分账账户未配置
150318 分账比例配置有误
150319 交易分账请勿重复提交
150323 用户地区或省份code不正确
150324 用户客户号与既存的不一致时,用户分账账户号不可为空
150325 用户行业code不正确
150326 商户客户号与既存的不一致
150327 标签异常
150328 标签未绑定

代码示例

java

String valueObj = {
       "version":"10",
       "cmd_id":"150",
       "mer_cust_id":
       "6666000000026086",
       "user_cust_id":"6666000000026186",
       "order_id":"2020032600200083",
       "order_date":"20200520",
       "tm_type":"0100",
       "cust_prov":"15",
       "cust_area":"150700",
       "div_amt":"AMT*0.005+2",
       "unsecret_trans_fee":"100.00",
       "max_trans_fee":"10000.00",
       "nfc_tag_id":"123456790123",
       "bg_ret_url":"http://192.168.0.74:8001/npayCallBack/asyncHandle.json",
       "mer_acct_id":"1347510",
       "user_acct_id":"79706"};

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

151 停用标签接口

功能说明

停用标签接口

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为151
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 可选 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 固定为151
返回码 resp_code 变长String 必须 151000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID

返回码

返回码 返回描述
151000 交易成功
151310 分账比例格式错误
151311 标签已绑定
151312 标签已停用
151313 标签ID和用户客户号二者必填一个
151314 标签状态异常
151315 用户分账比例未配置
151316 分账账户未配置
151318 分账比例配置有误
151319 交易分账请勿重复提交
151323 用户地区或省份code不正确
151324 用户客户号与既存的不一致时,用户分账账户号不可为空
151325 用户行业code不正确
151326 商户客户号与既存的不一致
151327 标签异常
151328 标签未绑定

代码示例

java

String valueObj = {
       "version":"10",
       "cmd_id":"151",
       "mer_cust_id":"6666000000026086",
       "user_cust_id":"6666000000026186",
       "order_id":"2020032600200080",
       "order_date":"20200511",
       "nfc_tag_id":"123456790123"};

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

152 修改标签接口

功能说明

修改标签接口

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为152
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID
分账比例 div_amt 变长20位String 可选 分账比例=交易金额(AMT)*百分比+固定金额。单位(元)例如:”AMT*0.05+10”,说明:分账比例为交易金额的百分之五,加上固定收取10元。都可以为0
商户后台应答地址 bg_ret_url 变长128位的String 可选 通过后台异步通知商户交易分账结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户分账账户号 mer_acct_id 变长9位String 可选 商户分账账户号
用户分账账户号 user_acct_id 变长9位String 可选 用户分账账户号

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 固定为152
返回码 resp_code 变长String 必须 152000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
分账比例 div_amt 变长20位String 可选  
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID
商户后台应答地址 bg_ret_url 变长128位的String 可选 通过后台异步通知商户交易分账结果 注意1) 使用时不要包含中文 2) 必须是外网地址
商户分账账户号 mer_acct_id 变长9位String 可选 商户分账账户号
用户分账账户号 user_acct_id 变长9位String 可选 用户分账账户号

返回码

返回码 返回描述
152000 交易成功
152310 分账比例格式错误
152311 标签已绑定
152312 标签已停用
152313 标签ID和用户客户号二者必填一个
152314 标签状态异常
152315 用户分账比例未配置
152316 分账账户未配置
152318 分账比例配置有误
152319 交易分账请勿重复提交
152323 用户地区或省份code不正确
152324 用户客户号与既存的不一致时,用户分账账户号不可为空
152325 用户行业code不正确
152326 商户客户号与既存的不一致
152327 标签异常
152328 标签未绑定

代码示例

java

String valueObj = {
       "version":"10",
       "cmd_id":"152",
       "mer_cust_id":"6666000000026086",
       "user_cust_id":"6666000000026186",
       "order_id":"2020032600200080",
       "order_date":"20200511",
       "nfc_tag_id":"123456790123"};

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

153 查询标签接口

功能说明

查询标签接口

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为153
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 可选 由汇付生成,商户的唯一性标识,用户客户号和标签ID,必填一个
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
标签ID nfc_tag_id 变长128位的String 可选 NFC标签ID,用户客户号和标签ID,必填一个

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 固定为153
返回码 resp_code 变长String 必须 153000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位的String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长8位String 必须  
订单号 order_id 变长20位的String 必须  
分账比例 div_amt 变长20位String 必须  
标签列表 nfc_tag_list 变长String 必须 NFC标签列表,具体内容如下表

标签列表返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID
标签状态 nfc_tag_id_stat 定长8位的String 必须 NFC标签状态,00000000表示标签关闭,00000001表示标签开启
商户分账账户号 mer_acct_id 变长9位String 必须 商户分账账户号
用户分账账户号 user_acct_id 变长9位String 必须 用户分账账户号
标签数据 nfc_tag 变长256位String 可选 通道返回
银联商户号 mer_id 变长20位String 可选 银联商户号
银联商户名 mer_name 变长20位String 可选 银联商户名

返回码

返回码 返回描述
153000 交易成功
150326 商户客户号与既存的不一致
150329 未查询到标签

代码示例

java

String valueObj = {
       "version":"10",
       "cmd_id":"153",
       "mer_cust_id":"6666000000026086",
       "user_cust_id":"6666000000026186",
       "order_id":"2020032600200110",
       "order_date":"20200513"};

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

154 碰一碰交易结果通知

功能说明

此接口返回的是碰一碰交易成功后,入账的结果,通知地址是150申请标签接口请参中的商户后台应答地址

调用方式:无

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为154
应答返回码 resp_code 定长6位String 必须 154000—交易成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
全局流水号 trace_id 变长40位String 必须 全局流水号
请求流水号 product_seq_id 变长64位String 必须 请求流水号
银联商户号 union_pay_mer_id 变长32位String 必须 银联商户号
银联商户名 union_pay_mer_name 变长32位String 可选 银联商户名
订单总金额 trans_amt 变长14位String 可选 订单总金额
应结订单金额 settlement_amt 变长14位String 必须 应结订单金额
优惠金额 discount_amt 变长14位String 可选 优惠金额
交易时间 trans_time 变长14位String 可选 交易时间
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
交易类型 business_type 定长2位String 可选 交易类型: 01:二维码 02:pos交易 10:快速收钱码消费交易 11:标签支付
方式 pay_channel_type 定长1位String 可选 W微信、A支付宝、U银联
二维码付款凭证号 qr_voucher_num 变长20位String 可选 二维码付款凭证号
借贷标记 dc_flag 定长1位String 必须 0–借记,储蓄卡 1–贷记,信用卡
手续费金额 fee_amt 变长14位String 可选 手续费金额,格式为###.00
手续费扣款客户号 fee_cust_id 定长16位String 可选 手续费扣款客户号
手续费子账户号 fee_acct_id 变长9位String 可选 手续费扣款子账户号
分账账户串 div_detail 变长String 可选 数据格式:[{“divCustId “:”6000060000009547”,” divAcctId”:”MDT000001”,” divAmt”:”1.00”}]
标签ID nfc_tag_id 变长128位的String 必须 NFC标签ID

分账账户串(div_detail)

参数中文名称 参数名称 数据格式 是否必须 说明
分账客户号 divCustId 定长16位的String 必须  
分账账户号 divAcctId 变长9位String 必须  
分账金额 divAmt 变长14位String 必须 分账金额,保留两位小数

返回码

返回码 返回描述
154000 交易成功
154330 标签状态异常
154099 系统异常
154110 商户号不存在
154103 商户状态异常
154104 用户状态异常
154112 账号不存在
154011 用户不存在
154316 分账账户未配置
154105 账户状态异常
154315 分账比例未配置
154318 分账比例配置有误
154321 支付手续费未配置
154303 商户支付基础信息未配置
154323 外扣支付手续费只能向商户收取
154320 交易分账手续费不支持内扣
154314 支付手续费账户状态不正常
154331 分账金额不能小于零