cordova - Ionic Cordova 中的 Stripe Connect - 无法重定向回应用程序

标签 cordova redirect ionic-framework stripe-connect

框架: Ionic Cordova

API: Stripe Connect(允许用户相互发送付款)。

获取付款的注册过程是通过 Stripe Connects 自己的外部窗口进行的。注册 Stripe Connect 时,它使用重定向 URI(在我的 Stripe 帐户的设置中设置)通过身份验证代码返回到您来自的屏幕。这在浏览器中有效(因为重定向 URI 设置为 localhost 或 IP),但手机上实际运行的应用程序则不然,因为该应用程序没有 URL。因此它显示“网站无法访问/不存在”浏览器错误消息。

我目前使用以下方式打开 Stripe Connect 注册屏幕:

  var link = "https://connect.stripe.com/oauth/authorize?response_type=code&client_id=MYCLIENTID&scope=read_write";

    window.open(link, '_blank', 'location=no');
  • 我已向 Stripe 支持人员寻求帮助,但他们对此没有解决方案。

  • 我尝试过使用 Custom URL Scheme用于为应用程序提供 URL - 但 Stripe 只允许“Http://”URL,而不允许 CoolAppName//:,如自定义 URL 方案所给出的那样。

  • 请不要对此感到困惑:如果我在 cmd 中运行“ionic run -l”,然后使用给定的 URL 作为重定向 URI,它实际上也会使用手机上的身份验证代码重定向回来。但是,会删除应用程序中存储的所有信息,因此它“忘记”了登录的用户。当然,此解决方案也只能在本地工作。

如有任何建议,我们将不胜感激。

提前致谢。

最佳答案

您可以使用任何您想要的网址,您所要做的就是监听 loadstart 事件并检查它是否正在加载该网址以了解重定向是否正常

如果您尚未安装 inAppBrowser 插件,请先安装它 cordova 插件添加 cordova-plugin-inappbrowser

并使用window.cordova.InAppBrowser.open而不是window.open(API很久以前就改变了)

你的代码应该是这样的:

var link = "https://connect.stripe.com/oauth/authorize?response_type=code&client_id=MYCLIENTID&scope=read_write";

var browserRef = window.cordova.InAppBrowser.open(link, '_blank', 'location=no');

browserRef.addEventListener('loadstart', function(event) {
    if((event.url).indexOf(yourRedirectUri) === 0) {
        //Loaded the redirect url
    }
});

其中 yourRedirectUri 是您在 stripe 上使用的 url

关于cordova - Ionic Cordova 中的 Stripe Connect - 无法重定向回应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796456/

相关文章:

ionic-framework - ionic 2 中的多行省略号

Android Phonegap 应用程序 - 如何发送通知

java - 将本地连接重定向到另一台服务器?

javascript - 如何去掉右上角的关闭按钮

java - 重定向到 servlet 失败

angularjs - ionic : no content/white screen using interceptors

android - 如何让 Cordova InAppBrowser 为用户提供一种在使用 Android 设备时关闭浏览器的方法?

cordova - PhoneGap/Cordova : where is the console output?

android - PhoneGap/Android 中的屏幕方向

angular - 如何将 Google map 与 Ionic 3 结合使用