修改Stripe嵌入式结账会话配置后出现JSON.parse解析错误的排查求助
修改Stripe嵌入式结账会话配置后出现JSON.parse解析错误的排查求助
我完全照搬了Stripe的嵌入式表单示例代码,现在想要添加促销邮件同意收集的功能。
在示例的checkout.php文件中,我添加了这一行配置:
'consent_collection' => ['promotions' => 'auto']
结果Stripe的js.stripe.com/v3脚本返回了JSON解析错误,具体报错信息如下:
Uncaught (in promise) IntegrationError: fetchClientSecret failed with error "JSON.parse: unexpected end of data at line 1 column 1 of the JSON data" r https://js.stripe.com/v3/:1 n https://js.stripe.com/v3/:1 r https://js.stripe.com/v3/:1 t https://js.stripe.com/v3/:1 e https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 promise callback*e https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 Q https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 Ki https://js.stripe.com/v3/:1 promise callback*Ki https://js.stripe.com/v3/:1 initEmbeddedCheckout https://js.stripe.com/v3/:1 initialize https://testing.ivyaudio.com/checkout.js:16 <anonymous> https://testing.ivyaudio.com/checkout.js:4 v3:1:712678 e https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 (Async: promise callback) e https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 Q https://js.stripe.com/v3/fingerprinted/js/embedded-checkout-outer-60acd9aac45305c6390331b023b051cf.js:4 Ki https://js.stripe.com/v3/:1 (Async: promise callback) Ki https://js.stripe.com/v3/:1 initEmbeddedCheckout https://js.stripe.com/v3/:1 initialize https://testing.ivyaudio.com/checkout.js:16 <anonymous> https://testing.ivyaudio.com/checkout.js:4
而且不止这一个修改会触发错误——我按照示例文档的建议,把配置中的payment改成subscription时,也会出现完全相同的错误。
Stripe有一篇相关的故障排查文档,但它默认错误是由我自己的JS代码导致的,而不是Stripe官方脚本抛出的,所以这篇文档对我没什么帮助。
我显然漏掉了某个关键环节,想请教两个问题:
- 怎么才能查看到导致JSON解析错误的具体对象?
- 为什么只要我修改
checkout_session中的任何配置,Stripe就会抛出这个错误?
备注:内容来源于stack exchange,提问作者Simon




