Ionic Cordova中的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,而不是自定义URL方案提供的CoolAppName //:.
>请不要对此感到困惑:如果我在cmd中运行“ionic run -l”,然后使用给定的URL作为重定向URI,它实际上也会使用手机上的身份验证代码重定向.但是,删除存储在应用程序中的每个信息,因此它“忘记”用户登录的内容.当然,此解决方案也只能在本地使用.

任何建议表示赞赏.

提前致谢.

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

首先安装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是您在条带上使用的网址

相关文章
相关标签/搜索