【问题标题】:Does apple pay for web support iframes?苹果是否为网络支持 iframe 付费?
【发布时间】:2017-01-17 20:48:55
【问题描述】:

当按钮位于顶级文档中时,我为网络工作支付了 Apple Pay。不幸的是,当在 iframe 中打开时,它会引发以下错误:

Trying to call an ApplePaySession API from a document with an different security origin than its top-level frame.

【问题讨论】:

  • 您的 iFrame 是如何通过 HTTPS 加载的?
  • 我们遇到了同样的问题。这两个网站都是通过 HTTPS 加载的。
  • 是的,iFrame 是通过 HTTPS 加载的。

标签: stripe-payments applepay


【解决方案1】:

ApplePaySession 对象被创建为与与请求相关联的某个域相关联。当商家验证发生时,您收到的商家会话与您在验证商家会话时发布的域相关联的 URL 相关联。如果顶级框架的域与与您的商家会话关联的域不匹配,那么请求将失败,就像您正在发生的那样。

我想这是为了防止恶意脚本注入帧,当商家会话实际上与恶意脚本相关联时,恶意脚本试图诱使用户为与顶级域相关联的商品和服务付费。

也许可以通过让框架中的代码针对与您知道要放置框架的页面关联的域验证商家会话来让事情正常工作,但是这不是我尝试过的场景。

2017 年 12 月 1 日更新

正如本文下方的 cmets 所述,不支持将 Apple Pay 与框架一起使用。

【讨论】:

  • 不。 Safari 将检查单击事件的来源,并且仅适用于顶级框架。我尝试了几种不同的方法,但 iframe(即使使用 HTTPS)不起作用。
【解决方案2】:

多域 SSL 证书不够用吗?单个证书可以识别您的企业管理的多个域。 Apple Pay 流程是否不允许此类证书?

【讨论】:

猜你喜欢
  • 2012-05-05
  • 1970-01-01
  • 2012-09-29
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2018-01-30
  • 1970-01-01
相关资源
最近更新 更多