当前位置: 首页 > 知识库问答 >
问题:

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

于恺
2023-03-14

在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位数字,以向他们显示他们当前默认的支付选项。但如果有多张卡,我怎么知道?

共有3个答案

梁丘烨
2023-03-14

使用最新的Stripe SDK,我无法使用< code > 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;
            }
        }
    }
郗鹏
2023-03-14

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

ExternalAccount defaultSource = customer.getDefaultSourceObject();
Card defaultCard = (Card) defaultSource; // if it's a card
吴弘壮
2023-03-14

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

您还可以通过利用客户对象上的获取默认来源对象() 方法直接获取默认付款源。

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

换句话说,将您的< code >指纹与默认源的< code >指纹进行比较,您就会得到答案。

希望有所帮助!

 类似资料:
  • 我在Stripe中创建了一个带有客户/信用卡的POC,我在Stripe中登录了我的仪表板,并且能够看到该客户有一个正确关联的默认来源(我添加的测试信用卡)。它显示这张卡是默认来源。 当我运行这个。网络代码: 为了得到该客户,它会正确地返回除其来源之外的所有内容。我希望能从中找到它的所有字段都是空的!我想知道他的默认付款来源,这样我就可以在前端显示它,并用一个小图标表示它是默认的。 DefaultS

  • 问题内容: 我希望我的python应用程序能够知道另一侧的套接字何时被删除。有办法吗? 问题答案: 这取决于您所说的“丢弃”。对于TCP套接字,如果另一端通过close()或进程终止来关闭连接,则可以通过读取文件结尾或读取错误来找出错误,通常将errno设置为“对等”由您的操作系统决定。对于python,您将读取长度为零的字符串,否则将导致套接字。尝试从套接字读取或写入时将引发错误。

  • 我使用的是Laravel5.8版和出纳10.7版。1. 我想开始并收取用户注册时的每月订阅费。 所以我写进了RegisterController。php 此外,我还将其添加到注册表中。刀身php文件: 以及: Stripe\Exception\InvalidRequestException此客户没有附加的付款来源或默认付款方式。 有什么问题?我怎么能修好它?

  • 是否可以从Stripe中删除付款方式?我似乎找不到文档中描述的功能。您可以创建一种付款方式,将其附加到客户,并将其与该客户分离,但如何从Stripe的系统中完全删除该付款方式? 如果你不能,那就意味着一旦你把你的信用卡信息发给Stripe,你就再也收不回来了…

  • 问题内容: 我有这段代码,用于检查从我的应用程序中许多地方调用的Activity的Intent中是否有多余的值: 如果未设置isNewItem,我的代码会崩溃吗?在我调用它之前,有什么方法可以告诉它是否已设置吗? 处理此问题的正确方法是什么? 问题答案: 正如其他人所说,两者和都可能返回null。因此,您不想将调用链接在一起,否则您可能最终会调用,这将引发并导致应用程序崩溃。 这就是我要完成的方法

  • 问题内容: 在Linux中使用屏幕时,如何确定我是否在屏幕中?如果可以,我可以退出屏幕,但是如果没有,那么我将关闭终端。 在执行操作时,我可以查看是否还连接了其他屏幕,但是如何知道我的当前终端是否是这些已连接屏幕之一? 问题答案: 检查。如果为空,则您位于“真实”终端上。如果包含任何内容,则为您所在屏幕的名称。 如果您不在屏幕上: 如果您在屏幕上: