使用 PaymentIntent 进行 Stripe 3d 安全支付

Posted

技术标签:

【中文标题】使用 PaymentIntent 进行 Stripe 3d 安全支付【英文标题】:Stripe 3d secure payment using PaymentIntent 【发布时间】:2021-10-11 22:08:50 【问题描述】:

我正在尝试实施 Stripe PaymentIntent。当我创建 PaymentIntent 对象时,我将它 request_three_d_secure 传递给 payment_method_options 但创建的 PaymentIntent 未在确认时请求 3d 安全付款。下面是我创建 PaymentIntent 对象的方式。

$paymentIntent = \Stripe\PaymentIntent::create([
     'amount' => 1099,
     'currency' => 'usd',
     'customer' => 'cus_XXXXXXXXXXXXX',
     'payment_method_types' => ['card'],
     'payment_method_options' => '[card][request_three_d_secure][any]',
     'payment_method' => 'card_XXXXXXXXXXXXXXXXXXXXX',
]);

$paymentIntent =  $stripe->paymentIntents->confirm(
    $paymentIntent->id,
    ['payment_method' => 'pm_card_visa']
);

我是否正确地创建了 PaymentIntent 对象?有其他人遇到过与此相关的任何问题吗?

【问题讨论】:

【参考方案1】:

在您的confirm 通话中,您将用另一种“未注册”的测试付款方式替换card_xxx 的任何内容。有关对测试卡的手动 3D 安全支持的详细信息,请参阅here。这里还有SCA测试卡。

对于这种情况,您可能希望附加 pm_card_threeDSecureOptional,然后手动 3DS 请求应该会像您预期的那样工作。

【讨论】:

以上是关于使用 PaymentIntent 进行 Stripe 3d 安全支付的主要内容,如果未能解决你的问题,请参考以下文章

Stripe PaymentIntent 键未定义 |无法从控制器传递 ClientSecret 密钥 | ASP.NET MVC

Stripe - 当我使用零计划更新订阅时,PaymentIntent 为空

从 PaymentIntent 获取购买的产品

Stripe PaymentIntent.create 导致 TypeError:无法读取未定义的属性“创建”(谷歌云函数)

使用 gcov 进行交叉分析,但忽略 GCOV_PREFIX 和 GCOV_PREFIX_STRIP

在多个分支上使用rebase + strip后,tortoisehg会挂起更新