用户管理类

个人用户开户

接口功能说明

用于在本平台系统下为个人用户开设专属账户

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:同步+异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 101
商户唯一标识号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD ,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
用户姓名 user_name 变长 50 位 String 必须 用户的真实姓名,中文应使用 UTF-8 字符集 URLEncode 编码后传入
身份证号 cert_id 定长 18 位 String 必须 用户的身份证号
手机号 user_mobile 定长 11 位 String 必须 用户的手机号
邮箱 user_email 变长 40 位 String 可选 用户的电子邮箱
短信验证码 sms_code 定长 6 位 String 可选 与 user_mobile 对应的短信验证码,测试环境调试时可以使用 666666 通过验证
短信验证码日期 sms_order_date 定长 8 位 String 可选 与sms_code 对应的验证码发送订单日期
短信验证码订单号 sms_order_id 变长 20 位 String 可选 与sms_code 对应的验证码发送订单号
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 后台异步通知接收地址
商户私有域 mer_priv 变长 128 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”: “111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 定长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+cert_id+user_mobile+user_email+sms_code+sms_order_date+sms_order_id+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 101
应答返回码 resp_code 定长 6 位 String 必须 101000 调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户唯一标识号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
用户唯一标识号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
子账户号 acct_id 变长 16 位 String 必须 由汇付生成,用户的默认子账户号
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 必须 组成规则:8 位本平台日期 + 10 位系统流水号
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为 ###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 后台异步通知接收地址
商户私有域 mer_priv 变长 128 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传格式:{“sub_mer_cust_id”: “111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 定长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+order_date+order_id+user_cust_id+acct_id+platform_seq_id+fee_amt+fee_acct_id+bg_ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "101"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "101",
  "resp_code": "101000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "101",
  "resp_code": "101003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
101000 交易成功
101003 交易失败
101099 系统异常
101100 请求参数非法
101101 商户无此接口权限
101102 验证签名失败
101103 商户状态异常
101106 商户签名未配置
101202 交易订单号重复
101203 账户可用余额不足
101204 商户配置异常
101205 短信验证码验证失败
101206 短信验证码发送手机号与验证手机号不一致
101207 短信验证码或短信唯一标识为空
101208 短信验证码已失效请重新获取
101209 验证码发送接口与接口不一致
101301 该用户已开户,身份证号已存在
101302 该用户已开户,手机号已存在
101303 该用户正在开户中,请勿重复申请
101304 个人用户开户失败
101400 身份证和姓名校验不符
101401 身份证末位校验失败
101800 风控信息验证失败
101801 商户接口调用风控受限
101802 用户接口调用风控受限
101803 二级商户接口调用风控受限

企业用户开户

接口功能说明

用于在本平台系统下为企业用户开设专属账户

调用方式:页面调用

应答方式:同步页面应答(中间态/异常)、异步应答(终态)

接口类型:异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 102
商户唯一标识号 mer_cust_id 变长 16 位 String 必须 由汇付生成,商户的唯一标识号
企业开户申请号 apply_id 变长 20 的 String 必须 由商户提供,申请企业开户的唯一标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD ,例如:20160307
订单号 order_id 定长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
操作类型 operate_type 定长 8 位 String 必须 00090000:新增; 00090001:修改
企业证照类型 corp_license_type 定长 8 位 String 必须 01030100:普通营业执照企业; 01030101:三证合一企业
企业类型 corp_type 定长 8 位 String 必须 01030000:普通企业
企业名称 corp_name 变长 50 位 String 必须 企业的公司全称,中文应使用 UTF-8 字符集 URLEncode 编码后传入
营业执照注册号 business_code 变长 30 位 String 可选 企业的营业执照注册号
组织机构代码 institution_code 定长 9 位 String 可选 企业的组织机构代码证
税务登记证号 tax_code 变长 30 位 String 可选 企业的税务登记号
统一社会信用代码 social_credit_code 定长 18 位 String 可选 企业的统一社会信用代码
证照起始日期 license_start_date 定长 8 位 String 必须 企业的营业证照起始日期,精确到年月日
证照结束日期 license_end_date 定长 8 位 String 必须 企业的营业证照结束日期,精确到年月日,99991231 表示永久
企业经营地址 corp_business_address 变长 250 位 String 必须 企业的经营地址,中文应使用 UTF-8 字符集 URLEncode 编码后传入
企业注册地址 corp_reg_address 变长 250 位 String 必须 企业的注册地址,中文应使用 UTF-8 字符集 URLEncode 编码后传入
企业固定电话 corp_fixed_telephone 变长 15 位 String 必须 企业的固定电话
经营范围 business_scope 变长 600 位 String 必须 企业的经营范围,中文应使用 UTF-8 字符集 URLEncode 编码后传入
控股股东(实际控制人) controlling_shareholder 变长 600 位 String 必须 企业的控股股东,中文应使用 UTF-8 字符集 URLEncode 编码后传入
法定代表人姓名 legal_name 变长 50 位 String 必须 企业的法人姓名,中文应使用 UTF-8 字符集 URLEncode 编码后传入
法人证件类型 legal_cert_type 定长 8 位 String 必须 01020100:身份证; 01020101:护照; 01020102:军官证; 01020104:回乡证; 01020106:台胞证; 01020107:其他
法人证件号码 legal_cert_id 变长 20 位 String 必须 法人的证件号码,与证件类型对应
法人证件起始日期 legal_cert_start_date 定长 8 位 String 必须 法定代表人的证件起始日期,精确到年月日
法人证件结束日期 legal_cert_end_date 定长 8 位 String 必须 法定代表人的证件结束日期,精确到年月日,99991231 表示永久
法定代表人手机号码 legal_mobile 定长 11 位 String 必须 法定代表人的手机号码
企业联系人姓名 contact_name 变长 50 位 String 必须 企业联系人的姓名,中文应使用 UTF-8 字符集 URLEncode 编码后传入
联系人手机号 contact_mobile 定长 11 为 String 必须 联系人的手机号码
联系人邮箱 contact_email 变长 40 位 String 必须 联系人的邮箱地址
开户银行账户名 bank_acct_name 变长 40 位 String 必须 企业开户银行账户名,需与企业名称保持一致,中文应使用 UTF-8 字符集 URLEncode 编码后传入
开户银行 bank_id 变长 8 位 String 必须 具体见附件:充值/取现支持 银行列表及代号
开户银行账号 bank_acct_no 变长 32 位 String 必须 企业开户银行账号
开户银行支行名称 bank_branch 变长 100 位 String 必须 企业开户银行的支行名称,中文应使用 UTF-8 字符集 URLEncode 编码后传入
开户银行省份 bank_prov 变长 4 位 String 必须 银行卡开户省份,具体见 城市行政区划代码
开户银行地区 bank_area 定长 4 位 String 必须 银行卡开户地区,具体见 城市行政区划代码
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
页面返回 URL ret_url 变长 128 位 String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2)URL 中请不要包含特殊字符 3 )必须是外网地址
商户私有域 mer_priv 变长 120 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+apply_id+order_date+order_id+operate_type+corp_license_type+corp_type+business_code+institution_code+tax_code+social_credit_code+license_start_date+license_end_date+corp_fixed_telephone+legal_cert_type+legal_cert_id+legal_mobile+legal_cert_start_date+legal_cert_end_date+contact_mobile+contact_email+bank_id+bank_acct_no+bank_prov+bank_area+bg_ret_url+ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 102
应答返回码 resp_code 定长 6 位 String 必须 102000– 调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
企业开户申请号 apply_id 变长 20 位 String 必须 由商户提供,申请企业开户的唯一标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 定长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
商户唯一标识号 mer_cust_id 变长 16 位 String 必须 由汇付生成,商户的唯一标识号
用户唯一标识号 user_cust_id 变长 16 位 String 可选 由汇付生成,用户的唯一标识号
子账户号 acct_id 变长 9 位 String 可选 由汇付生成,用户的默认子账户号
企业名称 corp_name 变长 50 位 String 必须 企业的全称,中文应使用 UTF-8 字符集 URLEncode 编码后传入
审核状态 audit_status 定长 8 位 String 必须 02000101:待审核; 02000102:审核中; 02000103:待资料修改; 02000104:审核通过; 02000105:审核不通过
审核状态描述 audit_desc 变长 120 位 String 可选 针对审核状态的详细说明
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 返参中的 URL 为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
页面返回 URL ret_url 变长 128 位 String 可选 返参中的 URL 为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户私有域 mer_priv 变长 120 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
返参扩展域 extension 变长 512 位 String 可选 用于扩展请求参数
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+apply_id+order_date+order_id+mer_cust_id+user_cust_id+acct_id+audit_status+bg_ret_url+ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "102"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "102",
  "resp_code": "102000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "102",
  "resp_code": "101003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
102000 交易成功
102099 系统异常
102100 请求参数非法
102101 商户无此接口权限
102102 验证签名失败
102103 商户状态异常
102202 交易订单号重复
102300 该企业证照类型与证照号不匹配
102301 该企业已开户
102302 未查询到原开户申请号,不能修改
102303 该企业开户申请号重复
102304 该企业开户申请正在审核中,不能修改
102305 该企业开户申请已被拒绝,不能修改
102306 该企业开户申请已经通过,不能修改
102307 该企业已有正在处理的开户申请或已开户成功
102308 上传失败,文件大小超过5M
102309 上传失败,不支持该文件格式
102310 上传失败,文件数量超过限制
102311 文件上传失败,请稍后重试
102312 操作超时,请重试
102313 文件信息不匹配
102314 企业名称与开户银行账户名不相同
102315 开户申请提交失败,数据异常
102316 未查询到子帐户信息
102317 文件数据异常
102318 省份地区信息非法
102800 风控信息验证失败
102801 商户接口调用风控受限
102802 用户接口调用风控受限
102803 二级商户接口调用风控受限

前台快捷绑卡

接口功能说明

前台快捷绑卡

调用方式:页面调用

应答方式:同步页面应答、异步应答

接口类型:异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 116
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
客户用户名 user_name 变长 50 位 String 必须 用户的真实姓名
身份证号 cert_id 定长 18 位 String 必须 用户身份证号,目前仅支持身份证
银行预留手机号 card_mobile 变长 11 位 String 必须 本次快捷绑卡待绑定的银行卡,在银行开户时的预留手机号,变长 11 位数字
开户银行代号 bank_id 变长 8 位 String 必须 具体见附件:代扣充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D–借记,储蓄卡; C–贷记,信用卡
银行卡开户省份 card_prov 定长 4 位 String 可选 银行卡开户省份
银行卡开户地区 card_area 定长 4 位 String 可选 银行卡开户地区
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
页面返回 URL ret_url 变长 128 位 String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2)URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式: {“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
页面类型 page_type 定长 2 位 String 可选 桌面端样式页面:00 ; 移动端样式页面:10 ,默认桌面端样式
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+cert_id+card_mobile+bank_id+card_no+dc_flag+card_prov+card_area+bg_ret_url+ret_url+mer_priv+extension+page_type

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 116
应答返回码 resp_code 定长 6 位 String 必须 116000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
已开户标识 reg_flag 定长 8 位 String 必须 00000000 : 新开户; 00000001 : 已开户
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,用户的唯一性标识,成功时必返
用户账户号 acct_id 变长 8 位 String 可选 用户账户号新开户且成功时必返
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 必须 组成规则:8 位本平台日期 +10 位系统流水号
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+reg_flag+user_cust_id+acct_id+order_date+order_id+platform_seq_id+fee_amt+fee_acct_id+mer_priv

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "116"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "116",
  "resp_code": "116000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "116",
  "resp_code": "116003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
116000 交易成功
116002 请求已受理
116003 交易失败
116099 系统异常
116100 请求参数非法
116101 商户无此接口权限
116102 验证签名失败
116103 商户状态异常
116104 用户状态异常
116106 商户签名未配置
116202 交易订单号重复
116203 账户可用余额不足
116204 商户配置异常
116205 短信验证码验证失败
116206 短信验证码发送手机号与验证手机号不一致
116207 短信验证码或短信唯一标识为空
116208 短信验证码已失效请重新获取
116209 验证码发送接口与接口不一致
116210 短信验证码发送过于频繁
116211 短信验证码发送失败
116216 页面已失效
116300 该业务仅支持个人用户
116301 不支持绑定该银行的银行卡
116302 用户已绑定快捷卡,不能再绑定取现卡
116303 银行卡号与银行不匹配
116304 该银行卡非借记卡
116306 用户已绑定快捷或代扣卡,请勿重复申请
116307 用户有快捷卡正在绑定中,请勿重复绑卡
116308 省份地区信息非法
116320 该用户已开户,手机号已存在
116400 银行账号无效或不存在
116401 持卡人身份信息或手机号验证不符
116402 卡号长度有误
116403 验证超时
116404 账号应为活期账号
116405 您的银行卡暂不支持该业务,请更换其他银行卡或咨询发卡银行
116501 交易失败(包含未知错误码)
116502 系统未开放或暂时关闭,请稍后再试
116503 交易通讯超时,请发起查询交易
116505 重复签约
116512 重复交易
116519 订单系统错误
116520 持卡人信息为空
116521 持卡人信息有误
116522 持卡人系统错误
116523 卡信息为空
116524 卡信息有误
116525 卡系统错误
116526 卡系统错误
116535 网关不支持签约交易
116538 风险受限
116560 交易失败,请联系发卡银行
116561 对不起,您所输的银行卡号有误,请核实后再试!
116562 交易失败,发卡银行不支持该商户,请更换其他银行卡
116563 卡状态不正确
116565 输入的密码、有效期或 CVN2 有误,交易失败
116566 持卡人身份信息或手机号输入不正确,验证失败
116568 您的银行卡暂不支持该业务
116571 对不起,您所输的验证码有误,请核实后再试!
116572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡行热线电话
116573 对不起,您所输的用户名有误,请核实后再试!
116574 对不起,您的证件类型有误,请核实后再试!
116575 对不起,您所输的证件号码有误,请核实后再试!
116576 对不起,您所输的手机号码有误,请核实后再试!
116577 验证码发送失败
116578 验证码超限或超时
116579 对不起,您的用户信息未通过银行验证,请核实后再试!
116580 银行卡状态异常
116590 交易失败,参数不合法
116591 系统异常
116592 银行系统繁忙,请稍后再试
116593 系统超时
116594 银行处理中,请稍后再试
116599 系统异常
1165F0 渠道交易失败
1165F2 交易失败,未添加白名单
1165F3 签约失败,请稍后再试
1165P0 交易挂起,需要确认
116800 风控信息验证失败
116801 商户接口调用风控受限
116802 用户接口调用风控受限
116803 二级商户接口调用风控受限

后台快捷绑卡

接口功能说明

为未开户的用户开户的同时绑定快捷卡,或为已开户的用户绑定快捷卡

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 11
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 112
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,商户的唯一性标识条件可选:如用户已经开户,可选填该参数,如填写,接口会以该参数来辨识用户,不再匹配客户用户名和身份证号的正确性,但依然会校验参数格式;如不填写,接口会以客户用户名及身份证号匹配客户;如果用户未开户,请不填该参数
客户用户名 user_name 变长 50 位 String 可选 用户的真实姓名条件可选,条件参考用户客户号描述
身份证号 cert_id 定长 18 位 String 可选 用户身份证号,目前仅支持身份证条件可选,条件参考用户客户号描述
银行预留手机号 card_mobile 变长 11 位 String 必须 本次快捷绑卡待绑定的银行卡,在银行开户时的预留手机号,变长 11 位数字
开户银行代号 bank_id 变长 8 位 String 必须 具体见附件:代扣充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D–借记,储蓄卡; C–贷记,信用卡,备注:本接口暂仅支持借记卡
银行卡开户省份 card_prov 定长 4 位 String 可选 银行卡开户省份
银行卡开户地区 card_area 定长 4 位 String 可选 银行卡开户地区
阶段标志 step_flag 定长 2 位 String 必须 01:验卡阶段;02:验证短信阶段
绑卡请求流水 bind_trans_id 变长 20 位 String 必须 标志一个绑卡请求,商户下判断唯一,只能是数字和字母
短信验证码 sms_code 定长 6 位 String 可选 银行预留手机号对应的短信验证码,验证短信阶段必须
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+user_cust_id+cert_id+bank_id+card_no+card_mobile+dc_flag+card_prov+card_area+step_flag+bind_trans_id+sms_code+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 112
应答返回码 resp_code 定长 6 位 String 必须 112000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
已开户标识 reg_flag 定长 8 位 String 必须 00000000 : 新开户; 00000001 : 已开户
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,用户的唯一性标识,成功时必返
用户账户号 acct_id 变长 8 位 String 可选 用户账户号新开户且成功时必返
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 必须 组成规则:8 位本平台日期 +10 位系统流水号
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+reg_flag+user_cust_id+acct_id+order_date+order_id+platform_seq_id+fee_amt+fee_acct_id+mer_priv

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "112"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "112",
  "resp_code": "112000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "112",
  "resp_code": "112003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
112000 交易成功
112002 请求已受理
112003 交易失败
112099 系统异常
112100 请求参数非法
112101 商户无此接口权限
112102 验证签名失败
112103 商户状态异常
112104 用户状态异常
112106 商户签名未配置
112201 页面数据被篡改
112202 交易订单号重复
112203 账户可用余额不足
112204 商户配置异常
112205 短信验证码验证失败
112206 短信验证码发送手机号与验证手机号不一致
112207 短信验证码或短信唯一标识为空
112208 短信验证码已失效请重新获取
112209 验证码发送接口与接口不一致
112210 短信验证码发送过于频繁
112211 短信验证码发送失败
112300 该业务仅支持个人用户
112301 不支持绑定该银行的银行卡
112302 用户已绑定快捷卡,不能再绑定取现卡
112303 银行卡号与银行不匹配
112304 该银行卡非借记卡
112306 用户已绑定快捷或代扣卡,请勿重复申请
112307 用户有快捷卡正在绑定中,请勿重复绑卡
112308 省份地区信息非法
112320 该用户已开户,手机号已存在
112400 银行账号无效或不存在
112401 持卡人身份信息或手机号验证不符
112402 卡号长度有误
112403 验证超时
112404 账号应为活期账号
112405 您的银行卡暂不支持该业务,请更换其他银行卡或咨询发卡银行
112501 交易失败(包含未知错误码)
112502 系统未开放或暂时关闭,请稍后再试
112503 交易通讯超时,请发起查询交易
112505 重复签约
112512 重复交易
112519 订单系统错误
112520 持卡人信息为空
112521 持卡人信息有误
112522 持卡人系统错误
112523 卡信息为空
112524 卡信息有误
112525 卡系统错误
112526 卡系统错误
112535 网关不支持签约交易
112538 风险受限
112560 交易失败,请联系发卡银行
112561 对不起,您所输的银行卡号有误,请核实后再试!
112562 交易失败,发卡银行不支持该商户,请更换其他银行卡
112563 卡状态不正确
112565 输入的密码、有效期或 CVN2 有误,交易失败
112566 持卡人身份信息或手机号输入不正确,验证失败
112568 您的银行卡暂不支持该业务
112571 对不起,您所输的验证码有误,请核实后再试!
112572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡行热线电话
112573 对不起,您所输的用户名有误,请核实后再试!
112574 对不起,您的证件类型有误,请核实后再试!
112575 对不起,您所输的证件号码有误,请核实后再试!
112576 对不起,您所输的手机号码有误,请核实后再试!
112577 验证码发送失败
112578 验证码超限或超时
112579 对不起,您的用户信息未通过银行验证,请核实后再试!
112580 银行卡状态异常
112590 交易失败,参数不合法
112591 系统异常
112592 银行系统繁忙,请稍后再试
112593 系统超时
112594 银行处理中,请稍后再试
112599 系统异常
1125F0 渠道交易失败
1125F2 交易失败,未添加白名单
1125F3 签约失败,请稍后再试
1125P0 交易挂起,需要确认
112800 风控信息验证失败
112801 商户接口调用风控受限
112802 用户接口调用风控受限
112803 二级商户接口调用风控受限

前台代扣绑卡

接口功能说明

前台代扣绑卡

调用方式:页面调用

应答方式:同步页面应答、异步应答

接口类型:异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 117
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长 20 位 String 可选 对应产品录入中产品 ID
产品订单号 product_order_id 变长 20 位 String 可选 由商户的系统生成,本次签约的产品订单号,产品订单号保证唯一
开户名 user_name 变长 50 位 String 必须 用户的真实姓名
身份证号 cert_id 定长 18 位 String 必须 用户身份证号
开户银行代号 bank_id 变长 8 位 String 必须 具体见附件:代扣充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D–借记,储蓄卡; C–贷记,信用卡注:本接口暂仅支持借记卡
银行预留手机号 card_mobile 变长 11 位 String 必须 银行开户时的预留手机号
银行卡开户省份 card_prov 定长 4 位 String 可选 银行卡开户省份
银行卡开户地区 card_area 定长 4 位 String 可选 银行卡开户地区
页面返回 URL ret_url 变长 128 位 String 可选 交易完成后本平台系统把交易结果通过页面方式,发送到该地址上。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2)URL 中请不要包含特殊字符 3) 必须是外网地址
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 后台异步通知商户开户结果
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
页面类型 page_type 定长 2 位 String 可选 桌面端样式页面:00 ;移动端样式页面:10 ,默认桌面端样式
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+product_id+product_order_id+cert_id+bank_id+card_no+dc_flag+card_mobile+card_prov+card_area+ret_url+bg_ret_url+mer_priv+extension+page_type

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 117
应答返回码 resp_code 定长 6 位 String 必须 117000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,用户的唯一性标识
用户账户号 acct_id 变长 8 位 String 可选 用户账户号
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 必须 组成规则:8 位本平台日期 +10 位系统流水号
开户标识 reg_flag 定长 8 位 String 必须 00000000 : 新开户; 00000001 : 已开户
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为 ###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 返参中的 URL 为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
页面返回 URL ret_url 变长 128 位 String 可选 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+acct_id+order_date+order_id+platform_seq_id+reg_flag+fee_amt+fee_acct_id+ret_url_bg_ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "117"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "117",
  "resp_code": "117000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "117",
  "resp_code": "117003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
117000 交易成功
117002 请求已受理
117003 交易失败
117099 系统异常
117100 请求参数非法
117101 商户无此接口权限
117102 验证签名失败
117103 商户状态异常
117104 用户状态异常
117105 账户状态异常
117106 商户签名未配置
117201 页面数据被篡改
117202 交易订单号重复
117203 账户可用余额不足
117204 商户配置异常
117205 短信验证码验证失败
117206 短信验证码发送手机号与验证手机号不一致
117207 短信验证码或短信唯一标识为空
117208 短信验证码已失效请重新获取
117209 验证码发送接口与接口不一致
117210 短信验证码发送过于频繁
117211 短信验证码发送失败
117300 该业务仅支持个人用户执行
117301 不支持绑定该银行的银行卡
117303 银行卡号与银行不匹配
117304 该银行卡非借记卡
117308 省份地区信息非法
117309 代扣签约只支持个人用户
117310 产品信息校验失败
117311 手续费子账户配置异常
117312 企业用户/商户不支持代扣绑卡
117316 手机号与已绑定卡记录不匹配
117318 用户已绑定代扣卡,请勿重复申请
117319 用户有代扣卡正在绑定中,请勿重复绑卡
117320 手机号已注册
117400 银行账号无效或不存在
117401 持卡人身份信息或手机号验证不符
117402 卡号长度有误
117403 验证超时
117404 账号应为活期账号
117405 您的银行卡暂不支持该业务,请更换其他银行卡或咨询发卡银行
117501 交易失败(包含未知错误码)
117502 系统未开放或暂时关闭,请稍后再试
117503 交易通讯超时,请发起查询交易
117505 重复签约
117512 重复交易
117519 订单系统错误
117520 持卡人信息为空
117521 持卡人信息有误
117522 持卡人系统错误
117523 卡信息为空
117524 卡信息有误
117525 卡系统错误
117526 卡系统错误
117535 网关不支持签约交易
117538 风险受限
117560 交易失败,请联系发卡银行
117561 对不起,您所输的银行卡号有误,请核实后再试!
117562 交易失败,发卡银行不支持该商户,请更换其他银行卡
117563 卡状态不正确
117565 输入的密码、有效期或 CVN2 有误,交易失败
117566 持卡人身份信息或手机号输入不正确,验证失败
117568 您的银行卡暂不支持该业务
117572 签约失败,您尚未在银行柜面或网银页面签约此业务,请去柜面或网银开通,或者拨打发卡行热线电话
117573 对不起,您所输的用户名有误,请核实后再试!
117574 对不起,您的证件类型有误,请核实后再试!
117575 对不起,您所输的证件号码有误,请核实后再试!
117576 对不起,您所输的手机号码有误,请核实后再试!
117577 验证码发送失败
117578 验证码超限或超时
117579 对不起,您的用户信息未通过银行验证,请核实后再试!
117580 银行卡状态异常
117590 交易失败,参数不合法
117591 系统异常
117592 银行系统繁忙,请稍后再试
117593 系统超时
117594 银行处理中,请稍后再试
117599 系统异常
1175F0 渠道交易失败
1175F2 交易失败,未添加白名单
1175F3 签约失败,请稍后再试
1175P0 交易挂起,需要确认
117800 风控信息验证失败
117801 商户接口调用风控受限
117802 用户接口调用风控受限
117803 二级商户接口调用风控受限

后台代扣绑卡

接口功能说明

用于代扣卡绑定和代扣订单签约,可支持多张代扣卡绑定,若绑定签约成功,即同时为用户开设专属账户

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 11
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 109
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长 20 位 String 必须 对应产品录入中产品 ID
产品订单号 product_order_id 变长 20 位 String 必须 由商户的系统生成,本次签约的产品订单号,产品订单号保证唯一
开户名 user_name 变长 50 位 String 必须 用户的真实姓名
身份证号 cert_id 定长 18 位 String 必须 用户身份证号
开户银行代号 bank_id 变长 8 位 String 必须 具体见附件:代扣充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D–借记,储蓄卡; C–贷记,信用卡 ,备注:本接口暂仅支持借记卡
银行预留手机号 card_mobile 变长 11 位 String 必须 银行开户时的预留手机号
银行卡开户省份 card_prov 定长 4 位 String 可选 银行卡开户省份
银行卡开户地区 card_area 定长 4 位 String 可选 银行卡开户地区
阶段标志 step_flag 定长 2 位 String 必须 01:验卡阶段;02:验证短信阶段
短信验证码 sms_code 定长 6 位 String 可选 与本次绑卡时的银行预留手机号对应的短信验证码
绑卡请求流水 bind_trans_id 定长 20 位 String 必须 标志一个绑卡请求,商户下判断唯一,只能是数字和字母
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”,”sms_spec”:”01”} 二级商户号由汇付生成
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+user_cust_id+order_date+order_id+product_id+product_order_id+cert_id+bank_id+card_no+dc_flag+card_mobile+card_prov+card_area+step_flag+sms_code+bind_trans_id+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 109
应答返回码 resp_code 定长 6 位 String 必须 109000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
用户账户号 acct_id 变长 8 位 String 可选 用户账户号
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD
订单号 order_id 变长 20 位 String 必须 由商户的系统生成,订单号和订单日期保证唯一
产品编号 product_id 变长 20 位 String 必须 对应订单录入中产品 ID
产品订单号 product_order_id 变长 20 位 String 必须 本次签约的产品订单号
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 必须 组成规则:8 位本平台日期 +10 位系统流水号
开户标识 reg_flag 定长 8 位 String 必须 00000000 : 新开户; 00000001 : 已开户
开户银行代号 bank_id 变长 8 位 String 必须 对应产品录入中产品 ID
银行卡号 card_no 变长 32 位 String 必须 待绑定的银行卡卡号
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 后台异步通知商户开户结果
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段
扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+acct_id+order_date+order_id+product_id+product_order_id+platform_seq_id+reg_flag+bank_id+card_no+fee_amt+fee_acct_id+bg_ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "11"));
    nvps.add(new BasicNameValuePair("cmd_id", "109"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "109",
  "resp_code": "109000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "109",
  "resp_code": "109003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
109000 交易成功
109002 请求已受理
109003 交易失败
109099 系统异常
109100 请求参数非法
109101 商户无此接口权限
109102 验证签名失败
109103 商户状态异常
109104 用户状态异常
109105 账户状态异常
109106 商户签名未配置
109201 页面数据被篡改
109202 交易订单号重复
109203 账户可用余额不足
109204 商户配置异常
109205 短信验证码验证失败
109206 短信验证码发送手机号与验证手机号不一致
109207 短信验证码或短信唯一标识为空
109208 短信验证码已失效请重新获取
109209 验证码发送接口与接口不一致
109210 短信验证码发送过于频繁
109211 短信验证码发送失败
109301 不支持绑定该银行的银行卡
109303 银行卡号与银行不匹配
109304 该银行卡非借记卡
109308 省份地区信息非法
109309 代扣签约只支持个人用户
109310 产品信息校验失败
109311 手续费子账户配置异常
109312 企业用户/商户不支持代扣绑卡
109318 用户已绑定代扣卡,请勿重复申请
109319 用户有代扣卡正在绑定中,请勿重复绑卡
109400 银行账号无效或不存在
109401 持卡人身份信息或手机号验证不符
109402 卡号长度有误
109403 验证超时
109404 账号应为活期账号
109405 您的银行卡暂不支持该业务,请更换其他银行卡或咨询发卡银行
109800 风控信息验证失败
109801 商户接口调用风控受限
109802 用户接口调用风控受限
109803 二级商户接口调用风控受限

取现绑卡

接口功能说明

用于绑定取现银行卡,以便用于用户取现

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:混合

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 104
商户唯一标识号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户唯一标识号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
银行代号 bank_id 变长 8 位 String 必须 具体见附件:取现支持银行列表
银行卡号 card_no 变长 32 位 String 必须 本次取现绑卡待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D–借记,储蓄卡; C–贷记,信用卡,备注:本接口暂仅支持借记卡
银行卡开户省份 card_prov 定长 4 位 String 可选 本次取现绑卡待绑定的银行卡开户省份
银行卡开户地区 card_area 定长 4 位 String 可选 本次取现绑卡待绑定的银行卡开户地区
是否默认取现卡 is_default 定长 8 位 String 必须 00000000:非默认取现卡; 00000001:默认取现卡用户首次绑卡时,无论传任何值,绑定成功后都会设置为默认取现卡;用户已有默认取现卡时,新绑定默认取现卡会替换掉原有默认取现卡
后台返回地址 bg_ret_url 变长 128 位 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果,注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入;2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 128 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+user_cust_id+order_date+order_id+bank_id+card_no+dc_flag+card_prov+card_area+is_default+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 104
应答返回码 resp_code 定长 6 位 String 必须 104000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户唯一标识号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户唯一标识号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 可选 组成规则:8 位本平台日期 +10 位系统流水号
银行代号 bank_id 变长 8 位 String 必须 具体见附件:取现支持银行列表
银行卡号 card_no 变长 32 位 String 必须 本次取现绑卡待绑定的银行卡号
借贷标记 dc_flag 定长 1 位 String 必须 D– 借记,储蓄卡; C– 贷记,信用卡 ,备注:本接口暂仅支持借记卡
银行卡开户省份 card_prov 定长 4 位 String 可选 本次取现绑卡待绑定的银行卡开户省份,绑定对公账户时必选
银行卡开户地区 card_area 定长 4 位 String 可选 本次取现绑卡待绑定的银行卡开户地区,绑定对公账户时必选
是否默认取现卡 is_default 定长 8 位 String 必须 00000000:非默认取现卡 00000001:默认取现卡用户首次绑卡时,无论传任何值,绑定成功后都会设置为默认取现卡;用户已有默认取现卡时,新绑定默认取现卡会替换掉原有默认取现卡
手续费金额 fee_amt 变长 14 位 String 可选 手续费金额,格式为 ###.00
手续费子账户号 fee_acct_id 变长 9 位 String 可选 手续费扣款子账户号
后台返回地址 bg_ret_url 变长 128 位 String 必须 返参中的 URL 为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户私有域 mer_priv 变长 128 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+order_date+order_id+platform_seq_id+bank_id+card_no+dc_flag+card_prov+card_area+is_default+fee_amt+fee_acct_id+bg_ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "104"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "104",
  "resp_code": "101000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "104",
  "resp_code": "104003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
104000 交易成功
104002 请求已受理
104003 交易失败
104099 系统异常
104100 请求参数非法
104101 商户无此接口权限
104102 验证签名失败
104103 商户状态异常
104104 用户状态异常
104106 商户签名未配置
104202 交易订单号重复
104203 账户可用余额不足
104204 商户配置异常
104301 不支持绑定该银行的银行卡
104302 用户已绑定快捷或代扣卡,不能再绑定取现卡
104303 银行卡号与银行不匹配
104304 该银行卡非借记卡
104305 企业用户/商户不支持快捷绑卡
104306 用户已绑定快捷或代扣卡,请勿重复申请
104307 用户有快捷或代扣卡正在绑定中,请勿重复绑卡
104308 省份地区信息非法
104800 风控信息验证失败
104801 商户接口调用风控受限
104802 用户接口调用风控受限
104803 二级商户接口调用风控受限

解绑快捷/代扣卡

接口功能说明

用于解绑快捷或代扣卡

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:混合

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本 version 定长 2 位 String 必须 目前固定为 10
接口标识 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 105
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
银行代码 bank_id 定长 8 位 String 必须 具体见附件:快捷充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 银行卡号
银行卡预留手机号 card_mobile 变长 11 位 String 必须 银行卡预留手机号
短信验证码日期 sms_order_date 定长 8 位 String 可选 与 sms_code 对应的验证码发送订单日期
短信验证码订单号 sms_order_id 变长 20 位 String 可选 与 sms_code 对应的验证码发送订单号
短信验证码 sms_code 定长 6 位 String 可选 短信验证码,测试环境调试时可以使用 666666 通过验证
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 120 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
扩展域 extension 变长 512 位 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+user_cust_id+order_date+order_id+bank_id+card_no+card_mobile+sms_code+sms_order_date+sms_order_id+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
接口标识 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 105
应答返回码 resp_code 定长 6 位 String 必须 105000–调用成功
应答描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
银行代码 bank_id 定长 8 位 String 必须 具体见附件:快捷充值支持银行列表
银行卡号 card_no 变长 32 位 String 必须 银行卡号
银行卡预留手机号 card_mobile 变长 11 位 String 必须 银行卡预留手机号
短信验证码日期 sms_order_date 定长 8 位 String 可选 与sms_code 对应的验证码发送订单日期
短信验证码订单号 sms_order_id 变长 20 位 String 可选 与sms_code 对应的验证码发送订单号
短信验证码 sms_code 定长 6 位 String 必须 短信验证码
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 返参中的 URL 为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户私有域 mer_priv 变长120 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
返参扩展域 extension 变长 512 位 String 可选 用于扩展请求参数
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+order_date+order_id+bank_id+card_no+card_mobile+sms_code+sms_order_date+sms_order_id+bg_ret_url+mer_priv+extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "105"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "105",
  "resp_code": "105000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "105",
  "resp_code": "105003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
105000 交易成功
105002 请求已受理
105099 系统异常
105100 请求参数非法
105101 商户无此接口权限
105102 验证签名失败
105103 商户状态异常
105104 用户状态异常
105205 短信验证码验证失败
105206 短信验证码发送手机号与验证手机号不一致
105207 短信验证码或短信唯一标识为空
105208 短信验证码已失效请重新获取
105209 验证码发送接口与接口不一致
105300 短信验证码有误
105301 用户未绑定过该卡
105302 非代扣或快捷卡,不能解绑
105303 订单重复
105304 用户基本信息不存在
105305 验证卡信息失败
105800 风控信息验证失败
105801 商户接口调用风控受限
105802 用户接口调用风控受限
105803 二级商户接口调用风控受限

删除取现卡

接口功能说明

用于个人用户、企业用户和商户删除非默认取现卡

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:同步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 固定为 10,如版本升级,能向前兼容
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 108
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
开户银行卡号 card_no 变长 32 位 String 必须 本次删除取现卡待删除的银行卡号,不可为用户默认取现卡
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 128 位的 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
入参扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数若需要进行二级商户号验证,则必传,格式:{“sub_mer_cust_id”:”111111111111”} 二级商户号由汇付生成,详见 二级商户录入接口
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+user_cust_id+order_date+order_id+card_no+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为108
应答返回码 resp_code 定长 6 位 String 必须 108000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
本平台交易唯一标识号 platform_seq_id 定长 18 位 String 可选 组成规则:8 位本平台日期 +10 位系统流水号
开户银行卡号 card_no 变长 32 位 String 必须 本次删除取现卡待删除的银行卡号,不可为用户默认取现卡
商户后台应答地址 bg_ret_url 变长 128 位的 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 128 位的 String 必须 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
入参扩展域 extension 变长 512 位的 String 可选 用于扩展请求参数
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+order_date+order_id+platform_seq_id+card_no+bg_ret_url+ mer_priv+ extension

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "108"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "108",
  "resp_code": "108000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "108",
  "resp_code": "108003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
108000 交易成功
108003 交易失败
108099 系统异常
108100 请求参数非法
108101 商户无此接口权限
108102 验证签名失败
108103 商户状态异常
108104 用户状态异常
108106 商户签名未配置
108202 交易订单号重复
108204 商户配置异常
108300 银行卡不是取现卡
108301 不能操作默认取现卡
108302 银行卡不存在或状态异常
108800 风控信息验证失败
108801 商户接口调用风控受限
108802 用户接口调用风控受限
108803 二级商户接口调用风控受限

短信验证码发送

接口功能说明

用于个人用户开户、解绑快捷卡、快捷充值和后台快捷绑卡接口发送短信验证码

调用方式:后台调用

应答方式:同步后台应答

接口类型:同步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 固定为 10,如版本升级,能向前兼容
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 110
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 可选 由汇付生成,用户的唯一性标识注:快捷充值短信发送必传
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
业务类型 business_type 定长 3 位 String 必须 101:用户开户; 105:解绑快捷卡;113:后台快捷绑卡;201:快捷充值
用户手机号 user_mobile 定长 11 位 String 必须 待接收短信验证码的手机号
签名 check_value 定长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+user_cust_id+order_date+order_id+business_type+user_mobile

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位Sring 必须 每一种消息类型代表一种交易,此处为 110
返回码 resp_code 定长 6 位 String 必须 110000–调用成功
结果描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
用户客户号 user_cust_id 定长 16 位 String 必须 由汇付生成,用户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
业务类型 business_type 定长 3 位 String 必须 101:用户开户;105:解绑快捷卡;201:快捷充值
用户手机号 user_mobile 定长 11 位 String 必须 待接收短信验证码的手机号
签名 check_value 定长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+user_cust_id+order_date+order_id+business_type+user_mobile

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "110"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "110",
  "resp_code": "110000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "110",
  "resp_code": "110003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
110000 交易成功
110003 交易失败
110099 系统异常
110100 请求参数非法
110101 商户无此接口权限
110102 验证签名失败
110103 商户状态异常
110104 用户状态异常
110106 商户签名未配置
110202 交易订单号重复
110204 商户配置异常
110210 短信验证码发送过于频繁
110211 短信验证码发送失败
110301 短信验证码发送开关已关闭
110304 快捷充值短信验证码发送失败,用户还未绑定快捷卡
110305 非快捷绑卡银行预留手机号

二级商户录入

接口功能说明

二级商户录入

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:同步+异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 目前固定为 10
消息类型 cmd_id 定长 3 位 String 每一种消息类型代表一种交易,此处为 114
订单日期 order_date 定长 8 位 String 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 由商户生成,必须保证唯一,20 位内数字或字母的组合
商户客户号 mer_cust_id 定长 16 位 String 由汇付生成,商户的唯一性标识
二级商户名 sub_mer_cust_name 变长 50 位 String 二级商户名称,中文应使用 UTF-8 字符集 URLEncode 编码后传入
商户后台应答地址 bg_ret_url 变长 128 位的 String 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。注意:1) URL 应使用 UTF-8 字符集 URLEncode 编码后传入 2) URL 中请不要包含特殊字符 3) 必须是外网地址
商户私有域 mer_priv 变长 120 位的 String 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
入参扩展域 extension 变长 512 位的 String 用于扩展请求参数
签名 check_value 变长 256 位的 String 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+cert_id+card_mobile+bank_id+card_no+dc_flag+card_prov+card_area+bg_ret_url+ret_url+mer_priv+extension+page_type

返回参数列表

中文名 参数名 数据格式 是否必须 说明
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 114
应答返回码 resp_code 定长 6 位 String 必须 114000–调用成功
应答返回描述 resp_desc 变长 String 必须 返回码的对应中文描述
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
二级商户号 sub_mer_cust_id 变长 20 位 String 可选 二级商户号,20 位内数字或字母的组合,录入成功(返回码:114000)时必返
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
平台流水号 platform_seq_id 定长 18 位 String 可选 组成规则:8 位本平台日期 +10 位系统流水号,录入成功(返回码:114000)时必返
商户私有域 mer_priv 变长 120 位的 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
签名 check_value 变长 256 位的 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+sub_mer_cust_id+order_date+order_id+platform_seq_id+mer_priv``

代码示例

java

String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "114"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "114",
  "resp_code": "114000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "114",
  "resp_code": "114003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
114000 交易成功
114099 系统异常
114100 请求参数非法
114101 商户无此接口权限
114102 验证签名失败
114103 商户状态异常
114215 二级商户名已存在

产品录入

接口功能说明

用于商户产品信息录入后进行入库动作,主要用于商户代扣时进行订单金额风控限制及后续其他监管需求

调用方式:后台调用

应答方式:同步后台应答、异步应答

接口类型:同步+异步

请求参数列表

中文名 参数名 数据格式 是否必须 说明
版本号 version 定长 2 位 String 必须 目前固定为 10
消息类型 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 204
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
产品 ID product_id 变长 20 位 String 必须 由商户提供,产品的唯一标识,20 位内数字或字母的组合
产品总金额 product_amt 变长 14 位 String 必须 产品总金额,格式为###.00
产品期数 product_periods 变长 14 位 String 必须 产品的期数
产品开始时间 product_start_time 定长 14 位 String 必须 产品开始时间
产品结束时间 product_end_time 定长 14 位 String 必须 产品结束时间
产品所在地 product_location 定长 4 位 String 必须 产品的所在地
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 通过后台异步通知,商户应在应答接收的响应中输出 RECV_ORD_ID 字样的字符串,表明商户已经收到该笔交易结果。
商户私有域 mer_priv 变长 120 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
入参扩展域 extension 变长 512 位 String 可选 用于扩展请求参数
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

version+cmd_id+mer_cust_id+order_date+order_id+product_id+product_amt+product_periods+product_start_time+product_end_time+product_location+bg_ret_url+mer_priv+extension

返回参数列表

中文名 参数名 数据格式 是否必须 说明
接口标识 cmd_id 定长 3 位 String 必须 每一种消息类型代表一种交易,此处为 204
应答返回码 resp_code 定长 6 位 String 必须 204000–调用成功
应答描述 resp_desc 变长 String 必须 返回码的对应中文描述,中文为 UTF-8 字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户客户号 mer_cust_id 定长 16 位 String 必须 由汇付生成,商户的唯一性标识
订单日期 order_date 定长 8 位 String 必须 格式为 YYYYMMDD,例如:20160307
订单号 order_id 变长 20 位 String 必须 由商户生成,必须保证唯一,20 位内数字或字母的组合
产品 ID product_id 变长 20 位 String 必须 由商户提供,产品的唯一标识
产品总金额 product_amt 变长 14 位 String 必须 产品总金额,格式为 ###.00
产品期数 product_periods 变长 14 位 String 必须 产品的期数
产品开始时间 product_start_time 变长 14 位 String 必须 产品开始时间
产品结束时间 product_end_time 变长 14 位 String 必须 产品结束时间
产品所在地 product_location 定长 4 位 String 必须 产品的所在地
商户后台应答地址 bg_ret_url 变长 128 位 String 必须 返参中的 URL 为 UTF-8字符集 URLEncode 编码后的字符串,商户应解码获取原文
商户私有域 mer_priv 变长 128 位 String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行 Base64 加密后再使用
返参扩展域 extension 变长 512 位 String 可选 用于扩展请求参数
签名 check_value 变长 256 位 String 必须 加签规则:Base64 将参数列表的值按从上到下的顺序进行字符串拼接,调用签名函数获得的值

本接口加签拼接顺序:

cmd_id+resp_code+mer_cust_id+order_date+order_id+product_id+product_amt+product_periods+product_start_time+product_end_time+product_location+bg_ret_url+mer_priv+extension

代码示例

java

 String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://mertest.chinapnr.com/asharp/merchantRequest");
try {
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("version", "10"));
    nvps.add(new BasicNameValuePair("cmd_id", "204"));
    nvps.add(new BasicNameValuePair("mer_cust_id", "6666000000000001"));
    nvps.add(new BasicNameValuePair("order_date", "20180327"));
    nvps.add(new BasicNameValuePair("order_id", "10000000001"));
    .......
    post.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse httpResponse = client.execute(post);
    int code = httpResponse.getStatusLine().getStatusCode();
    String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
    e.printStackTrace();
}

成功响应

200
{
  "cmd_id": "204",
  "resp_code": "204000",
  "resp_desc": "交易成功",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

失败响应

200
{
  "cmd_id": "204",
  "resp_code": "204003",
  "resp_desc": "交易失败",
  "mer_cust_id" : "6666000000000001",
  "order_date": "20180327",
  "order_id": "10000000001",
  .......
}

接口返回码

返回参数 返回描述
204000 交易成功
204099 系统异常
204100 请求参数非法
204101 商户无此接口权限
204102 验证签名失败
204103 商户状态异常
204104 用户状态异常
204300 项目信息或订单信息重复
204301 项目开始时间晚于或等于项目结束时间