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

stripe:Source vs . Card vs . Bank vs . Payment Method有什么不同?

贺宏逸
2023-03-14

我第一次使用Stripe,我对它们提供的不同API有点困惑。有一个支付方法API,这是为客户处理支付方法的推荐方法,但如果我理解正确的话,目前它只支持信用卡...

但我需要不同的付款方式,例如银行账户。因此,Stripe提供了Card、Bank和Source对象。他们之间有什么不同?

我尝试了他们每个人,看不到他们的行为有任何不同。我的主要问题是,如果客户愿意,我想更改付款的默认来源。因此,客户对象提供了一个default_source参数,但在我更改默认源时,它不会更改它。我试图将默认值从卡更改为银行,但它不起作用。所以我认为我误解了付款方式,来源,卡和银行对象的概念。

那么谁能解释一下我必须如何使用这些不同的对象呢?

我在下面为您提供我的代码。

我用于设置默认源的代码(不改变Stripe dashboard的任何内容):

const customer = req.body.customer;
const token = req.body.token;

stripe.customers.update(
   customer,
   {
     default_source: token //token looks like btok_231disjaohq0dj21sp
   }
).then(customer => {
    res.send(customer);
}).catch(err => {
        res.send(err);
});

我创建银行帐户的代码(有效):

stripe.tokens.create({
        bank_account: {
            country: 'US',
            currency: 'usd',
            account_holder_name: decoded.account_holder_name,
            account_holder_type: 'individual',
            routing_number: '110000000',
            account_number: '000123456789'
        }
    }).then(token => {
    
        stripe.customers.createSource( //there is .create and .createSource whats the difference?
            decoded.userId,
            {
                source: token.id
            }

        ).then(bank_account => {
            res.send(bank_account);
        }).catch(err => {
            res.send(err);
        })

    }).catch(err => {
        res.send(err);
    });

我的代码创建信用卡(有效):

stripe.paymentMethods.create({
        type: "card",
        card: {
            number: decoded.number,
            exp_month: decoded.month,
            exp_year: decoded.year,
            cvc: decoded.cvc
        }
    }).then(token => {

        stripe.paymentMethods.attach(
            token.id,
        {
          customer: decoded.customer, 
        }
        ).then(card => {
            res.send(card);
        }).catch(err => {
            res.send(err);
        });

    }).catch(err => {
        res.send(err);
    });

共有1个答案

孔飞舟
2023-03-14

这些仅仅是Stripe随时间推移创建的不同对象/API。支付方式是当前API中新产品和功能开发的重点。

如果你想了解进步背后的一些历史和思考,这篇博客文章是一个很好的资源。

 类似资料:
  • 我刚刚开始使用MongoDB,我注意到它使用BSON在内部存储数据。然而,关于什么是BSON以及如何在MongoDB中使用BSON,文档并不十分清楚。有人能给我解释一下吗?

  • 本文向大家介绍flex与其他有什么不同,用它有什么好处?相关面试题,主要包含被问及flex与其他有什么不同,用它有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 flex 从根本上不同于之前常用的借助 定位、浮动 的布局。从逻辑思路上来说,flex 布局具有宏观性,提供了一种对于页面中元素如何排布的框架,开发者不需要关注细节和进行额外的操作,就能使得一系列元素按约定的规则排列。而之前常用的借

  • 本文向大家介绍getComputedStyle和element.style有什么不同?相关面试题,主要包含被问及getComputedStyle和element.style有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 element.style 只能获取内联样式属性 getComputedStyle() 可以获取所有样式属性

  • 本文向大家介绍frame和bounds有什么不同?相关面试题,主要包含被问及frame和bounds有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 答案:frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统) bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)  

  • 本文向大家介绍"attribute"和"property"有什么不同?相关面试题,主要包含被问及"attribute"和"property"有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 property 是DOM中的属性,是JavaScript里的对象 可以读取标签自带属性,包括没有写出来的 不能读取attribute设置的属性 获取方式:读:element.property;     

  • 除了上面还有什么不同吗?。如何工作Rowmapper内部和返回类型是列表?。

  • 我知道ElasticSearch是基于Apache Lucene构建的,但我想知道两者之间的显著差异。

  • Apache Mesos和Nomad有什么不同? Mesos不支持联邦或多个故障隔离区。Nomad支持多数据中心和多区域配置,以实现故障隔离和可伸缩性。 不确定这是否仍然适用于Apache Mesos?