代发类接口 ========== 代发接口 ---------------- 功能说明 ~~~~~~~~~~~~~~~~ 商户调用该接口可以进行代发交易 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=====================+=====================+=====================+================================================================================================================+ | 版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为213 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位的String | 必须 | 商户的唯一标识 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为“yyyyMMdd” | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 出账客户号 | pay\_cust\_id | 定长16位的String | 必须 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 出账账户号 | pay\_acct\_id | 变长9位 | 必须 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位的String | 必须 | 由商户的系统生成,订单号和订单日期保证唯一 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | (金额格式必须是###.00)比如2.00,2.01 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 收款账户类型 | acct\_type | 定长1位String | 必须 | 银行对公账户(1),银行对私账户(2) | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 银行账号 | bank\_card\_no | 变长30位String | 必须 | 代发到的银行账户 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 银行编号 | bank\_id | 变长8位 | Y(acct\_type=1)/N | 对公必填,对私选填 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 银行名称 | bank\_name | 变长50位String | Y(acct\_type=1)/N | 对公必填,对私选填 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 开户行省份 | bank\_prov | 定长4位String | 可选 | 填写编号(商户有省份值请填入) ; 与地区值同时传或都不传 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 开户行地区 | bank\_area | 定长4位String | 可选 | 填写编号(商户有地区值请填入); 与省份值同时传或都不传 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 支行名称 | bank\_subbranch | 变长50位String | 可选 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 联行号 | unite\_bank\_code | 变长20位String | 可选 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 代发用途 | purpose | 变长20位String | 必须 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 收款人姓名 | cust\_name | 变长20位String | 必须 | 必须与银行户名相同 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 收款人手机号 | mobile | 变长11位String | 可选 | | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 证件类型 | cert\_type | 变长2位String | Y(acct\_type=2)/N | 00身份证 01护照 02军官证 03士兵证 04回乡证 06警官证 08台胞证 05户口本 13其他 (收款账户为对私必传,对公为可选) | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 证件号 | cert\_id | 变长20位String | Y(acct\_type=2)/N | (收款账户为对私必传,对公为可选) | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 代发方式 | trans\_mode | 变长2位String | 可选 | 代发的到账时间。 00 : T0 ; 01 : T1 (不传默认走T0), | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+---------------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为213 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 213001—处理中 , 其他见返回码 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 手续费 | fee\_amt | 变长14位String | 必须 | | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 213000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 213001 | 请求处理中 | +-----------------------------------------------+------------------------------------------------------+ | 213003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 213098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 213099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 213100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 213101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 213102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 213103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 213107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 213108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 213109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 213110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 213112 | 出账账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 213113 | 过渡账户不能出账 | +-----------------------------------------------+------------------------------------------------------+ | 213303 | 银行卡信息与银行信息不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 213304 | 银行卡类型错误 | +-----------------------------------------------+------------------------------------------------------+ | 213320 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 213326 | 商户客户号与出账客户号不一致 | +-----------------------------------------------+------------------------------------------------------+ | 213331 | 代发手续费账户未配置 | +-----------------------------------------------+------------------------------------------------------+ | 213321 | 代发手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 213328 | 卡号或证件号或电话号码解密失败 | +-----------------------------------------------+------------------------------------------------------+ | 213322 | 代发失败 | +-----------------------------------------------+------------------------------------------------------+ | 213329 | 交易收款人已列入反洗钱黑名单,交易已被禁止 | +-----------------------------------------------+------------------------------------------------------+ | 213333 | 您尚未开通T0/T1代发功能,请联系汇付业务人员 | +-----------------------------------------------+------------------------------------------------------+ | 213334 | 账户余额或手续费余额不足,请先进行充值 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "cmd_id": "213", "version": "10", "mer_cust_id": "6666000000026086", "order_date": "20171228", "order_id": "200111127", "pay_cust_id": "6666000000026086", "pay_acct_id": "79506", "trans_amt": "1.36", "acct_type": "1", "bank_card_no": "62533820171228", "bank_name": "", "bank_prov": "", "bank_area": "", "bank_subbranch": "", "bank_id": "", "purpose": "啊啊啊啊啊", "cust_name": "飞飞飞", "mobile": "16666666666", "cert_type": "00", "cert_id": "220523198005162957", "trans_mode": "01", "ret_url": "", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "test_mer_priv", "extension": "" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "213"; 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": "213", "resp_code": "213000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "213", "resp_code": "213099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 代发电子回单 ------------ 功能说明 ~~~~~~~~~~~~ 供商户代发使用 调用方式:系统调用(同步+异步) 请求参数 ~~~~~~~~~~~~~~ +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=====================+=====================+============+============================================================================================+ | 版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为313 | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位的String | 必须 | 商户的唯一标识 | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 原订单日期 | order\_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307; | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 原订单号 | order\_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合; (订单日期+订单号与平台流水号必选其一) | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 平台流水号 | platform\_seq\_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 (订单日期+订单号与平台流水号必选其一) | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户回执单生成结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------+ 同步返回参数 ~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为313 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 313001—处理中 , 其他见返回码表 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原订单日期 | order\_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原订单号 | order\_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 收款人姓名 | cust\_name | 变长20位String | 必须 | 必须与银行户名相同 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行账号 | bank\_card\_no | 变长30位String | 必须 | 代发到的银行账户 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 代发用途 | purpose | 变长20位String | 必须 | 代发用途 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ 商户后台应答返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+=====================+============+===============================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 313 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 313000--调用成功,其他见返回码表 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原订单日期 | order\_date | 定长8位String | 可选 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原订单号 | order\_id | 变长20位String | 可选 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 原平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 可选 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户代发结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 回执单下载地址 | receipt\_url | 变长256位的String | 必须 | 生成的电子签章回执单的下载地址 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 收款人姓名 | cust\_name | 变长20位String | 必须 | 必须与银行户名相同 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 银行账号 | bank\_card\_no | 变长30位String | 必须 | 代发到的银行账户 | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ | 代发用途 | purpose | 变长20位String | 必须 | | +------------------------+---------------------+---------------------+------------+-------------------------------------------------------------------------------+ 代码示例 ~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "313", "mer_cust_id": "6666000000028641", "order_date": "20180509", "order_id": "1000001", "platform_seq_id": "201805090000010264", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "313"; String merCustId = "6666000000026086"; String version = "10"; String contentType = "application/x-www-form-urlencoded"; String charset = "UTF-8"; String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue; jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset); jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send(); String body = httpResponse.bodyText(); String resultObj = parseResult(body);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "313", "resp_code": "313000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "313", "resp_code": "313099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 返回码 ~~~~~~~~~ +-----------------------------------------------+---------------------------------------------------------+ | **代发回执单(cmd\_id=313)** | | +-----------------------------------------------+---------------------------------------------------------+ | 313000 | 交易成功 | +-----------------------------------------------+---------------------------------------------------------+ | 313003 | 交易失败 | +-----------------------------------------------+---------------------------------------------------------+ | 313099 | 系统异常 | +-----------------------------------------------+---------------------------------------------------------+ | 313100 | 请求参数非法 | +-----------------------------------------------+---------------------------------------------------------+ | 313101 | 商户无此接口权限 | +-----------------------------------------------+---------------------------------------------------------+ | 313102 | 验证签名失败 | +-----------------------------------------------+---------------------------------------------------------+ | 313103 | 商户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 313104 | 用户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 313107 | 消息类型与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 313108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 313109 | 版本号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 313110 | 商户号不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 313310 | 产品信息校验失败 | +-----------------------------------------------+---------------------------------------------------------+ | 313201 | 该商户未开通代发回执单权限 | +-----------------------------------------------+---------------------------------------------------------+ | 313202 | 未查询到该笔交易 | +-----------------------------------------------+---------------------------------------------------------+