查询类

订单查询 Q01

功能说明

查询用户的交易状态。可用于长时间未收到企账通异步消息通知的情形下,调用该接口确认交易状态。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q01
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 用户的唯一标识
订单号 order_id 变长20位String 必须  
订单日期 order_date 定长8位String 必须  
交易查询类型 trans_type 定长2位String 必须 01:快捷、网银、扫码; 02:余额支付、采购确认、订单撤销; 03:提现; 04:退货; 05:延时分账。
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q01
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 必须 用户的唯一标识
应答返回码 return_code 定长5位String 必须  
应答返回描述 return _desc 变长String 必须  
错误码 error_code 定长6位String 可选  
错误描述 error_desc 变长String 可选  
订单号 order_id 变长20位String 必须  
订单日期 order_date 定长8位String 必须  
交易查询类型 trans_type 定长2位String 必须  
交易状态 trans_stat 定长1位的String 必须 I-初始; P-处理中; S-成功; F-失败。
交易金额 trans_amt 变长14位的String 可选 泛指交易金额,金额格式必须是###.00,比如2.00,2.01
商户私有域 mer_priv 变长120位的String 可选  

代码示例

JAVA

请求示例

// 测试环境请求地址
String requestUrl = "https://eacloud.testpnr.com/api/publicRequests";
Map<String, String> map = new HashMap<>();
map.put("version", "10");
map.put("cmd_id", "Q01");
map.put("mer_cust_id", "6666000000118348");
map.put("user_cust_id", "6666000000122180");
map.put("order_id", "201810203914566320");
map.put("order_date", "20181020");
map.put("trans_type", "03");
// 将请求参数转换为json字符串
String jsonStr = JSON.toJSONString(map);
// 将json字符串使用CFCA加签
String chkValue = cfcaSEncrypt(jsonStr);
// 组装接口调用参数
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("mer_cust_id", "6666000000118348"));
nameValuePairs.add(new BasicNameValuePair("cmd_id", " Q01"));
nameValuePairs.add(new BasicNameValuePair("version", "10"));
nameValuePairs.add(new BasicNameValuePair("check_value", chkValue));
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8);
// 创建httpPost
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setEntity(uefEntity);
InputStreamReader isr;
BufferedReader br;
String line;
try {
    // 使用HttpClient发送请求
    CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
    isr = new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8);
    StringBuffer resultString = new StringBuffer();
    br = new BufferedReader(isr);
    while ((line = br.readLine()) != null) {
        resultString.append(line);
    }
    // 返回结果解签
    String resultJson = cfcaSDncrypt(resultString.toString());
} catch (Exception e) {
    // 处理异常
}

成功响应示例

200
{
    "cmd_id": "Q01",
    "mer_cust_id": "6666000000118348",
    "mer_priv": "",
    "order_date": "20181020",
    "order_id": "201810203914566320",
    "return_code": "90000",
    "return_desc": "交易成功",
    "trans_amt": "2.00",
    "trans_stat": "S",
    "trans_type": "03",
    "user_cust_id": "6666000000122180"
}

失败响应示例

200
{
    "cmd_id": "Q01",
    "mer_cust_id": "6666000000118348",
    "mer_priv": "",
    "order_date": "20181020",
    "order_id": "201810203914566321",
    "return_code": "10099",
    "return_desc": "交易处理失败",
    "error_code": "100121",
    "error_desc": "原交易不存在",
    "trans_amt": "",
    "trans_stat": "",
    "trans_type": "03",
    "user_cust_id": ""
}

余额查询 Q02

功能说明

查询商户或用户当前虚账户中的余额;包括可用余额、担保冻结余额,以及账户状态、支付账户等级、支付账户的已用限额;

调用方式:系统调用

请求参数

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

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q02
应答返回码 return_code 定长5位String 必须  
应答返回描述 return _desc 变长String 必须  
错误码 error_code 定长6位String 可选  
错误描述 error_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位String 必须 查询商户本身时,同商户客户号
账户号 acct_id 变长9位String 可选  
账户余额 acct_balance 变长String 必须 账户余额=可用余额+冻结余额
账户可用余额 usable_balance 变长String 必须  
账户冻结余额 freeze_balance 变长String 必须  
账户状态 acct_stat 定长1位 必须 N:正常; C:关闭; F:冻结; D:销户。
账户等级 acct_level 定长2位String 可选 01:一类帐户; 02:二类帐户; 03:三类帐户。
账户已用限额 acct_used_limit 变长String 可选  

代码示例

JAVA

请求示例

// 测试环境请求地址
String requestUrl = "https://eacloud.testpnr.com/api/publicRequests";
Map<String, String> map = new HashMap<>();
map.put("version", "10");
map.put("cmd_id", "Q02");
map.put("mer_cust_id", "6666000000118348");
map.put("user_cust_id", "6666000000122180");
map.put("acct_id", "");
// 将请求参数转换为json字符串
String jsonStr = JSON.toJSONString(map);
// 将json字符串使用CFCA加签
String chkValue = cfcaSEncrypt(jsonStr);
// 组装接口调用参数
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("mer_cust_id", "6666000000118348"));
nameValuePairs.add(new BasicNameValuePair("cmd_id", " Q02"));
nameValuePairs.add(new BasicNameValuePair("version", "10"));
nameValuePairs.add(new BasicNameValuePair("check_value", chkValue));
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8);
// 创建httpPost
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setEntity(uefEntity);
InputStreamReader isr;
BufferedReader br;
String line;
try {
    // 使用HttpClient发送请求
    CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
    isr = new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8);
    StringBuffer resultString = new StringBuffer();
    br = new BufferedReader(isr);
    while ((line = br.readLine()) != null) {
        resultString.append(line);
    }
    // 返回结果解签
    String resultJson = cfcaSDncrypt(resultString.toString());
} catch (Exception e) {
    // 处理异常
}

成功响应示例

200
{
    "acct_balance": "115.06",
    "acct_id": "",
    "acct_level": "01",
    "acct_stat": "N",
    "acct_used_limit": "0.00",
    "cmd_id": "Q02",
    "freeze_balance": "2.05",
    "mer_cust_id": "6666000000118348",
    "return_code": "90000",
    "return_desc": "交易成功",
    "usable_balance": "113.01",
    "user_cust_id": "6666000000122180"
}

失败响应示例

200
{
    "acct_balance": "",
    "acct_id": "",
    "acct_level": "",
    "acct_stat": "",
    "acct_used_limit": "",
    "cmd_id": "Q02",
    "freeze_balance": "",
    "mer_cust_id": "6666000000118348",
    "return_code": "10099",
    "return_desc": "交易处理失败",
    "error_code": "100100",
    "error_desc": "acct_id请求参数非法",
    "usable_balance": "",
    "user_cust_id": "6666000000118348"
}

商户对账文件下载申请 Q05

功能说明

主要用于商户下载对账文件,接口返回对账文件下载的url。只能下载前一天或者之前的对账文件。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q05
商户客户号 mer_cust_id 定长16位String 必须  
对账日期 order_date 定长8位String 必须 对账文件日期
交易类型 trans_type 定长2位String 必须 01:交易对账文件

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q05
应答返回码 return_code 定长5位String 必须  
应答返回描述 return _desc 变长String 必须  
错误码 error_code 定长6位String 可选  
错误描述 error_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须  
日期 date 定长8位String 必须 对账文件日期
交易类型 trans_type 定长2位String 必须 01:交易对账文件
文件名 file_name 变长64位String 必须 对账文件名
文件url file_url 变长512位String 必须 对账文件下载url

代码示例

JAVA

请求示例

// 测试环境请求地址
String requestUrl = "https://eacloud.testpnr.com/api/publicRequests";
Map<String, String> map = new HashMap<>();
map.put("version", "10");
map.put("cmd_id", "Q05");
map.put("mer_cust_id", "6666000000118348");
map.put("order_date", "20181018");
map.put("trans_type", "01");
// 将请求参数转换为json字符串
String jsonStr = JSON.toJSONString(map);
// 将json字符串使用CFCA加签
String chkValue = cfcaSEncrypt(jsonStr);
// 组装接口调用参数
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("mer_cust_id", "6666000000118348"));
nameValuePairs.add(new BasicNameValuePair("cmd_id", "Q05"));
nameValuePairs.add(new BasicNameValuePair("version", "10"));
nameValuePairs.add(new BasicNameValuePair("check_value", chkValue));
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8);
// 创建httpPost
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setEntity(uefEntity);
InputStreamReader isr;
BufferedReader br;
String line;
try {
    // 使用HttpClient发送请求
    CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
    isr = new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8);
    StringBuffer resultString = new StringBuffer();
    br = new BufferedReader(isr);
    while ((line = br.readLine()) != null) {
        resultString.append(line);
    }
    // 返回结果解签
    String resultJson = cfcaSDncrypt(resultString.toString());
} catch (Exception e) {
    // 处理异常
}

成功响应示例

200
{
    "return_code": "90000",
    "return_desc": "交易成功",
    "order_date":"20181018",
    "cmd_id":"T01",
    "mer_cust_id":"6666000000118348",
    "file_url":"……",
    "file_name":"test.txt",
    "trans_type":"01"
}

失败响应示例

200
{
    "return_code": "10099",
    "return_desc": "交易处理失败",
    "error_code": "100100",
    "error_desc": "请求参数非法",
    "order_date":"20181018",
    "cmd_id":"T01",
    "mer_cust_id":"6666000000118348",
    "file_url":"",
    "file_name":"",
    "trans_type":"01"
}

商户文件上传 Q06

功能说明

用于个体工商户开户前上传文件,仅支持rar、zip、png、jpg、jpeg、gif、bmp、pdf、doc、docx格式的文件。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本 version 固定2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q06
商户客户号 mer_cust_id 定长16位string 必须 由汇付生成,商户的唯一性标识
附件编号 attach_no 定长20位 string 必须 商户必须保证唯一
业务类型 trans_type 变长2位 string 必须 05-个体工商户
附件类型 attach_type 变长2位 string 必须 00-营业执照注册号; 01-组织结构代码证; 02-税务登记证号; 03-法人证件; 04-开户银行许可证; 05-统一社会信用代码; 08-开户电子协议; 09-法人证件反面; 10-经营照片; 11-经营照片(地址照片); 12-经营照片(门面照片); 13-结算卡正面; 14-结算卡反面; 99-其他。
文件描述 attach_desc 定长80位 string 可选  
文件 attach_file File 必须 文件名称为 UTF-8 字符集 ,URLEncode 编码后的字符串。
上传类型 file_upload_type 定长2位string 可选 01:新增(文件名称不能重复)

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q06
应答返回码 return_code 定长5位String 必须  
应答返回描述 return _desc 变长String 必须  
错误码 error_code 定长6位String 可选  
错误描述 error_desc 变长String 可选  

代码示例

JAVA

请求示例

// 测试环境请求地址
String requestUrl = "https://eacloud.testpnr.com/api/publicRequests";
Map<String, String> map = new HashMap<>();
map.put("cmd_id", "Q06");
map.put("version", "10");
map.put("mer_cust_id", "6666000000118348");
map.put("attach_no", "100000000001");
map.put("trans_type", "05");
map.put("attach_type", "09");
map.put("attach_desc", "说明");
map.put("file_upload_type", "01");
// 将请求参数转换为json字符串
String jsonStr = JSON.toJSONString(map);
// 将json字符串使用CFCA加签
String chkValue = cfcaSEncrypt(jsonStr);
// 组装接口调用参数
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("mer_cust_id", "6666000000118348"));
nameValuePairs.add(new BasicNameValuePair("cmd_id", "U05"));
nameValuePairs.add(new BasicNameValuePair("version", "10"));
nameValuePairs.add(new BasicNameValuePair("check_value", chkValue));
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8);
// 创建httpPost
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setEntity(uefEntity);
InputStreamReader isr;
BufferedReader br;
String line;
try {
    // 使用HttpClient发送请求
    CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
    isr = new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8);
    StringBuffer resultString = new StringBuffer();
    br = new BufferedReader(isr);
    while ((line = br.readLine()) != null) {
        resultString.append(line);
    }
    // 返回结果解签
    String resultJson = cfcaSDncrypt(resultString.toString());
} catch (Exception e) {
    // 处理异常
}

成功响应示例

200
{
    "cmd_id": "Q06",
    "mer_cust_id": "6666000000118348",
    "return_code": "90000",
    "return_desc": "交易成功",
    "error_code": "",
    "error_desc": ""
}

失败响应示例

200
{
    "cmd_id": "Q06",
    "mer_cust_id": "6666000000118348",
    "return_code": "10099",
    "return_desc": "交易处理失败",
    "error_code": "100100",
    "error_desc": "请求参数非法"
}

用户入驻查询 Q15

功能说明

商户查询用户签约状态及入驻信息,可以通过调用企账通接口

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本 version 固定2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q15
商户客户号 mer_cust_id 定长16位string 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长16位String 必须 由汇付生成,用户的唯一性标识
支付通道 pay_way 定长1位 string 必须 1:支付宝;2:微信

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为 Q15
错误码 error_code 定长6位String 可选  
错误描述 error_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16 位String 必须 由汇付生成,用户的唯一性标识
状态码 resp_code 变长8位String 必须 Q15000–交易成功,其他见状态码表
状态描述 resp_desc 变长128位String 必须  
返回码 return_code 定长5位String 必须  
返回描述 return_desc 变长String 必须  
用户签约状态 user_stat 定长1位String 必须 1可用;2关闭
入驻信息集合 user_settled_info_list List 必须  

入驻信息集合user_settled_info_list说明:

参数中文名称 参数名称 数据格式 是否必须 说明
支付通道 payWay 定长1位String 可选 1支付宝,2微信
二级商户号 subMerId 变长20位String 可选 入驻的二级商户号
用户名称 subMerName 变长60位String 可选  
用户简称 shortName 变长10位String 可选  

代码示例

JAVA

请求示例

// 测试环境请求地址
String requestUrl = "https://eacloud.testpnr.com/api/publicRequests";
Map<String, String> map = new HashMap<>();
map.put("cmd_id", "Q15");
map.put("version", "10");
map.put("mer_cust_id", "6666000000118348");
map.put("user_cust_id", "6666000000195772");
map.put("pay_way", "1");
// 将请求参数转换为json字符串
String jsonStr = JSON.toJSONString(map);
// 将json字符串使用CFCA加签
String chkValue = cfcaSEncrypt(jsonStr);
// 组装接口调用参数
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("mer_cust_id", "6666000000118348"));
nameValuePairs.add(new BasicNameValuePair("cmd_id", "Q15"));
nameValuePairs.add(new BasicNameValuePair("version", "10"));
nameValuePairs.add(new BasicNameValuePair("check_value", chkValue));
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8);
// 创建httpPost
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setEntity(uefEntity);
InputStreamReader isr;
BufferedReader br;
String line;
try {
    // 使用HttpClient发送请求
    CloseableHttpResponse response = HttpClients.createDefault().execute(httpPost);
    isr = new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8);
    StringBuffer resultString = new StringBuffer();
    br = new BufferedReader(isr);
    while ((line = br.readLine()) != null) {
        resultString.append(line);
    }
    // 返回结果解签
    String resultJson = cfcaSDncrypt(resultString.toString());
} catch (Exception e) {
    // 处理异常
}

成功响应示例

200
{
    "cmd_id": "Q15",
    "mer_cust_id": "6666000000118348",
    "return_code": "90000",
    "return_desc": "交易成功",
    "error_code": "",
    "error_desc": "",
    "resp_code": "Q15000",
    "resp_desc": "交易成功",
    "user_cust_id": "6666000000195772",
    "user_settled_info_list": [{"bankMerCode":"2088100653058015","payWay":"1","shortName":"jeff111","subMerId":"AD0004005","subMerName":"企业开户105"}],
    "user_stat": "1"
}

失败响应示例

200
{
    "cmd_id": "Q15",
    "mer_cust_id": "6666000000118348",
    "user_cust_id": "6666000000195710",
    "return_code": "10099",
    "return_desc": "交易处理失败",
    "error_code": "100108",
    "error_desc": "用户在商户下不存在",
    "resp_code": "Q15108",
    "resp_desc": "用户在商户下不存在"
}

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 查询出现异常

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 交易失败

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 绑卡信息不存在,请重新绑卡

电子凭证下载 Q16

功能说明

提供给商户下载电子凭证。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 Q16
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
订单日期 order_date 定长8位String 必须 保证订单号和订单日期唯一,格式为YYYYMMDD
订单号 order_id 变长20位String 必须 保证订单号和订单日期唯一
交易订单日期 trans_order_date 定长8位String 必须 格式为YYYYMMDD
交易订单号 trans_order_id 变长20位String 可选 交易订单号为空时,交易订单日期必为当日之前某日。
交易阶段 guarantee_stage 定长1位String 可选 交易订单号为担保订单或延时订单时必填,A:担保入账;B:担保出账;C:担保完成
异步通知地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户结果,注意: 1) 使用时不要包含中文; 2) 必须是外网地址。
扩展域 extension 变长512位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
商户私有域 mer_priv 变长120位String 可选 用于扩展请求参数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 定长3位String 必须 Q16
文件下载url file_url 变长512位String 可选 文件下载URL
返回码 resp_code 定长6位String 必须 Q16000–交易成功 Q16002-请求已受理
返回描述 resp_desc 变长String 必须  
返回码 return_code 定长5位String 必须 参见 返回码
返回描述 return_desc 变长String 必须  
错误码 error_code 定长6位String 可选 参见 错误码
错误描述 error_desc 变长String 可选  
商户客户号 mer_cust_id 定长16位String 必须 商户的唯一标识
订单日期 order_date 定长8位String 必须 保证订单号和订单日期唯一,格式为YYYYMMDD
订单号 order_id 变长20位String 必须 保证订单号和订单日期唯一
交易订单日期 trans_order_date 定长8位String 必须 格式为YYYYMMDD
交易订单号 trans_order_id 变长20位String 可选 交易订单号为空时,交易订单日期必为当日之前某日。
交易阶段 guarantee_stage 定长1位String 可选 交易订单号为担保订单或延时订单时必填,A:担保入账;B:担保出账;C:担保完成
异步通知地址 bg_ret_url 变长128位String 必须 通过后台异步通知商户结果,注意: 1) 使用时不要包含中文; 2) 必须是外网地址。
扩展域 extension 变长512位String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
商户私有域 mer_priv 变长120位String 可选 用于扩展请求参数

代码示例

java

String valueObj = "{
       "version":"10",
       "cmd_id":"Q16",
       "mer_cust_id":"6666000000026086",
       "order_date":"20190631",
       "order_id":"201906315322400373",
       "trans_order_date":"20190604",
       "trans_order_id":"201906047576483",
       "guarantee_stage":"A",
       "bg_ret_url":"http://192.168.0.200:8015/hftest/common/commonResult.jsp",
       "mer_priv":"",
       "extension":""
 }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "Q16";
 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
      {
              "bg_ret_url":"http://192.168.0.200:8015/hftest/common/commonResult.jsp",
              "cmd_id":"Q16",
              "error_code":"",
              "error_desc":"",
              "extension":"",
              "file_url":"",
              "guarantee_stage":"A",
              "mer_cust_id":"6666000000026086",
              "mer_priv":"",
              "order_date":"20190631",
              "order_id":"201906315322400373",
              "resp_code":"Q16002",
              "resp_desc":"请求已受理",
              "return_code":"10002",
              "return_desc":"交易处理中",
              "trans_order_date":"20190604",
              "trans_order_id":"201906047576483"
      }
失败响应:
200
    {
            "bg_ret_url":"http://192.168.0.200:8015/hftest/common/commonResult.jsp",
            "cmd_id":"Q16",
            "error_code":"100001",
            "error_desc":"请求订单号重复",
            "extension":"",
            "file_url":"",
            "guarantee_stage":"A",
            "mer_cust_id":"6666000000026086",
            "mer_priv":"",
            "order_date":"20190631",
            "order_id":"201906315322400373",
            "resp_code":"Q16001",
            "resp_desc":"请求订单号重复",
            "return_code":"10099",
            "return_desc":"交易处理失败",
            "trans_order_date":"20190604",
            "trans_order_id":"201906047576484"
    }