繁体   English   中英

firebase 条带中的动态链接抛出 err_unknown_url_scheme

[英]firebase dynamic links in stripe throws err_unknown_url_scheme

我一直在开发一个带有 firebase 和条纹支付的应用程序。 我在条带中创建了一个结帐 session,并为 success_url 和 cancel_url 添加了 firebase 动态链接。 网址工作正常。 我用一个简单的 html 文件在条带外测试了它们,它打开了应用程序并将用户带到正确的页面。 如果该页面不存在,它将把用户带到指定的网站。 这是条纹结帐 session 代码:

const session = await stripe.checkout.sessions.create({
        line_items: [{
            price_data: { currency: 'INR', unit_amount: amount, product_data: { name: 'name' } },
            quantity: 1,
        }],
        mode: 'payment',
        success_url: 'https://-------.page.link/payment-success',
        cancel_url: 'https://-------.page.link/payment-failed',
        payment_intent_data: {
            application_fee_amount: fee
        },
    }, {
        stripeAccount: req.query.stripeId,
    });

我已经更改了实际链接,因为我不知道我可以分享多少。 但我可以保证动态链接工作正常。 但是在付款之后,至少是测试付款,假设打开应用程序并将用户带到付款成功页面。 并且它在前 2 或 3 天运行良好。 付款后,它重新打开应用程序并将用户带到正确的页面。 但是当我几天后尝试时,这就是它带我们去的: 截屏

同样,我删除了链接,因为我不知道我可以分享多少。 它现在甚至不会打开应用程序。 它只是在浏览器中显示此消息。 成功和取消 url 都在做同样的事情。 为什么链接在 function 之外有效,但在其中却无效? 以前有没有人遇到过类似的问题? 任何帮助将不胜感激。

似乎您正在尝试在 WebView 中打开Checkout Session WebView这会导致重定向出现问题。 Webviews不知道如何处理除http://https://之外的 URL 方案。 话虽如此,您的问题并不少见,并且有多种解决方法。 您的第一种方法是在外部浏览器中打开Checkout Session ,如答案中所述,或尝试创建自己的WebViewClient并覆盖shouldOverrideUrlLoading方法,如答案中所述。 请注意,自从上次编辑该答案以来, shouldOverrideUrlLoading方法的签名已更改,但逻辑仍应以相同方式使用,但不是处理String url ,您将不得不处理WebResourceRequest

有同样的问题。 我通过改变模式解决了它,如下所示:

await launchUrl(
  url,
  mode: LaunchMode.externalApplication, // Add this line
)

url_launcher 版本 => 6.1.7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM