如何判断卡是否是 Stripe 中的默认支付来源



在 Java 中,如何判断 Stripe 中的卡是否是默认支付选项?例如:

for ( ExternalAccount source : customer.getSources().getData() ){
    Card card = (Card) source;
    if ( card.???? // how do I know if it's the default payment option
}

或者,我可以查询默认付款来源吗?

我问的原因是因为我想向客户显示卡的最后 4 位数字,以向他们显示哪个支付选项是他们当前的默认支付选项。但是,如果有多张卡,我怎么知道?

您可以通过比较 fingerprint 属性来查看您是否已经存档了卡片。 它将永远是一样的。

您还可以通过使用 Customer 对象上的 getDefaultSourceObject() 方法直接获取默认付款源。

https://github.com/stripe/stripe-java/blob/master/src/main/java/com/stripe/model/Customer.java#L92

换句话说,将您拥有的fingerprint与默认源的fingerprint进行比较,您将获得答案。

希望对您有所帮助!

从我现在能知道的(查看文档等(来看,不可能通过检查卡来判断它是否是默认的支付来源。但是我错过了客户的选项,该选项可让您直接检索默认付款选项(如果有的话(,例如

ExternalAccount defaultSource = customer.getDefaultSourceObject();
Card defaultCard = (Card) defaultSource; // if it's a card

使用最新的 Stripe SDK,我无法使用 customer.getDefaultSourceObject() .这是对我有用的代码

    String defaultSource = customer.getDefaultSource();
    if (defaultSource != null) {
        List<ExternalAccount> sources = customer.getSources().getData();
        for (ExternalAccount source: sources) {
            if (source instanceof Card && source.getId().equals(defaultSource)) {
                Card card = (Card)source;
                LOG.info("Last-4=" + card.getLast4()...);
                return card;
            }
        }
    }

最新更新