转账类接口 ========== 转账接口 -------- 功能说明 ~~~~~~~~~~~~~~~~ 用于企业用户、个体户和商户的账户间转账,不能用于跨商户下的转账。 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==================+======================+================+============================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 默认为10,可扩展 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长String | 必须 | 固定203 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 汇付生成,唯一 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 商户系统生成,商户下唯一 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | YYYYMMDD | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 出账客户号 | out\_cust\_id | 变长16位的String | 必须 | 汇付生成,用户的唯一性标识 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 出账子账户号 | out\_acct\_id | 变长9位的String | 必须 | | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 变长16位的String | 必须 | 入账客户号,由汇付生成,用户的唯一性标识 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 入账子账户号 | in\_acct\_id | 变长9位的String | 必须 | | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 转账金额 | transfer\_amt | 变长14位的String | 必须 | 金额格式必须是###.00 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户转账结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120 位的String | 必须 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 入参扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+------------------+----------------------+----------------+------------------------------------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+===================+=====================+================+============================================================================================================+ | 消息类型 | cmd\_id | 变长String | 必须 | 固定203 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位的String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 应答描述 | resp\_desc | 变长String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 汇付生成,唯一 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 定长20位String | 必须 | 商户系统生成,商户下唯一 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8 位String | 必须 | YYYYMMDD | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 出账客户号 | out\_cust\_id | 变长16位的String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 出账子账户号 | out\_ acct \_id | 变长9位的String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 变长16位的String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 入账子账户号 | in\_ acct \_id | 变长9位的String | 必须 | | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 转账金额 | transfer\_amt | 变长14位的String | 必须 | 金额格式必须是###.00 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户转账结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ | 返参扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+-------------------+---------------------+----------------+------------------------------------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 203000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 203099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 203100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 203101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 203102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 203103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 203108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 203109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 203110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 203202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 203301 | 转出方用户信息不存在 | +-----------------------------------------------+------------------------------------------------------+ | 203302 | 转入方用户信息不存在 | +-----------------------------------------------+------------------------------------------------------+ | 203303 | 转出方用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203304 | 转入方用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203307 | 转出方帐户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 203308 | 转入方账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 203309 | 转出方帐户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203310 | 转入方帐户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 203311 | 转账失败 | +-----------------------------------------------+------------------------------------------------------+ | 203317 | 个人用户账户不能出账 | +-----------------------------------------------+------------------------------------------------------+ | 203318 | 转出方帐户不能为过渡账户 | +-----------------------------------------------+------------------------------------------------------+ | 203319 | 转入方帐户不能为过渡账户 | +-----------------------------------------------+------------------------------------------------------+ | 203320 | 转出方和转入方不能相同 | +-----------------------------------------------+------------------------------------------------------+ | 203803 | 支付交易受限,限额限次或其他 | +-----------------------------------------------+------------------------------------------------------+ | 203804 | 商户超限额或限次 | +-----------------------------------------------+------------------------------------------------------+ | 203805 | 商户未开通该功能权限 | +-----------------------------------------------+------------------------------------------------------+ | 203806 | 商户交易限制 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "203", "mer_cust_id": "6666000000026086", "order_id": "20171913212022", "order_date": "20170824", "transfer_type": "02040004", "out_cust_id": "6666000000026303", "out_acct_id": "79913", "in_cust_id": "6666000000026086", "in_acct_id": "79506", "transfer_amt": "11.02", "bg_ret_url": "http://192.168.25.79:8081/zeus-callback/asyncHandle.json", "mer_priv": "" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "203"; 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": "203", "resp_code": "203000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "203", "resp_code": "203099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 订单解冻接口 ------------ 功能说明 ~~~~~~~~~~~~~~~~ 用于对支付交易的冻结金额进行解冻 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==============================+=====================+================+===============================================================================+ | 版本号 | version | 定长2位的String | 必须 | 固定为10,如版本升级,能向前兼容 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为212 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位的String | 必须 | 商户的唯一标识 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位的String | 必须 | 由汇付生成,用户的唯一性标识 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为“yyyyMMdd” | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位的String | 必须 | 由商户的系统生成,订单号和订单日期保证唯一 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 快捷支付页面版标识 | quickpay_page_flag | 变长1位的String | 可选 | 默认为否; 否:0 ;是:1 ;原交易为快捷支付WEB版或快捷支付APP版时,设为是 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 原交易平台流水id | orginal\_platform\_seq\_id | 定长18位String | 必须 | 原支付交易流水号 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 解冻分账账户串 | div\_detail | 变长String | 必须 | [{"div\_cust\_id":"60010001","div\_acct\_id":"000001"}] | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +--------------------+------------------------------+---------------------+----------------+-------------------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+=====================+=====================+================+===============================================================================+ | 消息类型 | cmd\_id | 变长String | 必须 | 每一种消息类型代表一种交易,此处为212 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 返回码 | resp\_code | 变长String | 必须 | 212000--调用成功,其他见返回码 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 结果描述 | resp\_desc | 变长String | 必须 | 返回描述 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 变长16位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 变长16位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 快捷支付页面版标识 | quickpay_page_flag | 变长1位的String | 可选 | 默认为否; 否:0 ;是:1 ;原交易为快捷支付WEB版或快捷支付APP版时,设为是 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 平台流水id | platform\_seq\_id | 定长18位String | 必须 | 交易流水号 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 成功件数 | success\_cnt | 变长2位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 成功金额 | success\_amt | 变长14位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 失败件数 | fail\_cnt | 变长2位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 失败金额 | fail\_amt | 变长14位的String | 必须 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 失败账户串 | fail\_div\_detail | 变长String | 必须 | [{"divCustId":"60010001","divAcctId":"000001"}] | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户解冻结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | | +--------------------+---------------------+---------------------+----------------+-------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 212000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 212098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 212099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 212100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 212101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 212102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 212103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 212104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 212105 | 账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 212107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 212108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 212109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 212110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 212111 | 用户客户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 212112 | 账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 212202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 212301 | 原支付交易不存在 | +-----------------------------------------------+------------------------------------------------------+ | 212302 | 该订单状态不可解冻 | +-----------------------------------------------+------------------------------------------------------+ | 212303 | 分账账户串数据异常 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "212", "mer_cust_id": "6666000000002619", "user_cust_id": "6666000000005942", "order_date": "20170830", "order_id": "324002007", "orginal_platform_seq_id": "201708300000004667", "div_detail": "[{'divCustId':'6666000000002962','divAcctId':'3133','divAmt':'0.20','divFreezeFg':'01'},{'divCustId':'6666000000002619','divAcctId':'2744','divAmt':'1.00','divFreezeFg':'01'}]", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "mer001", "extension": "extension" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "212"; 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": "212", "resp_code": "212000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "212", "resp_code": "212099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... }