Skip to content

trade.refund

李春寅 edited this page Jan 31, 2019 · 1 revision

申请退款 trade.refund

SDK为交易查询接口 trade.refund 编写的相关操作类有

  • asbamboo.java.sdk.model.TradeRefundRequest 用来生成接口请求参数。 接口请求
  • asbamboo.java.sdk.model.TradeRefundResponse 用来解析接口返回的响应值。接口的response响应值

接口请求

使用SDK请求 trade.refund 接口,你需要创建一个TradeRefundRequest实例,调用其中的set方法,设置退款的交易编号、退款单编号,退款金额等信息。

TradeRefundRequest 包含如下可以被用来设置参数的方法:

  • public void setInTradeNo(String in_trade_no) 交易编号(聚合平台)
  • public void setOutTradeNo(String out_trade_no) 交易编号(商户)
  • public void setOutRefundNo(String out_refund_no) 退款单编号(商户)
  • public void setRefundFee(String refund_fee) 退款金额
  • public void setThirdPart(String third_part) 第三方平台需要的其他参数,json格式传入

接口请求时 in_trade_no 或者 out_trade_no 必须有一个被设置,如果通知设置了这两个参数,那么系统以in_trade_no为准。

out_refund_no 必须是唯一的。

refund_fee 一个交易可以分多次退款,但退款的总金额不能大于交易支付金额。

代码示例:

try{
  TradeRefundRequest request = new TradeRefundRequest();
  request.setInTradeNo(in_trade_no);
  request.setOutTradeNo(out_trade_no);
  request.setOutRefundNo(out_refund_no);
  request.setRefundFee(refund_fee);
  TradeRefundResponse response = (TradeRefundResponse) request.post();
  // ...
}catch(Exception e) {
  // ...
}

接口的response响应值

TradeRefundRequest.post() 方法会返回一个 TradeRefundResponse 结果。TradeRefundResponse 是 trade.refund 响应值的解析类,它会把响应只json转换为 TradeRefundResponse 对象。TradeRefundResponse 具有如下可用的方法获取响应结果中的字段:

  • public boolean getIsSuccess() HTTP code等于200,并且Response Json中code等于"0",并且Response Json中Sign值有效时返回true,其他情况都返回false。
  • public String getMessage() HttpCode等于200时,message等于response json中的message。否则提示异常信息
  • public String getDataCode() Response Json中的code
  • public HashMap<String, Object> getDecodedData() Response Json,经过json decode后的结果
  • public Integer getHttpCode() Http code
  • public String getHttpBody() Http body应该是一个json
  • public Map<String, List<String>> getHttpHeaders() http headers
  • public String getInRefundNo() 退款编号(聚合平台) 唯一
  • public String getInTradeNo() 交易编号(聚合平台) 唯一
  • public String getOutRefundNo() 退款单编号(商户) 唯一
  • public String getOutTradeNo() 交易编号(商户) 唯一
  • public String getRefundFee() 退款金额
  • public String getRefundPayYmdhis() 退款的付款时间
  • public String getRefundStatus() 退款申请状态 REQUEST[正在请求] SUCCESS[申请成功] FAILED[申请失败]

response处理示例:

TradeRefundResponse response  = (TradeRefundResponse) request.post();
if(response.getIsSuccess()){
  if(response.getRefundStatus() == "SUCCESS"){
    // .....
  }else if(response.getRefundStatus() == "FAILED"){
    // .....
  }
}else{
  // 请求失败
  // response.getDataCode() //接口响应值code
  // response.getMessage() //失败的原因
  // ......
}

Clone this wiki locally