10

框架:离子科尔多瓦

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 支持寻求帮助,但他们对此没有解决方案。

  • 我已经尝试使用自定义 URL 方案为应用程序提供一个 URL - 但 Stripe 只允许“Http://” URL,而不是 CoolAppName//:,因为自定义 URL 方案给出了。

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

任何建议表示赞赏。

提前致谢。

4

1 回答 1

5

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

如果您还没有安装,请先安装 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
    }
});

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

于 2016-10-20T07:53:11.333 回答