我很确定这是一个基本问题,但我无法在文档或Google上找到答案。
我试图将费用归咎于客户。 所以,我正在创建一个一次性令牌来为卡充电,但我想弄清楚如何将这笔费用连接到我已经创建的客户。假设客户不想使用以前存储的信用卡。这是我试图做的,但是它返回了一个错误,因为Stripe认为我正在试图向客户和卡充电(这可能是我告诉它要做的,这里)。
$charge = \Stripe\Charge::create(array(
"amount" => $product_price, // amount in cents, again
"currency" => "usd",
"customer" => $customer_id,
"source" => $token,
"description" => "Example charge"
));
有人会如何将一次性代币费用附加给客户?
答案 0 :(得分:1)
在创建费用后,您将无法将已创建的费用归因于客户。同样,一旦令牌被用于收费,您将无法再次使用它。相反,您需要创建一个客户对象,将未使用的令牌附加为source
,然后通过传递customer
参数来创建费用。这里有一个例子:
https://stripe.com/docs/charges#saving-credit-card-details-for-later
答案 1 :(得分: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
,然后将返回的对象(source.id
)的ID传递到您的后端,然后可以使用它来创建与客户相关的费用
PHP:
$charge = \Stripe\Charge::create([
'amount' => 1099,
'currency' => 'eur',
'customer' => 'cus_AFGbOSiITuJVDs',
'source' => 'src_18eYalAHEMiOZZp1l9ZTjSU0',
]);
Ruby:
charge = Stripe::Charge.create({
amount: 1099,
currency: 'eur',
customer: 'cus_AFGbOSiITuJVDs',
source: 'src_18eYalAHEMiOZZp1l9ZTjSU0',
})