无法在 Cordova 上加载 Stripe 3ds iframe

Unable to load Stripe 3ds iframe on Cordova

我很难为条纹实现 3ds。 自从我更新到 cordova 10、android@9.1 和 ios@6.2 后,我无法再为 3ds 加载 iframe。 Intent 设置正确,我在 Phone 上收到 3ds 文本消息,但看不到 iFrameContent。我尝试更改 index.html 中的 Content-Security-Policy 和 config.xml 中的 allow-navigation。

这些是我的 config.xml 属性:

    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <allow-navigation href="about:*" />
    <allow-navigation href="https://*/*" />

这里是我如何设置 CSP 的:

<meta
    http-equiv="Content-Security-Policy"
    content="
             connect-src * 'self' 'unsafe-inline';
             script-src * 'self' 'unsafe-inline';
             frame-src https://*.stripe.com;"
>

这是我得到的错误:

根据 stripe documentation,您需要将这些规则附加到您的 CSP

但我仍然无法加载包含 3ds 的 iframe。

有线索吗?谢谢!

尝试使用 ionic webkit "cordova-plugin-ionic-webview",添加

    <preference name="ScrollEnabled" value="true" />
    <preference name="Scheme" value="https" />
    <preference name="MixedContentMode" value="2" />

到你的config.xml(这是ionic-webview特有的),最后添加frame-ancestors 'self' https://*.stripe.com;到你的csp配置。

对我有用

我正在为所有在同一问题上苦苦挣扎的人写这篇文章。我设法通过将条带逻辑和卡片管理移到 Cordova 默认浏览器包装器(即 WKWebView)之外来解决这个问题。我已经获得了条纹支持,他们也认为这与 WKWebView 安全有关。

只需安装 cordova-plugin-inappbrowser 并使用 InAppBrowser.addEventListener

与您的应用程序通信