查询类接口

301 交易状态查询接口

功能说明

供商户查询其用户在本平台进行过的交易的交易状态

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为301
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
交易查询类型 trans_type 定长2位String 必须 快捷支付:01, 取现:02, 转账:03 ,退款:04 ,消费分期代扣绑卡:05 ,企业开户:06 ,快捷绑卡:07 ,取现绑卡:08 ,代扣支付:09 ,网银支付:10 ,扫码支付:11 ,代发:12 ,快捷支付页面版/APP版:13 ,反扫:14 ,非消费分期代扣绑卡:15 ,APP支付:16 ,H5收银台支付:17 ,刷脸支付:28 ,快捷小额免密支付:29
商户私有域 mer_priv 变长120 位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为301
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
返回码 resp_code 定长3位String 必须 000:成功 099:系统异常 213:未查询到内容
返回内容 resp_desc 变长String 可选  
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
交易查询类型 trans_type 定长2位String 必须 快捷支付:01, 取现:02, 转账:03 ,退款:04 ,消费分期代扣绑卡:05 ,企业开户:06 ,快捷绑卡:07 ,取现绑卡:08 ,代扣支付:09 ,网银支付:10 ,扫码支付:11 ,代发:12 ,快捷支付页面版/APP版:13 ,反扫:14 ,非消费分期代扣绑卡:15 ,APP支付:16 ,H5收银台支付:17 ,刷脸支付:28
汇付交易状态 trans_stat 变长8位的String 可选 02000000:初始 02000001:已受理 02000002:成功 02000003:失败 02000004:未知 02000005:处理中 02000006:部分成功 02000007:二次验证中 02000008:交易关闭 02000009:冻结中 企业开户时 02000100:初始 02000101:待审核 02000102:审核中 02000103:待资料修改 02000104:审核通过 02000105:审核不通过
银行返回描述 bg_bank_message 变长200位String 可选  
交易金额 trans_amt 变长14位的String 可选 泛指交易金额,金额格式必须是###.00,比如2.00,2.01
手续费金额 fee_amt 变长14位的String 可选 泛指交易金额,金额格式必须是###.00,比如2.00,2.01
原交易流水号 platform_seq_id 定长18位String 必须 原交易返回的“本平台交易唯一标识号”
外部订单流水号 out_trans_id 变长64位String 可选 指支付宝、微信、银联流水号
分账账户串 div_detail 变长String 可选  
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数
付款方银行编号 pyer_bank_no 定长String 可选  
付款方银行账号 pyer_acct_id 定长String 可选  
付款方银行账户名 pyer_acct_nm 定长String 可选  

分账账户串(div_detail)

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

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

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "301",
       "mer_cust_id": "6666000000026086",
       "order_id": "2180000489",
       "order_date": "20171031",
       "trans_type": "16",
       "mer_priv": "",
       "extension": ""
       }";

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

返回码

返回码 返回描述
301000 交易成功
301098 系统超时
301099 系统异常
301100 请求参数非法
301101 商户无此接口权限
301102 验证签名失败
301103 商户状态异常
301107 消息类型与签名内容不一致
301108 商户客户号与签名内容不一致
301109 版本号与签名内容不一致
301110 商户号不存在
301213 未查询到内容

302 卡 bin 查询接口

功能说明

供商户根据卡号前六位查询所属银行

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为302
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
银行卡号 card_no 变长32位String 必须 8位以下报错

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为302
应答返回码 resp_code 定长6位String 必须 302000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
银行卡号 card_no 变长30位String 必须 银行卡号
卡bin card_bin 变长10位String 必须 2-10位数字
发卡行 bank_name 变长30位String 必须 发卡银行名称
卡类型 card_type 定长1位String 必须 卡类型 (’C’– 贷记卡、’D’– 借记卡、’S’– 准贷记卡、’P’– 预付费卡)
银行编号 bank_no 定长8位String 必须 8位数字

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "302",
       "mer_cust_id": "6666000000002619",
       "card_no": "4367288208658152"
       }";

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

返回码

返回码 返回描述
302000 交易成功
302098 系统超时
302099 系统异常
302100 请求参数非法
302101 商户无此接口权限
302102 验证签名失败
302103 商户状态异常
302107 消息类型与签名内容不一致
302108 商户客户号与签名内容不一致
302109 版本号与签名内容不一致
302110 商户号不存在
302214 查询出现异常

303 余额查询接口

功能说明

提供商户查询商户或用户当前余额

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为303
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位String 必须 查询商户本身时,同商户客户号
账户号 acct_id 变长9位String 必须  

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为303
返回码 resp_code 定长3位String 必须 000:成功 099:系统异常
返回内容 resp_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位String 必须 查询商户本身时,同商户客户号
账户号 acct_id 变长9位String 必须  
可用余额 balance 变长String 必须  
账户余额 acct_balance 变长String 必须  
冻结余额 freeze_balance 变长String 必须  
账户状态 acct_stat 定长1位 必须 N:正常 C:关闭 F:冻结 D:销户

返回码

代码示例

java

String valueObj = "{"version":"10","cmd_id":"303","mer_cust_id":"6666000000026086","user_cust_id":"6666000000040420","acct_id":"122148"}";

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

305 裸扣交易状态查询接口

功能说明

供商户查询其用户在本平台进行过的交易的单笔交易状态

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为305
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
商户批次号 mer_batch_id 变长10位String 非必须 格式为十位数字,从0000000001开始 查询批量代扣时,字段必输
交易日期 trans_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307,
商户私有域 mer_priv 变长120 位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为305
返回码 resp_code 定长3位String 必须 000:成功 099:系统异常 213:订单信息不存在
返回内容 resp_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
商户批次号 mer_batch_id 变长10位String 可选 格式为十位数字,从0000000001开始 查询批量代扣时,字段必输
订单号 order_id 变长20位String 必须 由商户生成,必须保证唯一, 20位内的字母或数字组合
订单日期 order_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
用户姓名 user_name 变长50位String 必须 用户的真实姓名
身份证号 cert_id 变长18位String 必须 用户的身份证号
金额 trans_amt 变长14位String 必须 金额格式是###.00
银行卡号 card_no 变长32位String 必须 8位以下报错
手机号 user_mobile 定长11位String 可选 用户的手机号
入账日期 acct_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307
本平台交易唯一标识号 platform_seq_id 定长18位String 必须 组成规则:8位本平台日期+ 10位系统流水号
代扣业务类型 trans_type 变长4位String 必须 花呗:MYHB;借呗:MYJB;网商银行:MYWS;基金购买:MYJJ; (一个批次只能是一种类型)
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回码

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "305",
       "mer_cust_id": "6666000000217291",
       "order_id": "044030",
       "mer_batch_id": "20102156",
       "trans_date": "20170921",
       "mer_priv": "",
       "extension": ""
       }";

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

306 快捷绑卡查询接口

功能说明

供商户查询其用户在本平台已绑定过的快捷卡

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为306
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为306
返回码 resp_code 定长3位String 必须 000:成功 099:系统异常
返回内容 resp_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
查询返回卡记录条数 counts 变长String 必须 格式数字
卡列表 card_list 变长String 必须 绑定的银行卡列表

卡列表(card_list)

参数中文名称 参数名称 数据格式 是否必须 说明
绑卡ID bindCardId 变长20位String 必须 汇付快捷绑卡的ID
快捷卡卡号 cardNo 定长3位String 必须 银行卡掩码
银行编号 bankId 变长8位String 必须 银行代号
借贷标识 dcFlag 定长8位String 必须 0–借记,储蓄卡 1–贷记,信用卡
状态标志 status 定长8位String 必须 00–正常 01–异常

返回码

代码示例

java

String valueObj = "{"version":"10","cmd_id":"306","mer_cust_id":"6666000000002619","user_cust_id":"6666000000005942"}";

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

311 重新绑卡查询

功能说明

供商户查询其用户在本平台是否已绑定过快捷卡/代扣卡

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为311
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
绑定银行卡ID bind_card_id 变长20位String 可选  

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 每一种消息类型代表一种交易,此处为311
应答返回码 resp_code 定长6位String 必须 311000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
绑定银行卡信息 bind_card_info 变长String 必须 数据格式: [{‘bindCardId’:‘0001’,’bindStat’:‘0’},{‘bindCardId’:‘0002’,’bindStat’:‘1’}]

绑定银行卡信息(bind_card_info)

bind_card_info        
绑定银行卡ID bindCardId 变长20位String 必须 bind_card_info参数下的二级参数
绑定银行卡状态 bindStat 定长1位String 必须 bind_card_info参数下的二级参数 1-已绑卡 0-未绑卡

返回码

代码示例

java

String valueObj = "{"version":"10","cmd_id":"311","mer_cust_id":"6666000000026086","user_cust_id":"6666000000026190"}";

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

320 批量代发回执单生成

功能说明

供商户批量查询生成代发回执单

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为320
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
原订单日期 order_date 定长8位String 可选 格式为YYYYMMDD,例如:20160307;(二选一)
原订单号 order_id 变长28位String 可选 商户代发交易时的订单号,订单日期+订单号,最多1000笔订单号;(二选一)[“201603070000024301”,”201703070000024302”,”201603070000024303”,……….]
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户回执单生成结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址

同步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为320
应答返回码 resp_code 定长6位String 必须 320002—请求已受理
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
无效订单 error_order_id 变长String 可选 仅传订单号查询时返回,订单号无效或不存在,无法生成回执单 [“201603070000024301”,” 201703070000024302”,” 201603070000024303”,……….]
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址

商户后台应答返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 320
应答返回码 resp_code 定长6位String 必须 320000–调用成功
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
回执单下载地址 receipt_url 变长256位的String 可选 生成的电子签章回执单的下载地址
无效订单 error_order_id 变长String 可选 仅传订单号查询时返回,订单号无效或不存在,无法生成回执单[“201603070000024301”,”201703070000024302”,”201603070000024303”,……….]
回执单文件为PDF文档,每页三个回执单

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "320",
       "mer_cust_id": "6666000000028641",
       "order_date": "20180509",
       "order_id": "",
       "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 = "320";
 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": "320",
        "resp_code": "320000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
    {
      "cmd_id": "320",
      "resp_code": "320099",
      "resp_desc": "交易失败",
      "mer_cust_id" : "6666000000026086",
      "order_date": "20180327",
      "order_id": "10000000001",
      .......
    }

返回码

返回码 返回描述
320000 交易成功
320003 交易失败
320099 系统异常
320100 请求参数非法
320101 商户无此接口权限
320102 验证签名失败
320103 商户状态异常
320104 用户状态异常
320107 消息类型与签名内容不一致
320108 商户客户号与签名内容不一致
320109 版本号与签名内容不一致
320110 商户号不存在
320310 产品信息校验失败
320201 该商户未开通代发回执单权限
320202 未查询到该笔交易
320203 请求参数格式错误
320204 未查询到代发交易
320205 超过查询最大订单数
320206 查询条件订单日期和订单号二者选其一

315 查询签约号接口

功能说明

给商户提供查询此银行卡是否已经签约完成。。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为315
商户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
银行卡号 card_no 变长20位的String 必须  
手机号 card_mobile 定长11位String 必须  
身份证号 cert_id 变长18位的String 可选  
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为315
应答返回码 resp_code 定长6位的String 必须 315000:交易成功, 315302:查无协议号,须重新签约 315003:交易失败(透传fpc的message) 315099:系统异常
应答描述 resp_desc 变长String 必须  
商户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "306",
       "mer_cust_id": "6666000000002619",
       "user_cust_id": "6666000000005942",
       "card_no": "",
       "card_mobile": "15822298989",
       "cert_id": "330183199308303977",
       "mer_priv ": "",
       "extension": ""
       }";

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

返回码

返回码 返回描述
315000 交易成功
315099 系统异常
315100 请求参数非法
315104 用户状态异常
315110 商户号不存在
315103 商户状态异常
315101 商户无此接口权限
315102 验证签名失败
315107 消息类型与签名内容不一致
315108 商户客户号与签名内容不一致
315109 版本号与签名内容不一致
315302 查无协议号,须重新签约
315003 交易失败

316 银行限额列表查询接口

功能说明

给商户提供查询银行限额列表信息。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为316
商户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
支付类型 trans_type 定长2位String 必须 01:快捷,02:代扣
卡类型 card_type 变长2位的String 必须 01:借记卡 02:贷记卡 03:准贷记卡

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为316
应答返回码 resp_code 定长6位的String 必须 316000:交易成功, 316213:未查询到内容 316003:交易失败 316099:系统异常
应答描述 resp_desc 变长String 必须  
商户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
支付类型 trans_type 定长2位String 必须 参考数字字典
卡类型 card_type 定长2位String 必须 参考数字字典
银行代码数组 bank_code_list List<String> 可选 支持的银行列表
限额信息列表 bank_limit_list List<BankLimitDTO> 可选 支持的银行限额列表

银行代码数组(bank_code_list)

参数中文名称 参数名称 数据格式 是否必须 说明
银行代码 bankNo 变长的String 必须 参考附件银行代号

限额信息列表(bank_limit_list)

参数中文名称 参数名称 数据格式 是否必须 说明
银行代码 bankNo 变长的String 必须 参考附件银行代号
日限额 dayLimit Double 必须 N/A
单笔最低限额 onceLimitLow Double 必须 N/A
单笔最高限额 onceLimitHigh Double 必须 N/A

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "316",
       "mer_cust_id": "6666000000002619",
       "trans_type": "01",
       "card\_type": "01",
       }";

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

返回码

返回码 返回描述
316000 交易成功
316099 系统异常
316100 请求参数非法
316104 用户状态异常
316110 商户号不存在
316103 商户状态异常
316101 商户无此接口权限
316102 验证签名失败
316107 消息类型与签名内容不一致
316108 商户客户号与签名内容不一致
316109 版本号与签名内容不一致
316213 未查询到内容
316003 交易失败

123 商户文件下载接口

功能说明

给商户提供查询对账或者收益文件url信息。

调用方式:系统调用

请求地址:

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为 10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 123
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
对账文件日期 file_date 定长2位String 必须 格式为YYYYMMDD,例如:20160307
文件大类 boa_file_type 变长2位的String 必须 对账单文件:01 收益文件:02

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 123
应答返回码 resp_code 定长6位String 必须 123000–调用成功,其他见附件四:返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
文件下载地址 file_url List<FileUrlBo> 必须 返回文件信息列表

FileUrlBo定义

参数中文名称 参数名称 数据格式 是否必须 说明
文件类型 fileType 变长的String 可选 04010300:日报资金对账,04010301:月报资金对账,04010302:支付交易对账,04010303:退款交易对账,04010304:取现交易对账,04010306:代发交易对账,04010311:生利宝收益文件,04010312:跨商户转账 04010315:充值交易对账,04010316:余额支付交易对账,04010317:组合支付交易对账,04010318:转账交易对账
文件地址 fileUrl 变长的String 可选 文件查看下载地址
文件序号 fileSeq 变长的String 可选 同类型的序号从 1 开始
文件后缀 fileSuff 变长的String 可选 文件的后缀名
文件名称 fileName 变长的String 可选 文件的名称

代码示例

java

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huifu.saturn.cfca.CFCASignature;
import com.huifu.saturn.cfca.SignResult;
import com.huifu.saturn.cfca.VerifyResult;
import org.apache.commons.codec.binary.Base64;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;

public class Demo123 {
   public static void main(String[] args) {
       String valueObj="{\"version\": \"10\",\"cmd_id\": \"123\",\"mer_cust_id\": \"6666000000002619\",\"file_date\": \"20180101\",\"boa_file_type\": \"01\"}";
               // 地址可以询问对方运营
               String testUrl = "http://mertest.chinapnr.com/npay/fileMerchantRequest";
               // 文件可以询问对方运营
       String cerFile = "D:/app/etc/product/CFCA_ACS_TEST_OCA31.cer";
       // 加签用pfx文件,配置商户的Pfx文件名
       String pfxFile = "D:/app/etc/product/888888-NEW.pfx";
               // 加签用密码,配置商户的pwd
               String pfxFilePwd = "123456";
               // 进行base64转换
               String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes(Charset.forName("utf-8")));
               // 加签,配置商户的CFCA路径
               SignResult signResult = CFCASignature.signature(pfxFile, pfxFilePwd, base64RequestParams,
                               "utf-8");
               if (!"000".equals(signResult.getCode())) {
                       System.out.println("加签错误");
                       return;
               }

               String checkValue = signResult.getSign();
               String cmdId = "123";
               //自助联调系统默认商户号为:6666000000002619,开发时更换成自己的商户号
               String merCustId = "6666000000002619";
               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;

               HttpRequest httpRequest = HttpRequest.post(testUrl).charset(charset);
               HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send();
               String body = httpResponse.bodyText();
               // 响应解密 验签失败
               JSONObject jsonObject = JSON.parseObject(body);
               String sign = jsonObject.getString("check_value");
               VerifyResult verifyResult = CFCASignature.verifyMerSign("100001", sign, charset,cerFile);
               if (!"000".equals(verifyResult.getCode()))
               {
                       System.out.println("验签失败");
                       return;
               }

               String content = new String(verifyResult.getContent(), Charset.forName(charset));
               String decrptyContent = new String(Base64.decodeBase64(content), Charset.forName(charset));

               System.out.println(decrptyContent);

               try{
                   //如果返回的有附件,则下载第一个附件进行下载测试
                   JSONObject jo = JSON.parseObject(decrptyContent);
           JSONObject jo2 = jo.getJSONArray("file_url").getJSONObject(0);
           //获取第一个附件,根据附件url和附件名称下载附件到桌面
           downLoadFromUrl(jo2.getString("fileUrl"), jo2.getString("fileName"),"C:/Users/hao.sun/Desktop/");
       }catch (Exception e) {
           System.out.println(e.getMessage());
       }

   }
        /**
    * 从网络Url中下载文件
    * @param urlStr
    * @param fileName
    * @param savePath
    * @throws IOException
    */
   public static void  downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException {
       URL url = new URL(urlStr);
       HttpURLConnection conn = (HttpURLConnection)url.openConnection();
       //设置超时间为3秒
       conn.setConnectTimeout(3*1000);
       //防止屏蔽程序抓取而返回403错误
       conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
       //得到输入流
       InputStream inputStream = conn.getInputStream();
       //获取自己数组
       byte[] getData = readInputStream(inputStream);
       //文件保存位置
       File saveDir = new File(savePath);
       if(!saveDir.exists()){
           saveDir.mkdir();
       }
       File file = new File(saveDir+File.separator+fileName);
       FileOutputStream fos = new FileOutputStream(file);
       fos.write(getData);
       if(fos!=null){
           fos.close();
       }
       if(inputStream!=null){
           inputStream.close();
       }

       System.out.println("info:"+url+" download success");
   }

   /**
    * 从输入流中获取字节数组
    * @param inputStream
    * @return
    * @throws IOException
    */
   public static  byte[] readInputStream(InputStream inputStream) throws IOException {
       byte[] buffer = new byte[1024];
       int len = 0;
       ByteArrayOutputStream bos = new ByteArrayOutputStream();
       while((len = inputStream.read(buffer)) != -1) {
           bos.write(buffer, 0, len);
       }
       bos.close();
       return bos.toByteArray();
   }
}

返回码

返回码 返回描述
123000 交易成功
123003 交易失败
123099 系统异常
123100 请求参数非法
123101 商户无此接口权限
123102 验证签名失败
123103 商户状态异常
123107 消息类型与签名内容不一致
123108 商户客户号与签名内容不一致
123109 版本号与签名内容不一致
123110 商户号不存在
123321 未查到对账文件或收益文件

317 用户基本信息查询接口

功能说明

提供基本信息查询服务。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为317
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 可选 以下四个,有且只有一个必填
营业执照注册号 business_code 变长30位的String 可选 企业的营业执照注册号
统一社会信用代码 social_credit_code 变长18位的String 可选 企业的统一社会信用代码
身份证号 cert_id 变长18位的String 可选 个人用户,个体户

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为317
应答返回码 resp_code 定长6位String 必须 317000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须  
用户名称 user_name 变长50位String 必须 商户传商户名称, 个人个体用户传个人个体用户名称, 企业传企业名称
用户角色 role_type 定长2位String 必须 (“00”, “个人用户”), (“01”, “企业用户”), (“02” ,”商户”), (“03” ,”个体户”)
手机号 contact_mobile 定长11位String 必须 商户传商户联系人手机号, 个人个体用户传个人个体用户手机号, 企业传企业联系人手机号
营业执照号 business_code 变长30位String 可选 商户传商户营业执照号, 个人个体用户不传, 企业传企业营业执照号
组织机构代码 institution_code 变长30位String 可选 商户传商户组织机构代码, 个人个体用户不传, 企业传企业组织机构代码
统一社会信用代码 social_credit_code 变长30位 String 可选 商户传商户统一社会信用代码, 个人个体用户不传, 企业传企业统一社会信用代码
证件类型 cert_type 定长2位 必须 (“00”“身份证”), (“01”, “护照”), (“02”,”军官证”), (“03”,”士兵证”), (“04”,”回乡证”,) (“05”, “警官证”), (“06”,”台胞证”), (“07”,”其他”);
证件号 cert_id 变长18位 String 必须 商户传商户法人证件号, 个人个体用户传个人个体证件号, 企业传企业法人证件号
税务登记证号 tax_code 变长30位 String 可选 商户传商户税务登记号, 个人个体用户不传, 企业传企业税务登记号
用户子账户 acct_id_list String(Json) 可选 内容详看下方列表
用户状态标志 stat_flag 定长1位String 必须 0关闭;1正常

用户子账户(acct_id_list )内容:

参数中文名称 参数名称 数据格式 是否必须 说明
子账户ID acctId 变长9位String 必须  
子账户名称 acctName 变长64位String 必须  
账户业务类型 acctBusinessType 定长2位String 必须 00:基本支付账户;01:基本非支付账户;02:验证手续费专户
子账户状态标志 statFlag 定长1位String 必须 0关闭;1正常

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "317",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026086",
       "business_code": "",
       "social_credit_code": "",
       "cert_id": ""
       }";

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

返回码

返回码 返回描述
317000 交易成功
317003 交易失败
317099 系统异常
317100 请求参数非法
317101 商户无此接口权限
317102 验证签名失败
317103 商户状态异常
317107 消息类型与签名内容不一致
317108 商户客户号与签名内容不一致
317109 版本号与签名内容不一致
317110 商户号不存在
317111 用户客户号不存在
317801 解密失败
317802 查询无结果集
317803 加密失败

318 用户绑卡信息查询接口

功能说明

提供给商户查询用户绑卡信息服务。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为318
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位的String 必须 由汇付生成,用户的唯一性标识
绑卡Id bind_card_id 变长20位String 可选 兼容快捷/取现绑卡ID,对两个ID都会做查询

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为318
应答返回码 resp_code 定长6位String 必须 318000–调用成功,其他见返回码附件表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位的String 必须 由汇付生成,用户的唯一性标识
卡列表 card_list String(Json) 必须 绑定的银行卡列表

卡列表(card_list)

参数中文名称 参数名称 数据格式 是否必须 说明
绑卡 ID bindCardId 变长20位String 可选 汇付快捷绑卡的 ID
卡类型 cardType 定长1位ring 可选 (C:对私 B:对公)
手机号 cardMobile 定长11位String 可选 代扣可无手机号
用户卡号 cardNo 定长32位String 可选  
快捷卡标志 qpFlag 定长2位String 可选 00否;01是;
取现卡标志 cashFlag 定长2位String 可选 00否;01是;
代扣卡标志 awFlag 定长2位String 可选 00否;01是;
借贷标识 dcFlag 定长1位String 可选 0–借记,储蓄卡 1–贷记,信用卡
绑卡 ID cashBindCardId 变长20位String 可选 汇付取现绑卡的ID

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "318",
       "mer_cust_id": "6666000000026086",
       "user_cust_id": "6666000000026086",
       "bind_card_id ": ""
       }";

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

返回码

返回码 返回描述
318000 交易成功
318003 交易失败
318099 系统异常
318100 请求参数非法
318101 商户无此接口权限
318102 验证签名失败
318103 商户状态异常
318104 用户状态异常
318107 消息类型与签名内容不一致
318108 商户客户号与签名内容不一致
318109 版本号与签名内容不一致
318110 商户号不存在
318324 绑卡信息不存在,请重新绑卡

线下充值入账通知

功能说明

系统自动检测到商户线下充值,通知商户入账结果,需要在内部控台配置通知的url

调用方式:后台调用

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
商户客户号 mer_cust_id 变长16位String 必须  
子账户号 acct_id 变长9位String 必须  
转账金额 trans_amt 变长14String 必须  
用户转账日期 trf_date 变长位String 必须  
转账流水号 trf_seq 变长128位的String 必须  
交易摘要 trf_note 变长256位的String 可选  
入账日期 acct_date 定长8位String 必须  
入账流水号 sys_seq_id 变长10位Strig 必须  
交易状态 trans_stat 固定1位 必须 成功S,失败F
错误描述 error_desc 变长256位String 可选  

321 批量生成电子回执单

功能说明

供商户批量生成支付和转账电子回执单

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为321
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
交易日期 trans_date 定长8位String 必须 格式为YYYYMMDD,例如:20160307;交易日期和订单日期传一致,如果查询不到数据,可能交易日期和订单日期出现跨天的情况,需调整交易日期再请求
原订单号 order_id 变长String 可选 商户代发交易时的订单号,订单日期+订单号,最多1000笔订单号; [“201601”,”2016010”,”201603070000024301”,”201603070000024302”,……….]
查询类型 query_type 定长1位 必须 支付:1 ,转账:0
商户后台应答地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户回执单生成结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址

同步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为321
应答返回码 resp_code 定长6位String 必须 321002—请求已受理
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
无效订单 error_order_id 变长String 可选 仅传订单号查询时返回,订单号无效或不存在,无法生成回执单 [“201601”,”2016010”]
商户后台应答地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址

异步返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 321
应答返回码 resp_code 定长6位String 必须 321000–调用成功
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
商户后台应答地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
回执单下载地址 receipt_url 变长256位String 可选 生成的电子签章回执单的下载地址
无效订单 error_order_id 变长String 可选 仅传订单号查询时返回,订单号无效或不存在,无法生成回执单 [“201603070000024301”,……….]
回执单文件为PDF文档,每页三个回执单,每个文件最大2000个电子凭证

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "321",
       "mer_cust_id": "6666000000026086",
       "order_date": "20160109",
       "order_id": ["201601","2016010"],
       "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 = "321";
 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": "321",
        "resp_code": "321002",
        "resp_desc": "请求已受理",
        "mer_cust_id" : "6666000000026086",
        "error_order_id": ["201601","2016010"],
        "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json"
      }
失败响应:
200
    {
      "cmd_id": "321",
      "resp_code": "321307",
      "resp_desc": "无有效订单号",
      "mer_cust_id" : "6666000000026086",
      "error_order_id": ["201601","2016010"],
      "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json"
    }

返回码

返回码 返回描述
321000 交易成功
321002 请求已受理
321096 系统繁忙
321099 系统异常
321100 请求参数非法
321110 商户号不存在
321214 查询出现异常
321300 该商户未开通回执单权限
321301 超过查询最大订单数
321302 已有请求处理中
321303 无该查询类型
321304 生成记录失败
321305 未查询到交易数据
321306 生成回执单PDF文件失败
321307 无有效订单号

331 服务费查询接口

功能说明

供商户根据交易金额查询服务费

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 目前固定为10
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为331
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 变长16位String 必须 由汇付生成,用户的唯一性标识
交易金额 trans_amt 变长14位String 必须 交易金额

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为331
应答返回码 resp_code 定长6位String 必须 331000–调用成功,其他见返回码表
应答返回描述 resp_desc 变长String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长16位String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
交易金额 trans_amt 变长14位String 必须  
服务费 gua_service_amt 变长14位String 可选  

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "331",
       "mer_cust_id": "6666000000002619",
       "card_no": "4367288208658152"
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "331";
 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": "331",
        "resp_code": "331000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "gua_service_amt": "0.97",
        "trans_amt": "11.00",
        .......
      }
失败响应:
200
    {
      "cmd_id": "331",
      "resp_code": "331003",
      "resp_desc": "交易失败",
      "mer_cust_id" : "6666000000026086",
      "trans_amt": "11.00",
      .......
    }

返回码

返回码 返回描述
331000 交易成功
331003 交易失败
331098 系统超时
331099 系统异常
331100 请求参数非法
331101 商户无此接口权限
331102 验证签名失败
331103 商户状态异常
331107 消息类型与签名内容不一致
331108 商户客户号与签名内容不一致
331109 版本号与签名内容不一致
331110 商户号不存在
331214 查询出现异常