用户管理类接口 ============== 个人用户开户接口 ---------------- 功能说明 ~~~~~~~~~~~~ 用于在本平台系统下为个人用户或个体户开设专属账户 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+=================+=====================+================+===============================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为101 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 个体户标识 | solo\_flg | 定长8位String | 可选 | 不传默认为个体户开户 00000100个人开户, 00000101个体户开户 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 用户姓名 | user\_name | 变长50位String | 必须 | 用户的真实姓名 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 身份证号 | cert\_id | 变长18位String | 必须 | 用户的身份证号 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 手机号 | user\_mobile | 定长11位String | 必须 | 用户的手机号 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 证件有效期 | vali\_date | 定长8位String | 可选 | 填写证件上有效期的截至日期,格式为:YYYYMMDD,例如:20290420 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 用户省份 | cust\_prov | 定长4位String | 必须 | 用户省份,如上海0031 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 用户地区 | cust\_area | 定长4位String | 必须 | 用户地区,如上海3100 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 住址 | cust\_address | 变长250位String | 可选 | 填写证件上的住址 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 职业 | occupation | 定长2位String | 可选 | 见个人职业分类表 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 邮箱 | user\_email | 变长40位String | 可选 | 用户的电子邮箱 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 支付密码 | pay\_password | 变长32位String | 可选 | 个体户标识为是时,必须输入 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +========================+=====================+=====================+================+===================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为101 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 101000--调用成功,其他见返回码表 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 子账户号 | acct\_id | 变长16位String | 必须 | 由汇付生成,用户的默认子账户号 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 手机号 | user\_mobile | 定长11位String | 必须 | 用户的手机号 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+10位系统流水号 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 手续费金额 | fee\_amt | 变长14位String | 必须 | 手续费金额,格式为###.00 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 手续费子账户号 | fee\_acct\_id | 变长9位String | 可选 | 手续费扣款子账户号 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长120位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址结果 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长128位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "101", "mer_cust_id": "6666000000026086", "order_id": "10000000001", "order_date": "20170828", "solo_flg": "00000100", "user_name": "测试2.0", "cert_id": "441201199010245791", "user_mobile": "15947001263", "vali_date": "20161130", "cust_prov": "0031", "cust_area": "3100", "cust_address": "12", "occupation": "12", "user_email": "johson.wu_56@qq.com", "pay_password": "password", "mer_priv": "testmerpriv", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "extension": "extension" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "101"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "101", "resp_code": "101000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 成功响应: .. code:: json 200 { "cmd_id": "101", "resp_code": "101304", "resp_desc": "个人用户开户失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +===============================================+======================================================+ | 101100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 101000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 101098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 101099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 101101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 101102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 101103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 101107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 101108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 101109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 101110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 101202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 101203 | 账户可用余额不足 | +-----------------------------------------------+------------------------------------------------------+ | 101204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 101301 | 该用户已开户,身份证号已存在 | +-----------------------------------------------+------------------------------------------------------+ | 101302 | 该用户已开户,手机号已存在 | +-----------------------------------------------+------------------------------------------------------+ | 101303 | 该用户正在开户中,请务重复申请 | +-----------------------------------------------+------------------------------------------------------+ | 101304 | 个人用户开户失败 | +-----------------------------------------------+------------------------------------------------------+ | 101305 | 手续费收取失败 | +-----------------------------------------------+------------------------------------------------------+ | 101306 | 个体户开户时,支付密码为必输 | +-----------------------------------------------+------------------------------------------------------+ | 101307 | 个体户开户时,证件有效期为必输 | +-----------------------------------------------+------------------------------------------------------+ | 101308 | 省份地区信息非法 | +-----------------------------------------------+------------------------------------------------------+ 企业用户开户接口(页面版) ---------------- 功能说明 ~~~~~~~~~~~~ 用于在本平台系统下为企业用户开设专属账户 调用方式:页面浏览器 请求参数 ~~~~~~~~~~~~~~ +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +===========================+============================+=====================+================+=============================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为102 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一标识号 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业开户申请号 | apply\_id | 变长18 位String | 必须 | 由商户提供,申请企业开户的唯一标识 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 操作类型 | operate\_type | 定长8位String | 必须 | 00090000 新增 00090001 修改 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业证照类型 | corp\_license\_type | 定长8位String | 必须 | 01030100.普通营业执照企业 01030101.三证合一企业 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业类型 | corp\_type | 定长8位String | 必须 | 01030000.普通企业 01030001.个体户 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业名称 | corp\_name | 变长50位String | 必须 | 企业的公司全称 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 营业执照注册号 | 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 | 必须 | 企业的营业证照结束日期,精确到年月日,支持“永久” | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业经营地址 | corp\_business\_address | 变长250位字符串 | 必须 | 企业的经营地址 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业注册地址 | corp\_reg\_address | 变长250位字符串 | 必须 | 企业的注册地址 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业固定电话 | corp\_fixed\_telephone | 变长15位字符串 | 必须 | 企业的固定电话 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 经营范围 | business\_scope | 变长1000位字符串 | 必须 | 企业的经营范围 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 控股股东 (实际控制人) | controlling\_shareholder | 变长3000位字符串 | 必须 | 数据格式:[{"name":"关羽","certType":"01","certId":"330204199008187881"}] | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人姓名 | legal\_name | 变长20位String | 必须 | 企业的法人姓名 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人证件类型 | legal\_cert\_type | 定长8位String | 必须 | 01020100:身份证 01020101:护照 01020102:军官证 01020103士兵证 01020104:回乡证 01020105警官证 01020106:台胞证 01020107:其他 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人证件号码 | legal\_cert\_id | 变长20位String | 必须 | 法人的证件号码,与证件类型对应 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人证件起始日期 | legal\_cert\_start\_date | 定长8 位String | 必须 | 法人的证件起始日期,精确到年月日 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人证件起始日期 | legal\_cert\_end\_date | 定长8 位String | 必须 | 法人的证件结束日期,精确到年月日,支持“永久” | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 法人手机号码 | legal\_mobile | 定长11位String | 必须 | 法人的手机号码 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 企业联系人姓名 | contact\_name | 变长50位String | 必须 | 企业联系人的姓名 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 联系人手机号 | contact\_mobile | 定长11为String | 必须 | 联系人的手机号码 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 联系人邮箱 | contact\_email | 变长40位的String | 必须 | 联系人的邮箱地址 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行账户名 | bank\_acct\_name | 变长40位的String | 必须 | 企业开户银行账户名,需与企业名称保持一致 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行 | bank\_id | 变长8位的String | 必须 | 具体见附件:开户银行代号 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行账号 | bank\_acct\_no | 变长32位的String | 必须 | 企业开户银行账号 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行支行名称 | bank\_branch | 变长100位String | 必须 | 企业开户银行的支行名称 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行省份 | bank\_prov | 定长4位String | 必须 | 银行卡开户省份 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 开户银行地区 | bank\_area | 定长4位String | 必须 | 银行卡开户地区 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 行业 | industry | 定长2位String | 可选 | 企业行业类别,具体见附件:行业 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +---------------------------+----------------------------+---------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ **控股股东(controlling\_shareholder)** +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+================+==================+================+=============================================================================================================================+ | 姓名 | name | 变长20位String | 必须 | | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 证件类型 | certType | 定长8位String | 必须 | 01020100:身份证 01020101:护照 01020102:军官证 01020103士兵证 01020104:回乡证 01020105警官证 01020106:台胞证 01020107:其他 | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 证件号码 | certId | 变长20位String | 必须 | 股东的证件号码,与证件类型对应 | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+========================+=====================+================+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为102 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 102000--调用成功,其他见返回码表 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 企业开户申请号 | apply\_id | 变长20 的String | 必须 | 由商户提供,申请企业开户的唯一标识 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 企业用户客户号 | user\_cust\_id | 定长16位String | 可选 | | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 变长16位的String | 必须 | 由汇付生成,商户的唯一标识号 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 企业名称 | corp\_name | 变长50位String | 必须 | 企业的公司全称 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 子账户号 | acct\_id | 变长9位String | 可选 | 基本户-支付账户 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 取现绑定银行卡ID | cash\_bind\_card\_id | 变长20位的String | 可选 | 取现接口需要用到此ID | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 审核状态 | audit\_status | 定长2位String | 必须 | 00:通过 01:待修改 02:拒绝 04:待审核 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 审核描述 | audit\_desc | 变长500位String | 可选 | | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "102", "mer_cust_id": "6666000000026086", "apply_id": "2000001hh43", "order_id": "2017569800043", "order_date": "20170228", "operate_type": "00090000", "corp_license_type": "01030100", "corp_type": "01030001", "corp_name": "全球黑科", "business_code": "a1225431204", "institution_code": "088100129", "tax_code": "a199945675", "social_credit_code": "", "license_start_date": "20160830", "license_end_date": "20190830", "corp_business_address": "上海市", "corp_reg_address": "上海杨北路", "corp_fixed_telephone": "021-12345678900", "business_scope": "上海市浦张杨", "controlling_shareholder": "[{\"name\":\"20条\",\"certType\":\"01020100\",\"certId\":\"370101197209143545\"}]", "legal_name": "球", "legal_cert_type": "01020100", "legal_cert_id": "140203195101011256", "legal_cert_start_date": "20150809", "legal_cert_end_date": "20190809", "legal_mobile": "15911115334", "contact_name": "科技球", "contact_mobile": "15911552132", "contact_email": "1234901234567890_.jo@qq.ne", "bank_acct_name": "全球黑科", "bank_id": "01030000", "bank_acct_no": "622253011203", "bank_branch": "支付", "bank_prov": "0031", "bank_area": "3100", "industry": "01", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "ret_url": "", "mer_priv": "test_priv", "extension": "test" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "102"; String merCustId = "6666000000026086"; String version = "10"; response.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(); out.println(""); out.println(""); out.println(" sender"); out.println(" "); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(""); out.flush(); out.close(); .. 成功响应: .. code:: json 200 { "cmd_id": "102", "resp_code": "102000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "102", "resp_code": "102304", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+--------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+--------------------------------------------------------+ | 102000 | 交易成功 | +-----------------------------------------------+--------------------------------------------------------+ | 102098 | 系统超时 | +-----------------------------------------------+--------------------------------------------------------+ | 102099 | 系统异常 | +-----------------------------------------------+--------------------------------------------------------+ | 102100 | 请求参数非法 | +-----------------------------------------------+--------------------------------------------------------+ | 102101 | 商户无此接口权限 | +-----------------------------------------------+--------------------------------------------------------+ | 102102 | 验证签名失败 | +-----------------------------------------------+--------------------------------------------------------+ | 102103 | 商户状态异常 | +-----------------------------------------------+--------------------------------------------------------+ | 102107 | 消息类型与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 102108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 102109 | 版本号与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 102110 | 商户号不存在 | +-----------------------------------------------+--------------------------------------------------------+ | 102201 | 页面数据被篡改 | +-----------------------------------------------+--------------------------------------------------------+ | 102202 | 交易订单号重复 | +-----------------------------------------------+--------------------------------------------------------+ | 102300 | 该企业证照类型与证照号不匹配 | +-----------------------------------------------+--------------------------------------------------------+ | 102301 | 该企业已开户 | +-----------------------------------------------+--------------------------------------------------------+ | 102302 | 未查询到原开户申请号 | +-----------------------------------------------+--------------------------------------------------------+ | 102303 | 该企业已申请开户 | +-----------------------------------------------+--------------------------------------------------------+ | 102304 | 该企业开户申请(已经通过/正在审核中/已被拒绝不能修改) | +-----------------------------------------------+--------------------------------------------------------+ | 102305 | 省份地区信息非法 | +-----------------------------------------------+--------------------------------------------------------+ | 102306 | 企业名称与开户银行账户名不相同 | +-----------------------------------------------+--------------------------------------------------------+ | 102307 | 营业执照注册号已被使用 | +-----------------------------------------------+--------------------------------------------------------+ | 102308 | 统一社会信用代码已被使用 | +-----------------------------------------------+--------------------------------------------------------+ | 102309 | 该企业已有正在处理的开户申请或已开户成功 | +-----------------------------------------------+--------------------------------------------------------+ | 102310 | 行业非法 | +-----------------------------------------------+--------------------------------------------------------+ | 102311 | 上传失败,文件大小超过5M | +-----------------------------------------------+--------------------------------------------------------+ | 102312 | 上传失败,不支持该文件格式 | +-----------------------------------------------+--------------------------------------------------------+ | 102313 | 上传失败,文件数量超过限制 | +-----------------------------------------------+--------------------------------------------------------+ | 102314 | 文件上传失败,请稍后重试 | +-----------------------------------------------+--------------------------------------------------------+ | 102315 | 操作超时,请重试 | +-----------------------------------------------+--------------------------------------------------------+ | 102316 | 文件信息不匹配 | +-----------------------------------------------+--------------------------------------------------------+ | 102317 | 开户申请提交失败,数据异常 | +-----------------------------------------------+--------------------------------------------------------+ | 102319 | 文件数据异常 | +-----------------------------------------------+--------------------------------------------------------+ 企业开户申请接口(后台版) ---------------- 功能说明 ~~~~~~~~~~~~ 用于在本平台系统下为企业用户开设专属账户 调用方式:系统调用 接口方式:同步 请求参数 ~~~~~~~~~~~~~~ +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +===========================+============================+=====================+================+======================================================================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为125 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一标识号 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业开户申请号 | apply\_id | 变长20 的String | 必须 | 由商户提供,申请企业开户的唯一标识 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作类型 | operate\_type | 定长8位String | 必须 | 00090000 新增 00090001 修改 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业证照类型 | corp\_license\_type | 定长8位String | 必须 | 01030100.普通营业执照企业 01030101.三证合一企业 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业类型 | corp\_type | 定长8位String | 必须 | 01030000.普通企业 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业名称 | corp\_name | 变长50位String | 必须 | 企业的公司全称 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 营业执照注册号 | 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 | 必须 | 企业的营业证照结束日期,精确到年月日,支持“永久” | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业经营地址 | corp\_business\_address | 变长250位字符串 | 必须 | 企业的经营地址 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业注册地址 | corp\_reg\_address | 变长250位字符串 | 必须 | 企业的注册地址 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业固定电话 | corp\_fixed\_telephone | 变长15位字符串 | 必须 | 企业的固定电话 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 经营范围 | business\_scope | 变长1000位字符串 | 必须 | 企业的经营范围 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 控股股东 (实际控制人) | controlling\_shareholder | 变长3000位字符串 | 可选 | 数据格式:[{"name":"关羽","certType":"01","certId":"330204199008187881"}] | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人姓名 | legal\_name | 变长20位String | 必须 | 企业的法人姓名 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件类型 | legal\_cert\_type | 定长8位String | 必须 | 01020100:身份证 01020101:护照 01020102:军官证 01020103士兵证 01020104:回乡证 01020105警官证 01020106:台胞证 01020107:其他 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件号码 | legal\_cert\_id | 变长20位String | 必须 | 法人的证件号码,与证件类型对应 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件起始日期 | legal\_cert\_start\_date | 定长8 位String | 必须 | 法人的证件起始日期,精确到年月日 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件起始日期 | legal\_cert\_end\_date | 定长8 位String | 必须 | 法人的证件结束日期,精确到年月日,支持“永久” | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 法人手机号码 | legal\_mobile | 定长11位String | 必须 | 法人的手机号码 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 企业联系人姓名 | contact\_name | 变长50位String | 必须 | 企业联系人的姓名 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 联系人手机号 | contact\_mobile | 定长11为String | 必须 | 联系人的手机号码 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 联系人邮箱 | contact\_email | 变长40位的String | 必须 | 联系人的邮箱地址 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行账户名 | bank\_acct\_name | 变长50位的String | 必须 | 企业开户银行账户名,需与企业名称保持一致 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行 | bank\_id | 变长8位的String | 必须 | 具体见附件:开户银行代号 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行账号 | bank\_acct\_no | 变长32位的String | 必须 | 企业开户银行账号 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行支行名称 | bank\_branch | 变长100位String | 必须 | 企业开户银行的支行名称 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行省份 | bank\_prov | 定长4位String | 必须 | 银行卡开户省份 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行地区 | bank\_area | 定长4位String | 必须 | 银行卡开户地区 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 附件编号列表 | attach\_nos | 变长210位的String | 必须 | 商户文件上传接口(122)的附件编号列表,多个附件编号之间用逗号隔开,如:abc123或者abc123,abc1234,需要的文件类型(法定代表人证件(正反面),开户银行许可证,统一社会信用代码,其他) | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 行业 | industry | 定长2位String | 可选 | 企业行业类别,具体见附件:行业 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +---------------------------+----------------------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ **控股股东(controlling\_shareholder)** +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+================+==================+================+=============================================================================================================================+ | 姓名 | name | 变长20位String | 必须 | | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 证件类型 | certType | 定长8位String | 必须 | 01020100:身份证 01020101:护照 01020102:军官证 01020103士兵证 01020104:回乡证 01020105警官证 01020106:台胞证 01020107:其他 | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ | 证件号码 | certId | 变长20位String | 必须 | 股东的证件号码,与证件类型对应 | +--------------------+----------------+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+========================+=====================+================+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为125 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 125000--调用成功,其他见返回码表 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 企业开户申请号 | apply\_id | 变长20 的String | 必须 | 由商户提供,申请企业开户的唯一标识 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 变长16位的String | 必须 | 由汇付生成,商户的唯一标识号 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 企业名称 | corp\_name | 变长50位String | 必须 | 企业的公司全称 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 审核状态 | audit\_status | 定长2位String | 必须 | 00:通过 01:待修改 02:拒绝 04:待审核 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 审核描述 | audit\_desc | 变长500位String | 可选 | | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 返参扩展域 | extension | 变长512位的String | 可选 | | +--------------------+------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java package com.huifu.zeusClient.webapp.controller.zeus; 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 jodd.http.HttpRequest; import jodd.http.HttpResponse; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import java.io.File; import java.net.URLEncoder; import java.nio.charset.Charset; /** * Function : 企业开户申请 * Date : 2018年9月26日 下午4:45:53 */ public class CreateMerUserMain { // 地址可以询问对方运营 public static String TEST_FILE_URL = "http://localhost:8087/service-provider/fileMerchantRequest"; public static String TEST_URL = "http://localhost:8087/service-provider/merchantRequest"; // 加签用pfx文件 public static String PFX_FILE_NAME = "888888-NEW.pfx"; // 加签用密码 public static String PFX_FILE_PWD = "123456"; //商户号 public static String MER_CUST_ID = "6666000000026086"; //文件可以询问对方运营 public static String CER_NAME = "CFCA_ACS_TEST_OCA31.cer"; public static String VERSION = "10"; public static String CHARSET = "UTF-8"; public static void main(String[] args) { String attachNos = "c1454422338,c1454422339"; //企业开户申请 createMerUser(attachNos); } /** * 企业开户申请 * * @param attachNos */ public static void createMerUser(String attachNos) { String controllingShareholder = "[{\"certId\":\"37010119720914\",\"certType\":\"01020101\",\"name\":\"测试\"}]"; String applyId = "2018096235h62"; String orderId = "20160916351168"; String socialCreditCode = "344451111561313162"; String valueObj = "{\"version\":\"10\",\"cmd_id\":\"125\",\"mer_cust_id\":\"" + MER_CUST_ID + "\",\"apply_id\":\"" + applyId + "\",\"order_id\":\"" + orderId + "\",\"order_date\":\"20180824\",\"operate_type\":\"00090000\",\"corp_license_type\":\"01030101\",\"corp_type\":\"01030000\",\"corp_name\":\"全球黑科\",\"business_code\":\"\",\"institution_code\":\"\",\"tax_code\":\"\",\"social_credit_code\":\"" + socialCreditCode + "\",\"license_start_date\":\"20160830\",\"license_end_date\":\"20190830\",\"corp_business_address\":\"上海市\",\"corp_reg_address\":\"上海市张杨北路\",\"corp_fixed_telephone\":\"021-12345678900\",\"business_scope\":\"上海市浦张杨\",\"controlling_shareholder\":" + controllingShareholder + ",\"legal_name\":\"球\",\"legal_cert_type\":\"01020100\",\"legal_cert_id\":\"330101196305011153\",\"legal_cert_start_date\":\"20150809\",\"legal_cert_end_date\":\"20190809\",\"legal_mobile\":\"15911115334\",\"contact_name\":\"科技球\",\"contact_mobile\":\"15911112132\",\"contact_email\":\"123456789012345678901234567890_.jo@qq.ne\",\"bank_acct_name\":\"全球黑科\",\"bank_id\":\"01030000\",\"bank_acct_no\":\"622253011203\",\"bank_branch\":\"支付\",\"bank_prov\":\"0031\",\"bank_area\":\"3100\",\"industry\":\"01\",\"mer_priv\":\"test_priv\",\"extension\":\"test\",\"attach_nos\":\"" + attachNos + "\",\"bg_ret_url\":\"http://123.com\"}"; // 进行base64转换 String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes(Charset.forName("utf-8"))); // 加签 SignResult signResult = CFCASignature.signature("F:/app/" + PFX_FILE_NAME, PFX_FILE_PWD, base64RequestParams, "utf-8"); if (!"000".equals(signResult.getCode())) { System.out.println("加签错误"); return; } String checkValue = signResult.getSign(); String cmdId = "125"; String contentType = "application/x-www-form-urlencoded"; String postStr = "cmd_id=" + cmdId + "&version=" + VERSION + "&mer_cust_id=" + MER_CUST_ID + "&check_value=" + checkValue; HttpRequest httpRequest = HttpRequest.post(TEST_URL).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, "F:/app/" + CER_NAME); 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); } } .. 返回码 ~~~~~~~~~ +-----------------------------------------------+--------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+--------------------------------------------------------+ | 125000 | 交易成功 | +-----------------------------------------------+--------------------------------------------------------+ | 125098 | 系统超时 | +-----------------------------------------------+--------------------------------------------------------+ | 125099 | 系统异常 | +-----------------------------------------------+--------------------------------------------------------+ | 125100 | 请求参数非法 | +-----------------------------------------------+--------------------------------------------------------+ | 125101 | 商户无此接口权限 | +-----------------------------------------------+--------------------------------------------------------+ | 125102 | 验证签名失败 | +-----------------------------------------------+--------------------------------------------------------+ | 125103 | 商户状态异常 | +-----------------------------------------------+--------------------------------------------------------+ | 125107 | 消息类型与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 125108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 125109 | 版本号与签名内容不一致 | +-----------------------------------------------+--------------------------------------------------------+ | 125110 | 商户号不存在 | +-----------------------------------------------+--------------------------------------------------------+ | 125201 | 页面数据被篡改 | +-----------------------------------------------+--------------------------------------------------------+ | 125202 | 交易订单号重复 | +-----------------------------------------------+--------------------------------------------------------+ | 125300 | 该企业证照类型与证照号不匹配 | +-----------------------------------------------+--------------------------------------------------------+ | 125301 | 该企业已开户 | +-----------------------------------------------+--------------------------------------------------------+ | 125302 | 未查询到原开户申请号 | +-----------------------------------------------+--------------------------------------------------------+ | 125303 | 该企业已申请开户 | +-----------------------------------------------+--------------------------------------------------------+ | 125304 | 该企业开户申请(已经通过/正在审核中/已被拒绝不能修改) | +-----------------------------------------------+--------------------------------------------------------+ | 125305 | 省份地区信息非法 | +-----------------------------------------------+--------------------------------------------------------+ | 125306 | 企业名称与开户银行账户名不相同 | +-----------------------------------------------+--------------------------------------------------------+ | 125307 | 营业执照注册号已被使用 | +-----------------------------------------------+--------------------------------------------------------+ | 125308 | 统一社会信用代码已被使用 | +-----------------------------------------------+--------------------------------------------------------+ | 125309 | 该企业已有正在处理的开户申请或已开户成功 | +-----------------------------------------------+--------------------------------------------------------+ | 125310 | 行业非法 | +-----------------------------------------------+--------------------------------------------------------+ | 125311 | 上传失败,文件大小超过5M | +-----------------------------------------------+--------------------------------------------------------+ | 125312 | 上传失败,不支持该文件格式 | +-----------------------------------------------+--------------------------------------------------------+ | 125313 | 上传失败,文件数量超过限制 | +-----------------------------------------------+--------------------------------------------------------+ | 125314 | 文件上传失败,请稍后重试 | +-----------------------------------------------+--------------------------------------------------------+ | 125315 | 操作超时,请重试 | +-----------------------------------------------+--------------------------------------------------------+ | 125316 | 文件信息不匹配 | +-----------------------------------------------+--------------------------------------------------------+ | 125317 | 开户申请提交失败,数据异常 | +-----------------------------------------------+--------------------------------------------------------+ | 125319 | 文件数据异常 | +-----------------------------------------------+--------------------------------------------------------+ | 125321 | 文件已被使用 | +-----------------------------------------------+--------------------------------------------------------+ 代理商商户开户接口 -------------- 功能说明 ~~~~~~~~~~~~ 用于代理商在本平台系统下为旗下商户开户 调用方式:系统调用 - 准备工作:商户开户前先调用 文件上传接口_ 上传图片资料,资料包含:地址照片、门头照片、经营照片、统一社会信用代码照片、营业执照照片、组织机构代码证照片 、税务登记证照片、其他补充材料、法人身份证正面、法人身份证反面、银行开户许可证照片、电子协议; - 备注:目前图片只支持 jpg 格式,其他资料请压缩为 zip 文件上传; .. _文件上传接口: query.html#id63 请求参数 ~~~~~~~~~~~~~~ +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+==================================+=====================+============+=====================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为120 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 传代理商ID | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户全称 | mer\_name | 变长50位String | 必须 | 商户全称(同银行账户名称) | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户简称 | mer\_short\_name | 变长25位String | 必须 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户英文名 | mer\_en\_name | 变长25位String | 可选 | 简称的首字母拼音缩写 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 注册资本(元) | reg\_fund | 变长14位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 实缴资本(元) | paid\_in\_fund | 变长14位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 网站地址 | mer\_website | 变长200位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | ICP备案号 | per\_icp\_code | 变长50位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 成立时间 | est\_date | 定长8位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户所在省份 | mer\_prov | 定长4位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户所在地区 | mer\_area | 定长4位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户经营地址 | mer\_addr | 变长256位String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户注册地址 | mer\_reg\_addr | 变长256位String | 必须 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 证照类型 | license\_type | 定长8位String | 必须 | "普通企业"," 01030100 " "三证合一"," 01030101 " | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 营业执照注册号 | business\_code | 变长30位String | 可选 | 商户的营业执照注册号 非三证合一必填 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 组织机构代码 | institution\_code | 变长9位String | 可选 | 商户的组织机构代码证 非三证合一必填 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 税务登记号 | tax\_code | 变长30位String | 可选 | 商户的税务登记号 非三证合一必填 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 统一社会信用代码 | social\_credit\_code | 变长30位String | 可选 | 商户的统一社会信用代码 (三证合一必填) | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 证照有效起始日期 | license\_start\_date | 定长8位String | 可选 | 精确到年月日,如19701212 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 证照有效结束日期 | license\_end\_date | 定长8位String | 可选 | 精确到年月日,如19701212,支持“永久” | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 经营范围 | business\_scope | 变长1000位String | 可选 | 商户的经营范围 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 股东 | stockholders | 变长3000位String | 可选 | 数据格式:[{"name":"关羽","certType":"01","certId":"330204199008187881"}] | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人姓名 | legal\_name | 变长50位String | 必须 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件类型 | legal\_cert\_type | 定长8位String | 必须 | 01020100:身份证(默认) 01020101:护照 01020102:军官证 01020103士兵证 01020104:回乡证 01020105警官证 01020106:台胞证 01020107:其他 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件号 | legal\_cert\_id | 变长30位String | 必须 | 法人的证件号码,与证件类型对应 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件起始日期 | legal\_id\_start\_date | 变长8位String | 可选 | 精确到年月日,如19701212 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人证件结束日期 | legal\_id\_end\_date | 变长8位String | 可选 | 精确到年月日,如19701212,支持“永久” | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 法人手机号 | legal\_mobile | 变长11位String | 必须 | 法人的手机号码 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 联系人姓名 | contact\_name | 变长50位String | 必须 | 联系人的姓名 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 联系人手机号 | contact\_mobile | 变长11位String | 必须 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 联系人邮箱 | contact\_email | 变长50位String | 必须 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行 | bank\_id | 变长8位String | 可选 | 具体见附件:开户银行代号 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行账号 | bank\_acct\_no | 变长32位String | 可选 | 商户开户银行账号 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行支行名称 | bank\_branch | 变长80位String | 可选 | 商户开户银行的支行名称 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行省份 | bank\_prov | 定长4位String | 可选 | 银行卡开户省份 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 开户银行地区 | bank\_area | 定长4位String | 可选 | 银行卡开户地区 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 附件编号列表 | attach_nos | 变长260位String | 可选 | 商户文件上传接口(122)的附件编号列表,多个附件编号之间用逗号隔开,如:abc123或者abc123,abc1234 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +------------------------+----------------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为120 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 120000--调用成功,其他见返回码表 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 可选 | 返回码的对应中文描述 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 代理商ID | agent\_id | 变长16 的String | 必须 | 由商户提供,代理商唯一标识 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 审核状态 | audit\_status | 定长2位String | 必须 | 00:通过 01:待修改 02:拒绝 04:待审核 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 审核描述 | audit\_desc | 变长500位String | 可选 | | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ | 返参扩展域 | extension | 变长512位的String | 可选 | | +--------------------+-----------------+---------------------+------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java package com.huifu.zeusClient.webapp.controller.zeus; 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 jodd.http.HttpRequest; import jodd.http.HttpResponse; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import java.io.File; import java.net.URLEncoder; import java.nio.charset.Charset; /** * Function : 代理商开户测试 * Date : 2018年9月26日 下午4:45:53 */ public class CreateMerUserMain { // 地址可以询问对方运营 public static String TEST_FILE_URL = "http://localhost:8087/service-provider/fileMerchantRequest"; public static String TEST_URL = "http://localhost:8087/service-provider/merchantRequest"; // 加签用pfx文件 public static String PFX_FILE_NAME = "888888-NEW.pfx"; // 加签用密码 public static String PFX_FILE_PWD = "123456"; //商户号 public static String MER_CUST_ID = "6666000000026086"; //文件可以询问对方运营 public static String CER_NAME = "CFCA_ACS_TEST_OCA31.cer"; public static String VERSION = "10"; public static String CHARSET = "UTF-8"; public static void main(String[] args) { String attachNos = "c1454422338,c1454422339"; //上传附件 uploadFile(attachNos); //代理商开户---同类型附件最多只能有一个 //createAgentUser(attachNos); } /** * 商户附件上传 * * @param attachNos */ public static void uploadFile(String attachNos) { if (StringUtils.isNotBlank(attachNos)) { String[] attachNoList = attachNos.split(","); for (String attachNo : attachNoList) { //循环上传附件 uploadFileMain(attachNo); try { //测试环境,休眠一会再上传;正式环境不需要 Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } } public static void uploadFileMain(String attachNo) { String valueObj = "{\"version\":\"10\",\"cmd_id\":\"122\",\"mer_cust_id\":\"" + MER_CUST_ID + "\",\"attach_no\":\"" + attachNo + "\",\"trans_type\":\"01\",\"attach_type\":\"05\",\"extension\":\"1\"}"; // 进行base64转换 String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes(Charset.forName("utf-8"))); // 加签 SignResult signResult = CFCASignature.signature("F:/app/" + PFX_FILE_NAME, PFX_FILE_PWD, base64RequestParams, "utf-8"); if (!"000".equals(signResult.getCode())) { System.out.println("加签错误"); return; } String checkValue = signResult.getSign(); String cmdId = "122"; //如果文件名称中有中文,请先使用URLEncoder.encode(filename, "UTF-8")对文件名编码 File newFile = new File("C:\\Users\\hao.sun\\Desktop\\0.png"); HttpRequest httpRequest = HttpRequest.post(TEST_FILE_URL).charset(CHARSET); HttpResponse httpResponse = httpRequest.contentType("multipart/form-data").form( "cmd_id", cmdId, "version", VERSION, "mer_cust_id", MER_CUST_ID, "check_value", checkValue, "attach_file", newFile).send(); String body = httpResponse.bodyText(); // 响应解密 验签失败 JSONObject jsonObject = JSON.parseObject(body); String sign = jsonObject.getString("check_value"); VerifyResult verifyResult = CFCASignature.verifyMerSign("100001", sign, CHARSET, "F:/app/" + CER_NAME); 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); } /** * 代理商开户申请 * * @param attachNos */ public static void createAgentUser(String attachNos) { String socialCreditCode = "344452111561313162"; String valueObj = "{\"version\":\"10\",\"cmd_id\":\"120\",\"mer_cust_id\":\"6666000000026086\",\"mer_name\":\"代理商商户测试\",\"mer_short_name\":\"商户简称\",\"mer_en_name\":\"我爱你中国\",\"reg_fund\":\"10000000000000\",\"paid_in_fund\":\"90000000000000\",\"mer_website\":\"www.baidu.com\",\"per_icp_code\":\"dhfdshfhsdfsd\",\"est_date\":\"20160512\",\"mer_prov\":\"0011\",\"mer_area\":\"1100\",\"mer_addr\":\"无法adfdf\",\"mer_reg_addr\":\"普通商户注册地\",\"license_type\":\"01030101\",\"business_code\":\"\",\"institution_code\":\"\",\"tax_code\":\"\",\"social_credit_code\":\""+socialCreditCode+"\",\"license_start_date\":\"20120612\",\"license_end_date\":\"20190612\",\"business_scope\":\"fdksfhsdkfggfg\",\"stockholders\":\"fdksfhsdkfggfg\",\"legal_name\":\"张大庄\",\"legal_cert_type\":\"01020100\",\"legal_cert_id\":\"020103197101062287\",\"legal_id_start_date\":\"20111220\",\"legal_id_end_date\":\"21111220\",\"legal_mobile\":\"15811111111\",\"contact_name\":\"测试sh\",\"contact_mobile\":\"15911111111\",\"contact_email\":\"15911111111@163.com\",\"bank_acct_no\":\"6217001257387383\",\"bank_branch\":\"gfdgfdg\",\"bank_prov\":\"0012\",\"bank_area\":\"1200\",\"addr_fileid\":\"\",\"gate_fileid\":\"\",\"manage_fileid\":\"\",\"social_credit_code_fileid\":\"\",\"business_license_fileid\":\"\",\"org_code_fileid\":\"\",\"tax_reg_fileid\":\"\",\"other_data_fileid\":\"\",\"legal_license_fileid1\":\"\",\"legal_license_fileid2\":\"\",\"bank_acct_open_lice_fileid\":\"\",\"elec_protocol_fileid\":\"\",\"bg_ret_url\":\"http://192.168.0.74:8001/npayCallBack/asyncHandle.json\",\"mer_priv\":\"\",\"extension\":\"\",\"attach_nos\":\""+attachNos+"\"}"; // 进行base64转换 String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes(Charset.forName("utf-8"))); // 加签 SignResult signResult = CFCASignature.signature("F:/app/" + PFX_FILE_NAME, PFX_FILE_PWD, base64RequestParams, "utf-8"); if (!"000".equals(signResult.getCode())) { System.out.println("加签错误"); return; } String checkValue = signResult.getSign(); String cmdId = "120"; String contentType = "application/x-www-form-urlencoded"; String postStr = "cmd_id=" + cmdId + "&version=" + VERSION + "&mer_cust_id=" + MER_CUST_ID + "&check_value=" + checkValue; HttpRequest httpRequest = HttpRequest.post(TEST_URL).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, "F:/app/" + CER_NAME); 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); } } .. 返回码 ~~~~~~~~~ +-------------------------------------+--------------------------------------------------------------------------------------+ | **代理商商户开户(cmd\_id=120)** | | +=====================================+======================================================================================+ | 120000 | 交易成功 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120098 | 系统超时 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120099 | 系统异常 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120100 | 请求参数非法 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120101 | 商户无此接口权限 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120102 | 验证签名失败 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120103 | 商户状态异常 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120107 | 消息类型与签名内容不一致 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120108 | 商户客户号与签名内容不一致 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120109 | 版本号与签名内容不一致 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120110 | 商户号不存在 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120300 | 该企业证照类型与证照号不匹配 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120305 | 省份地区信息非法 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120321 | 代理商配置信息不存在 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120322 | 商户开户请求异常 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120323 | 商户名称与开户银行账户名不一致 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120324 | 更新附件状态异常 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120325 | 该商户名称已使用 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120326 | 该商户名称简称已使用 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120327 | 该商户邮箱已被使用 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120328 | 营业执照注册号已被使用(或"统一社会信用代码已被使用") | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120329 | 联系人手机号不正确 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120330 | 联系人邮箱不正确 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120331 | 法人证件号不正确 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120332 | 法人手机号不正确 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120333 | 开户银行帐号不正确(或"证照图片异常,请先上传证照再处理") | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120334 | 保存请求数据失败 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120335 | 联系人手机号邮箱不允许都为空 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120336 | 调用账管家"商户与分销商关系新增"接口失败 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120337 | 商户信息不存在 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120338 | 开户审核拒绝 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120339 | 开户银行ID不存在 | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120340 | 银行卡号不正确(或"请联系管理员,配置SFTP服务!") | +-------------------------------------+--------------------------------------------------------------------------------------+ | 120341 | 新增开发者用户商户关系失败 | +-------------------------------------+--------------------------------------------------------------------------------------+ 个体户证照上传接口 ------------------ 功能说明 ~~~~~~~~~~~~ 用于个体户上传营业执照等附件 调用方式:页面浏览器 请求参数 ~~~~~~~~~~~~~~ +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==================+=====================+================+===================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为107 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 个体户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,个体户用户的唯一性标识 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 操作类型 | operate\_type | 定长8位String | 必须 | 00090000 新增 00090001 修改 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 营业执照号 | business\_code | 变长30位的String | 必须 | 个体工商户营业执照注册号 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户证照上传结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==================+=====================+================+=======================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为107 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 107000--调用成功,其他见返回码表 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 个体户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 营业执照号 | business\_code | 变长30位的String | 必须 | 个体工商户营业执照注册号 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户证照上传结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址结果 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 操作类型 | operate\_type | 定长8位String | 必须 | 00090000 新增 00090001 修改 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+------------------+---------------------+----------------+---------------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "107", "mer_cust_id": "6666000000026086", "user_cust_id": "6666000000026170", "order_id": "2000010001", "order_date": "20180816", "operate_type": "00090000 ", "business_code": "2222500001", "ret_url": "", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "test_mer_priv", "extension": "test_extension" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "107"; String merCustId = "6666000000026086"; String version = "10"; httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); PrintWriter out = httpServletResponse.getWriter(); out.println(); out.println(""); out.println(""); out.println(" sender"); out.println(" "); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(""); out.flush(); out.close(); .. 成功响应: .. code:: json 200 { "cmd_id": "107", "resp_code": "107000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "107", "resp_code": "107304", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 107000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 107098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 107099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 107100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 107101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 107102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 107103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 107104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 107107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 107108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 107109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 107110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 107202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 107300 | 个体户认证文件上传成功 | +-----------------------------------------------+------------------------------------------------------+ | 107301 | 个体户认证文件上传失败 | +-----------------------------------------------+------------------------------------------------------+ | 107303 | 该个体户已经通过认证 | +-----------------------------------------------+------------------------------------------------------+ | 107305 | 营业执照注册号已被使用 | +-----------------------------------------------+------------------------------------------------------+ | 107306 | 审核状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 107311 | 上传失败,文件大小超过5M | +-----------------------------------------------+------------------------------------------------------+ | 107312 | 上传失败,不支持该文件格式 | +-----------------------------------------------+------------------------------------------------------+ | 107313 | 上传失败,文件数量超过限制 | +-----------------------------------------------+------------------------------------------------------+ | 107314 | 文件上传失败,请稍后重试 | +-----------------------------------------------+------------------------------------------------------+ | 107315 | 操作超时,请重试 | +-----------------------------------------------+------------------------------------------------------+ | 107319 | 文件数据异常 | +-----------------------------------------------+------------------------------------------------------+ | 107320 | 文件下载失败,未找到对应的文件 | +-----------------------------------------------+------------------------------------------------------+ 个体户信息补录接口 ------------------ 功能说明 ~~~~~~~~~~~~ 用于补录个体户的住址,职业等信息 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==================+=====================+================+==========================================================+ | 版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为109 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位的String | 必须 | 商户的唯一标识 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位的String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 住址 | cust\_address | 变长250位String | 必须 | 填写证件上的住址 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 职业 | occupation | 定长2位String | 必须 | 见个人职业分类表 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==================+=====================+================+==========================================================+ | 消息类型 | cmd\_id | 变长String | 必须 | 每一种消息类型代表一种交易,此处为109 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 返回码 | resp\_code | 变长String | 必须 | 109000--调用成功,其他见返回码表 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 结果描述 | resp\_desc | 变长String | 必须 | 返回描述 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 变长16位的String | 必须 | | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 变长16位的String | 必须 | | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +--------------------+------------------+---------------------+----------------+----------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "109", "mer_cust_id": "6666000001382190", "user_cust_id": "6666000003904414", "cust_address": "1142shangh", "occupation": "10", "mer_priv": "123456", "extension": "123456" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "109"; String merCustId = "6666000001382190"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "109", "resp_code": "109000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "109", "resp_code": "109304", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 109000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 109098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 109099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 109100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 109101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 109102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 109103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 109104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 109107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 109108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 109109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 109110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 109111 | 用户客户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 109300 | 个体户信息补录完成 | +-----------------------------------------------+------------------------------------------------------+ | 109301 | 该个体户不存在 | +-----------------------------------------------+------------------------------------------------------+ | 109302 | 该个体户已补录完毕 | +-----------------------------------------------+------------------------------------------------------+ 创建子账户接口 -------------- 功能说明 ~~~~~~~~~~~~ 调用该接口为商户/用户创建子账户 请求参数 ~~~~~~~~~~~~~~ +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +================+==================+====================+============+===========================================================================================+ | 版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为121 | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位的String | 必须 | 商户的唯一标识 | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位的String | 必须 | 用户的唯一标识; | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 账户类型 | acct\_type | 定长2位string | 可选 | 00:基本支付账户; 01:基本非支付账户; 02:手续费账户; 05:专用资金账户; **不填默认01;** | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ | 账户名称 | acct\_name | 变长32位String | 可选 | | +----------------+------------------+--------------------+------------+-------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~ +----------------+------------------+--------------------+------------+-----------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +================+==================+====================+============+=========================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为121 | +----------------+------------------+--------------------+------------+-----------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 121000—成功 , 其他见返回码表 | +----------------+------------------+--------------------+------------+-----------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +----------------+------------------+--------------------+------------+-----------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +----------------+------------------+--------------------+------------+-----------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位的String | 必须 | 用户的唯一标识; | +----------------+------------------+--------------------+------------+-----------------------------------------+ | 账户号 | acct\_id | 变长9位String | 可选 | | +----------------+------------------+--------------------+------------+-----------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{"version":"10","cmd_id":"121","mer_cust_id":"6666000000076596","user_cust_id":"6666000000076598","acct_type":"01","acct_name":"user非支付账户"}"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "121"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "121", "resp_code": "121000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "121", "resp_code": "121099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+---------------------------------------------------------+ | **添加子账户(cmd\_id=121)** | | +-----------------------------------------------+---------------------------------------------------------+ | 121000 | 交易成功 | +-----------------------------------------------+---------------------------------------------------------+ | 121003 | 交易失败 | +-----------------------------------------------+---------------------------------------------------------+ | 121099 | 系统异常 | +-----------------------------------------------+---------------------------------------------------------+ | 121100 | 请求参数非法 | +-----------------------------------------------+---------------------------------------------------------+ | 121101 | 商户无此接口权限 | +-----------------------------------------------+---------------------------------------------------------+ | 121102 | 验证签名失败 | +-----------------------------------------------+---------------------------------------------------------+ | 121103 | 商户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 121104 | 用户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 121107 | 消息类型与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 121108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 121109 | 版本号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 121110 | 商户号不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 121310 | 产品信息校验失败 | +-----------------------------------------------+---------------------------------------------------------+ | 121300 | 客户号不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 121301 | 调用PA子账户开户失败 | +-----------------------------------------------+---------------------------------------------------------+ | 121302 | 子账户信息不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 121303 | 调用PA子账户修改失败 | +-----------------------------------------------+---------------------------------------------------------+ | 121304 | 不允许创建该类型的子账户 | +-----------------------------------------------+---------------------------------------------------------+ | 121305 | 子账户数已超过最大限制 | +-----------------------------------------------+---------------------------------------------------------+ 二级商户录入接口 ---------------- 功能说明 ~~~~~~~~~~~~ 使用该接口二级商户录入操作; 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +--------------------+------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+========================+=====================+============+=======================================================================================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 固定为10 | +--------------------+------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为814 | +--------------------+------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | 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 | 可选 | 用于扩展请求参数 | +--------------------+------------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~ +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +================+======================+=====================+============+===================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为814 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 814000--调用成功,其他见返回码表 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 二级商户号 | sub\_mer\_cust\_id | 变长20位String | 可选 | 二级商户号, 20位内数字或字母的组合,录入成功(返回码:000)时必返 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位 String | 必须 | 格式为YYYYMMDD,例如:20160307 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位 String | 必须 | 由商户生成,必须保证唯一,20位内数字或字母的组合 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 平台流水号 | platform\_seq\_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号,录入成功(返回码:000)时必返 | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回。注意:如参数中包含中文,应对参数进行Base64加密后再使用. | +----------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "814", "mer_cust_id": "6666000000026086", "order_date": "20180816", "order_id": "2018081616035656", "sub_mer_cust_name": "贸负", "bg_ret_url": "http://192.168.0.70:8081/asharp/acceptbgret/virgo", "mer_priv": "test_mer_priv", "extension": "test_textension" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "814"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "814", "resp_code": "814000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 成功响应: .. code:: json 200 { "cmd_id": "814", "resp_code": "814099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+---------------------------------------------------------+ | **二级商户录入(cmd\_id=814)** | | +-----------------------------------------------+---------------------------------------------------------+ | 814000 | 交易成功 | +-----------------------------------------------+---------------------------------------------------------+ | 814099 | 系统异常 | +-----------------------------------------------+---------------------------------------------------------+ | 814100 | 请求参数非法 | +-----------------------------------------------+---------------------------------------------------------+ | 814101 | 商户无此接口权限 | +-----------------------------------------------+---------------------------------------------------------+ | 814202 | 交易订单号重复 | +-----------------------------------------------+---------------------------------------------------------+ | 814103 | 商户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 814104 | 用户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 814107 | 消息类型与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 814108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 814109 | 版本号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 814213 | 不支持二级商户号 | +-----------------------------------------------+---------------------------------------------------------+ | 814215 | 二级商户名已存在 | +-----------------------------------------------+---------------------------------------------------------+ | 814202 | 交易订单号重复 | +-----------------------------------------------+---------------------------------------------------------+ 独立验卡接口 ------------ 功能说明 ~~~~~~~~~~~~ 用于提供给商户独立验卡的服务 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +======================+=================+=====================+================+===============================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为106 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 身份证号 | cert\_id | 变长18位String | 必须 | 用户的身份证号 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 银行卡卡绑定手机号 | card\_mp | 定长11位String | 可选 | 四要素验卡非空 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 借贷标记 | dc\_flag | 定长1位String | 必须 | 0--借记,储蓄卡 1--贷记,信用卡 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 银行卡开户姓名 | card\_name | 变长50位String | 必须 | | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 定长8位String | 必须 | 具体见附件:开户银行代号 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 校验类型 | check\_type | 定长1位String | 必须 | 0 四要素验证 1 三要素验证 2 两要素验卡··· | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户验卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +----------------------+-----------------+---------------------+----------------+-------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +========================+=====================+=====================+================+===================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为106 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 106000--调用成功,其他见返回码表 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户唯一标识号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一,20位内的字母或数字组合 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+10位系统流水号 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户验卡结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址结果 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "106", "mer_cust_id": "6666000000026086", "order_id": "22001151", "order_date": "20180508", "cert_id": "330183199308303977", "card_mp": "13666666666", "card_no": "6203022152210359", "card_name": "中建设", "check_type": "0", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "", "extension": "", "dc_flag": "0", "bank_id": "01020000" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "106"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "106", "resp_code": "106000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "106", "resp_code": "106304", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 106000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 106002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 106003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 106098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 106099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 106100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 106101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 106102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 106103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 106107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 106108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 106109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 106110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 106202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 106300 | 该商户未配置验卡手续费信息 | +-----------------------------------------------+------------------------------------------------------+ | 106302 | 调用PA账户信息查询失败 | +-----------------------------------------------+------------------------------------------------------+ | 106303 | 余额不足 | +-----------------------------------------------+------------------------------------------------------+ | 106304 | 该商户未配置验卡路由编号 | +-----------------------------------------------+------------------------------------------------------+ | 106218 | 暂时不支持贷记卡 | +-----------------------------------------------+------------------------------------------------------+ | 106306 | 银行卡号与银行不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 106307 | 银行卡类型错误 | +-----------------------------------------------+------------------------------------------------------+ 无卡收款绑卡短信接口 ------------ 功能说明 ~~~~~~~~~~~~ 供商户无卡收款的绑卡流程的一阶段短信发送 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+======================+=====================+============================+===============================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为130 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 验卡类型 | card\_verify\_type | 定长2位String | 必须 | 快捷绑卡: 02 消费分期代扣绑卡: 03 非消费分期代扣绑卡: 04 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 变长8位String | 可选 | 具体见附件:开户银行代号 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 借贷标记 | dc\_flag | 定长1位String | 必须 | 0--借记,储蓄卡 1--贷记,信用卡 2--准贷记卡 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | 本次快捷绑卡待绑定的银行卡号 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 银行预留手机号 | card\_ mobile | 变长11位String | 必须 | 本次快捷绑卡待绑定的银行卡,在银行开户时的预留手机号 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 卡姓名 | card\_name | 变长120位String | 可选 | 当前绑定银行卡的开户名称 (只有快捷绑卡时才需要输入) | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 卡证件号 | cert\_id | 定长18位String | 可选 | 当前绑定银行卡的开户证件号 (只有快捷绑卡时才需要输入) | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 银行卡开户省份 | card\_prov | 定长4位String | 可选(可以为空默认为上海) | 本次快捷绑卡待绑定的银行卡开户省份 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 银行卡开户地区 | card\_area | 定长4位String | 可选(可以为空默认为上海) | 本次快捷绑卡待绑定的银行卡开户地区 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+----------------------+---------------------+----------------------------+-------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+======================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为130 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 是 | 130000--调用成功,其他见返回码附件表 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 是 | 返回码的对应中文描述 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 验卡类型 | card\_verify\_type | 定长8位String | 必须 | 快捷绑卡: 02 消费分期代扣绑卡: 03 非消费分期代扣绑卡: 04 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+----------------------+---------------------+------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "130", "mer_cust_id": "6666000000026086", "user_cust_id": "6666000000027184", "order_date": "20180328", "order_id": "0020180365", "card_verify_type": "02", "bank_id": "01020000", "dc_flag": "0", "card_no": "6212261001039279143", "card_mobile": "13666666691", "card_name": "", "cert_id": "", "card_prov": "0031", "card_area": "3100", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "", "extension": "" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "130"; 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);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "130", "resp_code": "130000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "130", "resp_code": "130099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 130000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 130098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 130099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 130100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 130101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 130102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 130103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 130104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 130107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 130108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 130109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 130110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 130111 | 用户客户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 130204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 130210 | 短信验证码发送过于频繁 | +-----------------------------------------------+------------------------------------------------------+ | 130211 | 短信验证码发送失败 | +-----------------------------------------------+------------------------------------------------------+ | 130300 | 当前商户不支持借记卡 | +-----------------------------------------------+------------------------------------------------------+ | 130301 | 当前商户不支持贷记卡 | +-----------------------------------------------+------------------------------------------------------+ | 130302 | 当前银行卡已绑过快捷卡 | +-----------------------------------------------+------------------------------------------------------+ | 130303 | 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡 | +-----------------------------------------------+------------------------------------------------------+ | 130304 | 验证码发送失败 | +-----------------------------------------------+------------------------------------------------------+ | 130305 | 验证码发送成功 | +-----------------------------------------------+------------------------------------------------------+ | 130306 | 贷记卡类型时,贷记卡CVV2、贷记卡有效期必须输入 | +-----------------------------------------------+------------------------------------------------------+ | 130307 | 非贷记卡类型时,贷记卡CVV2、贷记卡有效期不能输入 | +-----------------------------------------------+------------------------------------------------------+ | 130308 | 只有个人用户和个体户能绑定快捷卡 | +-----------------------------------------------+------------------------------------------------------+ | 130309 | 验证码发送中 | +-----------------------------------------------+------------------------------------------------------+ 无卡收款绑卡接口 ------------ 功能说明 ~~~~~~~~~~~~ 该接口支持个人用户小额收款的支付需求情景下,绑定C端客户的银行卡,进行快捷支付收款。 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~ +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+==================+=====================+============+===============================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为131 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 变长8位String | 必须 | 具体见附件:开户银行代号 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 借贷标记 | dc\_flag | 定长1位String | 必须 | 0--借记,储蓄卡 1--贷记,信用卡 2--准贷记卡 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | 本次快捷绑卡待绑定的银行卡号 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行预留手机号 | card\_mobile | 变长11位String | 必须 | 本次快捷绑卡待绑定的银行卡,在银行开户时的预留手机号 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 卡姓名 | card\_name | 变长120位String | 可选 | 当前绑定银行卡的开户名称 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 卡证件号 | cert\_id | 定长18位String | 可选 | 当前绑定银行卡的开户证件号 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行卡开户省份 | card\_prov | 定长4位String | 必须 | 本次快捷绑卡待绑定的银行卡开户省份 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行卡开户地区 | card\_area | 定长4位String | 必须 | 本次快捷绑卡待绑定的银行卡开户地区 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 短信验证码 | sms\_code | 定长6位String | 必须 | | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+------------------+---------------------+------------+-------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为131 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 131000--调用成功,其他见返回码附件表 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 必须 | 由汇付生成,用户的唯一性标识 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 变长8位String | 必须 | 具体见附件:开户银行代号 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | 返回银行卡号掩码 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 绑定银行卡ID | bind\_card\_id | 变长20位String | 必须 | 本次快捷绑卡的ID | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 交易完成后,本平台系统把交易结果通过页面方式,发送到该地址上 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "131", "mer_cust_id": "6666000000026086", "user_cust_id": "6666000000291215", "order_id": "0020180368", "order_date": "20180402", "bank_id": "03134402", "dc_flag": "0", "card_no": "6230580000038076969", "card_mobile": "13761708192", "card_name": "", "cert_id": "", "card_prov": "0031", "card_area": "3100", "sms_code": "324402", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "ret_url": "", "mer_priv": "", "extension": "" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "131"; String merCustId = "6666000000026086"; String version = "10"; httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); PrintWriter out = httpServletResponse.getWriter(); out.println(); out.println(""); out.println(""); out.println(" sender"); out.println(" "); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(""); out.flush(); out.close(); .. 成功响应: .. code:: json 200 { "cmd_id": "131", "resp_code": "131000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "131", "resp_code": "131304", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 131000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 131002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 131003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 131099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 131100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 131101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 131102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 131103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 131104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 131107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 131108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 131109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 131110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 131201 | 页面数据被篡改 | +-----------------------------------------------+------------------------------------------------------+ | 131202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 131204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 131205 | 短信验证码验证失败 | +-----------------------------------------------+------------------------------------------------------+ | 131206 | 短信验证码发送手机号与验证手机号不一致 | +-----------------------------------------------+------------------------------------------------------+ | 131207 | 短信验证码或短信唯一标识为空 | +-----------------------------------------------+------------------------------------------------------+ | 131208 | 短信验证码已失效请重新获取 | +-----------------------------------------------+------------------------------------------------------+ | 131209 | 验证码发送接口与接口不一致 | +-----------------------------------------------+------------------------------------------------------+ | 131210 | 短信验证码发送过于频繁 | +-----------------------------------------------+------------------------------------------------------+ | 131211 | 短信验证码发送失败 | +-----------------------------------------------+------------------------------------------------------+ | 131303 | 银行卡号与银行不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 131305 | 只有个人用户和个体户能绑定快捷卡 | +-----------------------------------------------+------------------------------------------------------+ | 131308 | 省份地区信息非法 | +-----------------------------------------------+------------------------------------------------------+ | 131314 | 请获取验证码 | +-----------------------------------------------+------------------------------------------------------+ | 131315 | 银行卡信息有更新,请重新获取验证码 | +-----------------------------------------------+------------------------------------------------------+ | 131316 | 用户已绑定快捷卡,请勿重复申请 | +-----------------------------------------------+------------------------------------------------------+ | 131317 | 用户有快捷卡正在绑定中,请勿重复绑卡 | +-----------------------------------------------+------------------------------------------------------+ | 131318 | 该银行卡号与卡类型不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 131320 | 该商户不支持绑定贷记卡 | +-----------------------------------------------+------------------------------------------------------+