Stripe:使用一次性令牌向客户收取属性费用

问题描述 投票:0回答:2

我很确定这是一个基本问题,但我无法在文档或谷歌上找到答案。

我试图将收费归功于客户。所以,我正在创建一个一次性令牌来为卡充电,但我想弄清楚如何将这笔费用连接到我已经创建的客户。假设客户不想使用以前存储的信用卡。这是我试图做的,但它返回一个错误,因为Stripe认为我正在试图向客户和卡充电(这可能是我告诉它要做的,这里)。

$charge = \Stripe\Charge::create(array(
  "amount" => $product_price, // amount in cents, again
  "currency" => "usd",
  "customer" => $customer_id,
  "source" => $token,
  "description" => "Example charge"
));

如何将一次性令牌费用附加给客户?

stripe-payments
2个回答
1
投票

在创建费用后,您将无法将已创建的费用归因于客户。同样,一旦令牌被用于收费,您将无法再次使用它。相反,您需要创建一个客户对象,将未使用的令牌作为source附加,然后通过传递customer参数来创建费用。这里有一个例子:https://stripe.com/docs/charges#saving-credit-card-details-for-later


0
投票

对于那些多年后通过搜索找到这个的人

可以通过Stripe进行一次性使用,并将其归于客户,而无需将该卡保存为客户的可重复使用的来源 - https://stripe.com/docs/stripe-js/reference#stripe-create-source

它是通过在Stripe.js或Elements中使用Source API实现的,也就是说,通过创建一个“独立”source,而不是卡token - https://stripe.com/docs/stripe-js/reference#stripe-create-source

在对卡进行标记时,这是一个必须附加到客户的可重用源,在创建可用于一次性使用费的源时,您可以选择将其附加到客户进行内部跟踪。此来源不能再用于任何未来的交易。

使用Stripe.js或Elements中的stripe.createSource,然后将返回对象的id(source.id)传递给后端,然后您可以使用它来创建与Customer关联的费用。

PHP:

$charge = \Stripe\Charge::create([
  'amount' => 1099,
  'currency' => 'eur',
  'customer' => 'cus_AFGbOSiITuJVDs',
  'source' => 'src_18eYalAHEMiOZZp1l9ZTjSU0',
]);

红宝石:

charge = Stripe::Charge.create({
  amount: 1099,
  currency: 'eur',
  customer: 'cus_AFGbOSiITuJVDs',
  source: 'src_18eYalAHEMiOZZp1l9ZTjSU0',
})
© www.soinside.com 2019 - 2024. All rights reserved.