Skip to content

trade.query

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

交易查询 trade.query

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

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

接口请求

使用SDK请求 trade.query 接口,你需要创建一个TradeQueryRequest实例,调用其中的set方法,设置查询的交易编号,查询交易信息。

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

  • public void setInTradeNo(String in_trade_no) 交易编号(聚合平台)
  • public void setOutTradeNo(String out_trade_no) 交易编号(商户)

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

代码示例:

try{
  TradeQueryRequest request = new TradeQueryRequest();
  request.setInTradeNo(in_trade_no);
  request.setOutTradeNo(out_trade_no);
  TradeQueryResponse response = (TradeQueryResponse) request.post();
  // ...
}catch(Exception e) {
  // ...
}

接口的response响应值

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

  • 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 getCancelYmdhis() 交易取消时间
  • public String getChannel() 支付渠道
  • public String getClientIp() 客户ip
  • public String getInTradeNo() 交易编号 与支付请求的编号对应的聚合平台生成的交易编号 是一个全局唯一的编号
  • public String getOutTradeNo() 交易编号(商户)
  • public String getPayedYmdhis() 交易支付成功[不可退款]时间
  • public String getPayokYmdhis() 交易支付成功[可退款]时间
  • public String getQrCode() 二维码(买家扫商家适用),渠道类型为ALIPAY_QRCD或WXPAY_QRCD时这个字段才有意义
  • public String getTitle() 交易标题
  • public String getTotalFee() 交易金额 单位为分
  • public String getTradeStatus() 交易状态 NOPAY[尚未支付] CANCLE[取消支付] PAYFAILED[支付失败] PAYING[正在支付] PAYOK[支付成功-可退款] PAYED[支付成功-不可退款]

response处理示例:

TradeQueryResponse response   = (TradeQueryResponse) request.post();
if(response.getIsSuccess()){
  if(response.getTradeStatus() == "NOPAY"){
    // .....
  }else if(response.getTradeStatus() == "CANCLE"){
    // .....
  }else if(response.getTradeStatus() == "PAYFAILED"){
    // .....
  }else if(response.getTradeStatus() == "PAYING"){
    // .....
  }else if(response.getTradeStatus() == "PAYOK"){
    // .....
  }else if(response.getTradeStatus() == "PAYED"){
    // .....
  }
}else{
  // 请求失败
  // response.getDataCode() //接口响应值code
  // response.getMessage() //失败的原因
  // ......
}

Clone this wiki locally