获取客户的发票总数

时间:2019-07-07 12:35:06

标签: stripe-payments

我想向我的客户显示发票清单。他们可以在帐户的帐单设置中下载每张发票。

我的后端通常使用分类sizepage方法来处理可分页的内容。 Spring已经为此提供了许多简单的实现。

但是,似乎Stripe不允许我以另一种方式传递发票分页,而不会传递光标对象ID(请参见starting_after)。

由于我正在使用HATEOAS,因此我无法真正使用它。我目前看到的唯一方法是一遍又一遍地遍历所有发票,以“伪造”经典的分页方法(如上所述)。

可能有一个简单的解决方案,但是很遗憾,这条信息没有发送到我的后端totalCount

在获取InvoiceCollection时,我可以看到还有一个属性totalCount,但它始终是null

@Override
public Page<InvoiceModel> findByAllByCustomerId(String customerId, Pageable pageable) {

    Map<String, Object> params = new HashMap<>();
    params.put("customer", customerId);
    params.put("limit", pageable.getPageSize());

    InvoiceCollection invoiceCollection;
    List<Invoice> invoiceList;
    try {
        invoiceCollection = Invoice.list(params);
        invoiceList = invoiceCollection.getData();
    } catch (StripeException e) {
        e.printStackTrace();
        throw new RuntimeException();
    }

    List<InvoiceModel> collect = invoiceList.stream().map(invoice -> {
        InvoiceModel invoiceModel = new InvoiceModel();
        invoiceModel.setId(invoice.getId());
        invoiceModel.setPdfUrl(invoice.getInvoicePdf());
        invoiceModel.setInvoiceNumber(invoice.getNumber());

        ZonedDateTime billingDate = Instant.ofEpochSecond(invoice.getDueDate()).atZone(ZoneId.of("UTC"));
        invoiceModel.setBillingDate(billingDate);
        return invoiceModel;
    }).collect(Collectors.toList());

    // This I'd like to compute based on 'totalCount'
    long total = 0L;

    return new PageImpl<>(collect, pageable, total);
}

enter image description here

有什么 方法来获取发票总数?还是有另一种方法可以做到这一点?

谢谢您的帮助。

0 个答案:

没有答案