我正在使用带有Stripe支付元素的Laravel。我正在尝试显示我们已经拥有的客户的保存的卡片。我遵循了stripe文档并找到了如何在结帐时显示它的方法。但问题是我没有得到客户的保存的卡片。相反,我在控制台上遇到了错误:
当使用临时密钥进行身份验证时,您必须将Stripe-Version标头设置为明确的API版本,例如2020-08-27。
我已经检查并更改了很多版本从这里开始:
$ephemeralKey = \Stripe\EphemeralKey::create(
['customer' => "$user->stripe_customer_id"],
['stripe_version' => '2019-11-05']
);
我将版本更改为我在Stripe仪表板上看到的不同版本:
这是我的JS初始化函数:
// Fetches a payment intent and captures the client secret
async function initialize() {
// Customize the appearance of Elements using the Appearance API.
const appearance = { /* ... */ };
// Enable the skeleton loader UI for the optimal loading experience.
const loader = 'auto';
const { clientSecret, customerOptions } = await fetch("{{ route("user-create-stripe-element-payment") }}", {
method: "POST",
headers: {
"Content-Type" : "application/json",
"accept" : "application/json",
'X-CSRF-TOKEN': "{{ csrf_token() }}",
'stripe_version':"2019-11-05"
},
body: JSON.stringify({ totalCharge:total }),
}).then((r) => r.json());
elements = stripe.elements({
clientSecret,
appearance,
loader,
customerOptions
});
const paymentElement = elements.create("payment");
paymentElement.mount("#payment-element");
}
我也使用文档中提供的测试版:
const stripe = Stripe("{{env('STRIPE_KEY')}}", {
betas: ['elements_customers_beta_1'],
});
但是这个错误没有消失。而且它甚至没有填充付款元素。
请帮助我调试这个问题,或者如果有人有任何建议来检查这里发生了什么。
提前感谢。