下载账单代码示例

更新时间:
2024-01-03
下载文档

下载账单代码示例

本章主要介绍下载账单的 Java SDK 代码示例。

代码示例

public void bill(String billDate) {

  // 翼辉支付平台公钥
  String acopayPublicKey = "<acopayPublicKey>";
  // 商户私钥
  String mchPrivateKey = "<yourMchPrivateKey>";
  // 商户号
  String mchNo = "<yourMchNo>";

  // 请求对账单信息实例
  AcopayBillRequestModel billRequestModel = new AcopayBillRequestModel();
  // 获取前一天的对账单信息 可获取商户三个月内的交易账单信息 下载日期时区为东八区
  if (StringUtils.isBlank(billDate)) {
    LocalDate localDate = LocalDate.now(ZoneId.of("Asia/Shanghai")).minusDays(1);
    billDate = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
  }
  billRequestModel.setBillDate(billDate);
  AcopayResponse<AcopayBillResponseModel> acopayBillResponse = null;

  try {
    // 创建 AcopayClient 实例
    AcopayClient acopayClient = new DefaultAcopayClient(acopayPublicKey, mchPrivateKey, mchNo);
    // 获取对账单信息
    acopayBillResponse = acopayClient.bill(billRequestModel);
  } catch (AcopayException e) {
    // 根据商户业务需求进行异常处理
    log.error("请求对账单信息出错", e);
  }
  // 正常流程进行业务处理
  if (!Objects.isNull(acopayBillResponse)) {
    log.info("接收下载对账单信息:{}", acopayBillResponse);
    if (acopayBillResponse.statusSuccessful()) {
      // 获取业务数据
      AcopayBillResponseModel data = acopayBillResponse.getData();
      // NO_BILL :账单不存在,SUCCESS :成功,BILL_NOT_EXIST :对账单未生成
      if (StringUtils.equals(data.getCode(), SUCCESS)) {
        // 获取下载对账单地址
        String billDownloadUrl = data.getUrl();
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> msg = restTemplate.getForEntity(billDownloadUrl, String.class);
        log.info("接收账单:{}", msg.getBody());
        // 进行数据校验业务处理
      } else {
        // 根据 code 值进行业务处理
      }
    } else {
      // 进行业务处理
    }
  }
}
文档内容是否对您有所帮助?
有帮助
没帮助