Stripe 付款后如何从 Webview 重定向到 React Native Expo 应用程序?

Posted

技术标签:

【中文标题】Stripe 付款后如何从 Webview 重定向到 React Native Expo 应用程序?【英文标题】:How to redirect to React Native Expo app from Webview after Stripe payment? 【发布时间】:2020-05-19 22:11:07 【问题描述】:

我目前正在使用 React Native Expo 开发一个移动应用程序。为了避免分离,我在 WebView 中使用 Stripe 仅限客户端的结帐页面。

我的问题是如何将成功/取消的付款从 WebView 重定向回我的应用程序中的特定屏幕?

【问题讨论】:

批准的绿色勾号是表示已为提问者解决问题的标准方式;无需添加“[已解决]”或类似的内容。您可能已经知道,因为没有其他问题有(除非他们这样做;那么它将被删除)。 【参考方案1】:

我遇到了类似的问题 - 如果您提前知道重定向 url 的样子......这就是我所做的......所以在我的例子中,让我们调用我的 url http://google.com

   render() 
      return (
      
       <WebView
         onNavigationStateChange= 
             (e) =>  
               if(e.url == "https://www.google.com/") this.props.navigation.navigate("NewsFeed")
             
          
       source= uri: 'https://a-url-to-load'  style=styles.WebView />
      )
   ;
  

当然你应该提取那个函数来做更复杂的事情......等等

【讨论】:

谢谢!正如接受的答案中所建议的,这比深度链接回应用程序要简单得多。【参考方案2】:

我认为你想要在这里做的是使用Deep Links 作为返回 URL,它应该允许你回到应用程序 - 你可以使用路径来指定它应该到达的确切位置。

【讨论】:

我是否需要脱离 expo 才能使用深度链接? 我不确定你的意思,但深度链接提供了一种返回应用程序特定位置的方法(假设你有一个处理程序),所以你必须在您的应用之外使用它...? 不幸的是,深层链接似乎不适用于条带。它不会注册为有效的successUrl。相反,我想尝试劫持返回的 url 并在加载之前从我的 WebView 导航回屏幕。关于如何做到这一点的任何想法? 哦,是的,好吧 - 它可能不适用于 Checkout,这很公平。您可能想要在这里做的是有一个可以重定向到的服务器端 URL,然后将重定向回深层链接。 是的!这就是我最终做的。有一个 EC2 实例侦听基于路径 /successful 和 /cancelled 重定向的请求。感谢您的帮助!

以上是关于Stripe 付款后如何从 Webview 重定向到 React Native Expo 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

条带付款后如何访问响应/重定向?

有没有办法在使用联系表 7 付款后重定向到特定的感谢页面?

执行贝宝付款后如何重定向?

Stripe 无法在 webview 中进行支付错误

如何解决Stripe元素的react导致重定向内存泄漏的问题。

Stripe Connect Express Webhook - 如何在用户完成 Stripe Connect Express 表单并被重定向后触发 Stripe Webhook