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

Web应用集成Stripe后部分iOS15.7设备Apple Pay‘双击支付’按钮不显示

iOS15.7设备Stripe Apple Pay“双击支付”按钮不显示的排查方案

设备端设置检查

  • 确认设备已绑定有效且支持当前交易币种/地区的银行卡,可在「设置-钱包与Apple Pay」中核实卡片状态
  • 检查「设置-钱包与Apple Pay」里的「双击侧边按钮支付」功能是否开启
  • 关闭设备的「专注模式」或其他可能限制支付交互的系统设置

Stripe配置与代码调整

验证PaymentRequest参数正确性

  • 确保创建PaymentRequest时,country和currency参数与用户卡片的发行地区/币种完全匹配,iOS15.7对地区适配要求严格
  • 检查total对象的label和amount设置:amount必须为最小货币单位的整数(例如美元传100代表$1.00),不能使用小数或格式错误的数值

优化支付确认逻辑

iOS15.7对支付流程的时序要求与新版本iOS不同,可调整代码中ev.complete()的调用时机:

paymentRequest.on('paymentmethod', function(ev) {
  stripe.confirmCardPayment(
    clientSecret,
    {payment_method: ev.paymentMethod.id}
    // 移除{handleActions: false},让Stripe默认处理后续动作
  ).then(function(confirmResult) {
    if (confirmResult.error) {
      ev.complete('fail');
      // 错误处理逻辑
    } else {
      if (confirmResult.paymentIntent.status === "requires_action") {
        stripe.confirmCardPayment(clientSecret).then(function(result) {
          if (result.error) {
            ev.complete('fail');
          } else {
            ev.complete('success');
            // 支付成功后续逻辑
          }
        });
      } else {
        ev.complete('success');
        // 支付成功后续逻辑
      }
    }
  });
});
  • 移除{handleActions: false}参数,避免手动干预导致的流程中断,让Stripe SDK自动处理支付动作

升级Stripe.js版本

确保使用最新稳定版的Stripe.js,旧版本可能存在iOS15.7的兼容性bug,可通过替换CDN链接或包管理工具更新

调试与日志排查

  • 在问题设备上开启Safari开发者工具,查看控制台是否有Stripe初始化或支付请求相关的错误信息
  • 登录Stripe Dashboard查看事件日志,定位这些设备发起的支付请求状态,确认是否存在未触发的流程节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:15:43