You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站通过Stripe集成Apple Pay遇错误,求解决方案

解决Stripe集成Apple Pay时的域名/卡检测错误

先确认ngrok域名在Stripe后台的注册与验证

  • 登录Stripe后台,找到Apple Pay域名配置页,检查当前用的完整ngrok域名(比如xxxxxx.ngrok.io,别加http/https前缀)有没有添加
  • 加完域名后必须完成所有权验证:下载Stripe提供的apple-developer-merchantid-domain-association文件,放到本地服务的/.well-known/目录下,确保通过https://xxxxxx.ngrok.io/.well-known/apple-developer-merchantid-domain-association能直接访问到该文件(返回200状态码,内容与下载文件一致)
  • 注意模式匹配:如果用的是测试密钥(publishable key以pk_test开头),要确保域名添加到测试环境的配置中,别误加到生产环境

检查测试卡的有效性

  • 钱包里的测试卡必须用Stripe支持的Apple Pay测试卡,比如4242 4242 4242 4242,有效期选未来任意日期,CVV随便填3位即可
  • 确保MacBook已登录iCloud账户,且Safari隐私设置未阻止Apple Pay功能

修正代码里的变量错误

你的JS代码存在明显的变量名错误,会直接影响支付流程:

  • 你把PaymentIntent的clientSecret存到了paymentIntent变量里,但后续调用stripe.confirmCardPayment时用了未定义的clientSecret参数,这会导致流程中断。要么把变量名改成clientSecret,要么把调用时的参数替换为paymentIntent。

修正后的代码片段:

// 调整变量名更清晰
var clientSecret = document.getElementById('payment-form').getAttribute('data-stripe-paymentIntent');

// 后续调用使用正确的变量
let {error, paymentIntent} = await stripe.confirmCardPayment(
  clientSecret,
  {
    payment_method: e.paymentMethod.id,
  },
  {
    handleActions: false,
  }
);

确保用HTTPS访问

Apple Pay仅支持HTTPS协议,必须通过https://xxxxxx.ngrok.io访问网站,不能用HTTP地址——ngrok默认提供HTTPS地址,直接使用即可

最后清缓存重新测试

  • 清除Safari的缓存和Cookie,重启浏览器
  • 重新加载页面,检查控制台是否还存在错误

内容的提问来源于stack exchange,提问作者Shaho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:57:13