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

使用不同的卡为现有客户创建费用

荣俊
2023-03-14

因此,我有一个已经创建了卡的客户。< br >在前端,我提供了使用现有卡或不同卡的选项。< br >根据API文档,我为新卡创建了令牌,并将其发送到我的后端...

在后端:

const paymentInfo = {
  customer: customerId,
  amount: Number(total) * 100,
  currency: 'usd',
  source: existingCardId || token
}

const charge = await stripe.charges.create(paymentInfo)

如果我用现有的卡支付,费用会通过,但如果我发送一个新的令牌,我会得到一个错误:

Customer cus_G4V0KvxKMmln01 does not have a linked source with ID tok_1FYMLTAOg97eusNI2drudzlJ.

来自API文档:https://stripe.com/docs/api/charges/create

来源可选要收费的支付来源。这可以是卡(即信用卡或借记卡)、银行账户、来源、令牌或关联账户的ID。对于某些来源——即卡、银行账户和附加来源——您还必须传递相关客户的ID。

共有1个答案

贺飞星
2023-03-14

我找到了解决办法:

if (token) {
  const card = await stripe.customers.createSource(customerId, {
    source: token
  })
  paymentInfo.source = card.id
}
 类似资料:
  • 我是新来的Stripe。我在.NET中使用Stripe实现了一个卡支付系统。 我的代码如下: 正如您在上面看到的,我正在传递我存储在DB中的客户ID。 问题是,每个付款客户都输入了相同的到期日相同的卡和CVV123 此外,我是否可以传递付款方式ID(卡ID保存为过去的结帐条纹),以便客户不需要输入卡详细信息,可以直接选择过去用于结帐的卡?

  • 我正在使用Laravel收银台和Stripe来管理订阅。用户将在注册时提供他们的信用卡信息,但此时他们不会在特定计划中订阅。因此,我可以成功地使用Stripe Checkout创建Stripe客户对象,并将Stripe客户ID保存在数据库中。但是当用户注册计划时,我看不到一种方法可以使用Stripe客户ID将他们注册到他们想要的计划中。 当然,我可以再次询问他们的信用卡信息,并获得一个条纹令牌与L

  • 我想向使用关联账户的客户收费。这是我的流程,我在< code>charge响应中收到< code>customer: null,但客户并未被收取费用,尽管交易已经完成。 我正在使用客户ID在服务器端创建令牌。https://stripe.com/docs/connect/shared-customers

  • 我知道我可以在Stripe中为客户保存一张卡片,供以后使用。我的问题是,我可以用主Stripe登录帐户上的卡保存客户,并将该客户用于所有子帐户(连接帐户)吗。还是必须在每个连接的帐户上创建并保存客户才能工作。 条纹付款:保存代币和客户,稍后从代币付款

  • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string

  • 我有一个网站,我想集成Stripe支付网关,当用户注册时,我想在Stripe上创建一个客户,并向他们收取第一个月的费用,例如100美元,从下个月开始,我想向他们收取50美元。 我如何创建客户,然后同时向他们收费并设置定期付款,到目前为止,我只能找到一次性付款系统: 对于经常性付款,我必须在cron中运行此代码还是有更好的方法? 提前感谢。 编辑: 我首先使用以下代码创建了一个客户,然后用他们的收费