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

Rad*_*Rad 9 redirect cordova 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');
Run Code Online (Sandbox Code Playgroud)
  • 我已经向Stripe支持寻求帮助,但他们没有解决方案.

  • 我已尝试使用自定义URL方案为应用程序提供URL - 但Stripe仅允许"Http://"URL,而不是自定义URL方案提供的CoolAppName //:.

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

任何建议表示赞赏.

提前致谢.

jce*_*ile 5

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

如果您还没有安装,请先安装 inAppBrowser 插件 cordova plugin add 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
    }
});
Run Code Online (Sandbox Code Playgroud)

yourRedirectUri您在条纹上使用的网址在哪里