我在一个Laravel项目中使用了Stripe的PHP,而且我在3d安全支付方面有一个奇怪的问题。
PHP版本: 7.4 Stripe-PHP : 7.75.0
当使用PaymentIntent参数和confirmation_method: 'manual'
参数在连接的条带帐户的behlaf上创建stripe_account
时,总会有一个错误声明:
无法使用可发布密钥确认此PaymentIntent pi_XXXXXX,因为它的
confirmation_method
设置为manual
。请使用您的秘密密钥,或者创建一个PaymentIntent,将confirmation_method
设置为automatic
。
我就是这样创造我的意图的:
$paymentIntentParameters = array(
'amount' => $priceAsCents,
'currency' => 'eur',
'payment_method' => $paymentMethodId,
'confirmation_method' => 'manual',
'confirm' => true,
);
$paymentIntent = StripePaymentIntent::create(
$paymentIntentParameters,
['stripe_account' => $store->stripe_token]
);
我听了这里说的一切:https://github.com/stripe-samples/accept-a-card-payment/tree/master/without-webhooks
我所处的情况是,web钩子对我不起作用,而confirmation_method: 'automatic'
也不做这项工作,因为确认是在前端完成的,我们只需要后端上的协作。
有什么快速解决办法吗?
发布于 2021-04-06 11:22:05
为了执行服务器端(手动)确认,您需要遵循这位医生。具体来说,与在前端使用handleCardPayment
不同,在前端使用createPaymentMethod
,在后端使用带有PaymentIntent的结果PaymentMethod,然后在后端确认。链接的文档显示了确切的步骤。
对于3d安全,您需要添加handleCardPayment
。
https://stackoverflow.com/questions/66974709
复制相似问题