我使用 Stripe 的 PHP SDK 创建付款意图,然后使用 Stripe.js 在前端处理付款。以下是我的实现的简要概述:
支付意图创建:在我的 PHP 后端,我正在创建一个启用自动付款方式的支付意图:
$paymentIntent = $stripe->paymentIntents->create([
'automatic_payment_methods' => ['enabled' => true],
'amount' => $_POST['amt'] * 100, // Amount in cents
'currency' => 'usd',
'metadata' => ['customer_email' => $customerEmail],
'phone_number_collection' => ['enabled' => true],
]);
前端设置:我在前端使用 Stripe Elements 来收集卡片详细信息:
const cardElement = elements.create('card');
cardElement.mount('#card-element');
form.addEventListener('submit', async (event) => {
event.preventDefault();
// Fetch client secret and handle payment confirmation...
});
尽管启用了自动付款方式,但自动填充按钮不会出现在信用卡输入框中。我已经检查了以下内容:
客户的电子邮件发送正确,并且与 Stripe 中保存的付款方式相关联。
我正在使用最新版本的Stripe.js。
付款方式
card
和 link
均已在我的 Stripe 仪表板设置中启用。
我希望当卡元素获得焦点时,自动填充按钮会出现在信用卡输入框中,以便用户快速填写已保存的付款详细信息。当用户输入与 Stripe Link 中保存的付款方式关联的电子邮件时,该按钮应该可见。
您应该访问仪表板付款方式设置页面,并确认已为 CardElement 启用链接。