[英]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.