转账/退款/解冻接口

203 转账接口

功能说明

用于企业用户、个体户和商户的账户间转账,不能用于跨商户下的转账。

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 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 可选 用于扩展请求参数
设备信息 dev_info_json 变长1024位的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
手续费金额 fee_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

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);//解密
成功响应:
200
      {
        "cmd_id": "203",
        "resp_code": "203000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "203",
     "resp_code": "203099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

205 退款接口

功能说明

用于个人用户、企业用户和个体户进行支付交易的退款

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 version 定长2位的String 必须 固定为10,如版本升级,能向前兼容
消息类型 cmd_id 定长3位String 必须 每一种消息类型代表一种交易,此处为205
商户客户号 mer_cust_id 定长16位的String 必须 商户的唯一标识
用户客户号 user_cust_id 定长16位的String 可选 由汇付生成,用户的唯一性标识 对原交易为网银支付,代扣支付,快捷支付,必须 对原交易为扫码支付,可选
订单日期 order_date 定长8位String 必须 格式为“yyyyMMdd”
订单号 order_id 变长20位的String 必须 由商户的系统生成,订单号和订单日期保证唯一
退款金额 trans_amt 变长14位的String 必须 退款金额,金额格式必须是###.00,比如2.00,2.01
原交易平台流水id orginal_platform_seq_id 定长18位String 必须 原交易流水号
快捷支付页面版标识 quickpay_page_flag 定长1位String 可选 默认为否 否:0 是:1 原交易为快捷支付WEB版或快捷支付APP版时,设为是
分账账户串 div_detail 变长String 必须 出账账户串,json格式:[{“divCustId”:”60010001”,” divAcctId”:”000001”,”divAmt”:”1.00”}]
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户退款结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  
设备信息 dev_info_json 变长1024位的String 必须 参见 设备静态信息

分账账户串(div_detail )内容:

参数中文名称 参数名称 数据格式 是否必须 说明
分账客户号 divCustId 变长16位String 必须 div_detail参数下的二级参数 分账客户号
分账账户号 divAcctId 变长9位String 必须 div_detail参数下的二级参数 分账账户号
分账金额 divAmt 变长14位String 必须 div_detail参数下的二级参数 分账金额,保留两位小数

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 cmd_id 变长String 必须 每一种消息类型代表一种交易,此处为205
返回码 resp_code 变长String 必须 205000–调用成功,其他见返回码
结果描述 resp_desc 变长String 必须 返回描述
商户客户号 mer_cust_id 变长16位的String 必须  
用户客户号 user_cust_id 变长16位的String 可选  
订单日期 order_date 定长8位 必须  
订单号 order_id 变长20位的String 必须  
平台流水id platform_seq_id 定长18位String 必须 交易流水号
交易金额 trans_amt 变长14位的String 必须  
交易状态 trans_stat 变长8位的String 必须  
商户后台应答地址 bg_ret_url 变长128位的String 必须 通过后台异步通知商户退款结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址
商户私有域 mer_priv 变长120位的String 可选 为商户的自定义字段,该字段在交易完成后由本平台原样返回
扩展域 extension 变长512位的String 可选  

返回码

返回码 返回描述
205000 交易成功
205002 请求已受理
205003 交易失败
205098 系统超时
205099 系统异常
205100 请求参数非法
205101 商户无此接口权限
205102 验证签名失败
205103 商户状态异常
205104 用户状态异常
205105 账户状态异常
205107 消息类型与签名内容不一致
205108 商户客户号与签名内容不一致
205109 版本号与签名内容不一致
205110 商户号不存在
205111 用户客户号不存在
205112 账号不存在
205113 过渡账户不能出账
205202 交易订单号重复
205300 原支付交易不存在
205301 该订单状态不可退款
205302 订单已退款
205303 用户客户号与支付交易不一致
205305 可退金额不足
205306 调用PA批量转账接口失败
205721 分账串内容不能超过五个
205722 分账串部分字段为空
205723 分账串金额格式错误
205724 分账串累计金额不等于订单金额
205727 分账信息异常
205728 分账串账户信息格式错误
205729 分账串账户异常

代码示例

java

String valueObj = "{
       "version": "10",
       "cmd_id": "205",
       "mer_cust_id": "6666000000002619",
       "user_cust_id": "6666000000005942",
       "order_date": "20170830",
       "order_id": "2000501",
       "quickpay_page_flag": "1",
       "trans_amt": "0.03",
       "orginal_platform_seq_id": "201708300000004663",
       "div_detail": "[{\"divCustId\":\"6666000000002962\",\"divAcctId\":\"3133\",\"divAmt\":\"0.01\",\"divFreezeFg\":\"00\"},{\"divCustId\":\"6666000000002619\",\"divAcctId\":\"2744\",\"divAmt\":\"0.02\",\"divFreezeFg\":\"00\"}]",
       "bg_ret_url": "http://192.168.25.79:8081/zeus-callback/asyncHandle.json",
       "mer_priv": "1",
       "extension": "1"
       }";

 String testUrl = "http://192.168.3.170:8083/npay/merchantRequest";
 String checkValue = sign(valueObj);
 String cmdId = "205";
 String merCustId = "6666000000002619";
 String version = "10";
 String contentType = "application/x-www-form-urlencoded";
 String charset = "UTF-8";
 String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue;
 jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset);
 jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send();
 String body = httpResponse.bodyText();
 String resultObj = parseResult(body);//解密
成功响应:
200
      {
        "cmd_id": "205",
        "resp_code": "205000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000002619",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "205",
     "resp_code": "205099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000002619",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }

212 订单解冻接口

功能说明

用于对支付交易的冻结金额进行解冻

调用方式:系统调用

请求参数

参数中文名称 参数名称 数据格式 是否必须 说明
版本号 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 必须 数据格式:json格式: [{‘divCustId’:‘6666000000026193’,’divAcctId’:‘79720’,’divFreezeFg’:‘00’}]
商户后台应答地址 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

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','divFreezeFg':'01'},{'divCustId':'6666000000002619','divAcctId':'2744','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);//解密
成功响应:
200
      {
        "cmd_id": "212",
        "resp_code": "212000",
        "resp_desc": "交易成功",
        "mer_cust_id" : "6666000000026086",
        "order_date": "20180327",
        "order_id": "10000000001",
        .......
      }
失败响应:
200
   {
     "cmd_id": "212",
     "resp_code": "212099",
     "resp_desc": "交易失败",
     "mer_cust_id" : "6666000000026086",
     "order_date": "20180327",
     "order_id": "10000000001",
     .......
   }