我如何使用Stripe将PaymentIntent的客户密码传递给表单?

时间:2019-05-13 14:58:05

标签: php html stripe-payments

我想在我的网站中添加STRIPE,但是我注意到这很难使用,并且网络上没有更多帮助。

我的第一个问题是关于“ 将PaymentIntent的客户机密传递给客户,以便如何以我的html形式传递php变量。

在我创建 PaymentIntent 对象之前,

\Stripe\Stripe::setApiKey('sk_test_8cpWr3HupPdvL9QK9cVToa4w009OYgxfNm');

$intent = \Stripe\PaymentIntent::create([
    'amount' => 0.89,
    'currency' => 'eur',
]);

然后API Stripe建议通过以下方式将PaymentIntent的客户机密传递给客户:

<?php
    $intent = # ... Fetch or create the PaymentIntent;
?>
...
<input id="cardholder-name" type="text">
<!-- placeholder for Elements -->
<div id="card-element"></div>
<button id="card-button" data-secret="<?= $intent->client_secret ?>">
  Submit Payment
</button>
...

这是API页面:https://stripe.com/docs/payments/payment-intents/quickstart#passing-to-client

但是如何在html页面中传递php变量?

有人可以向我解释这是什么客户机密

希望您能为我提供帮助(对不起我的英语,但我是意大利人)。 非常感谢!

1 个答案:

答案 0 :(得分:0)

client_secret是一个property of a PaymentIntent,您可以在前端使用它的可发布密钥。

根据“快速入门”指南中的示例,这是一个基本示例:

<?php
$intent =\Stripe\PaymentIntent::create([
    "amount" => 2000,
    "currency" => "usd",
    "payment_method_types" => ["card"],
]);
?>
...
<input id="cardholder-name" type="text">
<!-- placeholder for Elements -->
<div id="card-element"></div>
<button id="card-button" data-secret="<?= $intent->client_secret ?>">
  Submit Payment
</button>
...

要注意的关键是,您正在代码中创建$intent,然后稍后在表单中回显$intent->client_secret作为适当的值。