1

因此,我正在构建一个类似于 kickstarter/gofundme 等的应用程序,一旦达到价格目标,它就会向所有贡献的客户收费。我的流程是,当客户为价格目标做出贡献时,我创建一个条带客户并存储他们的 ID:

    customer = stripe.Customer.create(
      email = <user_email>,
      source = <stripe_customer_token>
    )

我将此信息存储在数据库中的一个数组中。一旦达到价格目标,我就使用经过条纹验证为合法的初始卡对每个客户收费的阵列进行迭代。

    for customer in customer_array:
      charge = stripe.Charge.create(
        amount = <amount>,
        customer = <customer>,
      )

我预见的问题是,有时这些价格目标会持续数周。在第 1 天,客户可以贡献并通过条带验证为合法卡,但在 3 周内该卡可能会过期或被取消等。有没有办法在收取客户令牌之前对其进行某种验证确定它仍然合法吗?我不想在一个数组中迭代超过 9/10 的客户,并以合法为由向他们收费,然后用一张无效卡击中数组中的最终客户。我正在使用 stripe.js,所以希望有一个不包含条纹 api 的解决方案。谢谢。

4

1 回答 1

1
\Stripe\Charge::create(array(
  "amount" => 2000,
  "currency" => "usd",
  "capture" => false,
  "source" => "tok_mastercard", 
  "description" => "Charge for avery.moore@example.com"
));

先用 capture false 给它充电,然后用上面返回的 id 捕获它。使用这种方法,您可以更有信心地验证卡片。在极端情况下,例如信用卡取消或被盗,银行可以否决所有预留资金命令。

$ch = \Stripe\Charge::retrieve("ch_1C9s1N2eZvKYlo2Cmpk4KBgS");
$ch->capture();
于 2018-03-26T09:56:24.280 回答