我和我的团队正在从事一个AR和 VR 项目——大约在 2017 年年中,我们面临的最困难的问题是将自定义支付网关集成到我们基于 Unity 构建的应用程序中。迄今为止,许多开发人员曾经给我发电子邮件,以帮助他们进行支付网关集成,因此决定在这里分享。
我们有一个用例,我们必须从客户那里收取付款并在我们的后端电子商务商店中更新它。
我们有两种选择,一种是通过 Unity 使用可用的支付解决方案,或者与其他支付网关建立我们自己的集成。
现成的解决方案不适合,因为它接受美元付款,即使某些应用内购买解决方案以我们的区域货币 (INR) 运行,它也很昂贵。所以我们找到了一种解决方法,可以将自定义支付网关与任何 Unity 应用程序集成。
以下是我用于我的应用程序的步骤,但它应该类似于您的用例和任何其他支付网关。我个人觉得 Razorpay 很舒服,因为有很好的技术支持,而且他们有其他支付网关没有的功能,我稍后会谈到。
这就是它的工作原理。
大多数情况下,每个支付网关都有某种基于 Web 的结账功能,仅适用于浏览器。我们决定使用它。因为我们只需要一个浏览器,所以很容易打开 webview。您可以使用内置功能直接从 Unity 打开网站,但我很容易使用这个资产 — “UniWebView”,它非常简单直接。
Razorpay 标准 Web 集成( https://razorpay.com/docs/payment-gateway/web-integration/standard/ )
UniWebView ( https://uniwebview.com/ )
这个概念很简单,
我使用标准结帐代码在我的服务器中托管了一个 PHP 页面,并从 Unity webview 访问了该页面。名称、价格和其他动态部分等所有值都作为参数传递。因此,如果您觉得它是多余的或额外的步骤,我们将在我们的托管页面上提供立即付款按钮或结帐按钮,您可以在该页面加载时设置自动触发。多田!现在您可以向客户收取款项。剩余的流程取决于您的用例。
如果你来自印度,你可能会遇到这个问题。我们有多重身份验证,您必须在其中输入一次性密码或某种 pin。像 Stripe 和 Paytm 这样的支付网关不是重定向我们现有的页面,而是打开一个弹出窗口或一个新窗口。这将在普通浏览器中工作,但由于我们使用的是 Unity web 视图,因此弹出窗口是不可能的。
这就是 Razorpay 的厉害之处。您可以设置是否要在他们的标准结帐代码中重定向或打开一个新窗口。您可以在此链接 ( https://razorpay.com/docs/payment-gateway/callback-url/ ) 上阅读相关内容,以防万一该链接已过时,您可以随时咨询 Razorpay 的技术支持,他们会为您提供帮助.
让我知道是否还有其他我在这里没有提及的内容。谢谢 :)