在 Office js 插件中使用时,由于顶部导航尝试,支付成功后,Stripe payment redirect_url 失败

问题描述 投票:0回答:1

我正在将 stripe payment api 集成到我们的 Office js excel 插件产品中。插件类型是任务窗格。在 stripe js 客户端 api 中,stripe.confirmPayment 采用强制 return_url 参数,我已将其设置为,例如 https://myaddin.azurewebsites.net/taskpane.html.

    const { error } = await stripe.confirmPayment({
      elements,
      confirmParams: {
        return_url: "https://myaddin.azurewebsites.net/taskpane.html?payment=yes",
      },
    });
    if (error.type === "card_error" || error.type === "validation_error") {
      showMessage(error.message);
    } else {
      showMessage("An unexpected error occurred.");
    }

这在 Windows Excel 文档中可以正常工作。但是,如果我在浏览器中加载 Office Web(Microsoft 365)Excel 文档中的插件,成功付款后重定向将被浏览器阻止,因为它实际上正在尝试导航顶级窗口。 Stripe 支付元素使用沙盒中的 iframe,并且没有allow-top-navigation,这就是它被阻止的原因,因为用户的 sharepoint url 或 ms365 url 不应重定向。如何实现仅应重定向内部托管的任务窗格插件的行为?我应该使用任何不需要重定向的替代条纹支付方式吗?

stripe-payments office-js
1个回答
0
投票

对此没有简单的解决方案。我会尝试使用 redirect

if_required
选项。但这并不能真正解决需要重定向时的问题。

除此之外,你的选择非常有限。一种方法是利用结帐会话并从您的加载项重定向该会话应该会容易得多。

© www.soinside.com 2019 - 2024. All rights reserved.