退款类接口

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 可选  

分账账户串(div_detail )内容:

参数中文名称 参数名称 数据格式 是否必须 说明
分账客户号 divCustId 变长16位String 必须 div_detail参数下的二级参数 分账客户号
分账账户号 divAcctId 变长9位String 必须 div_detail参数下的二级参数 分账账户号
分账金额 divAmt 变长14位String 必须 div_detail参数下的二级参数 分账金额,保留两位小数
是否冻结标志 divFreezeFg 定长2位String 必须 div_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结

返回参数

参数中文名称 参数名称 数据格式 是否必须 说明
消息类型 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",
     .......
   }