【问题标题】:Where should we make api calls in rails?我们应该在哪里调用rails?
【发布时间】:2017-01-06 17:34:31
【问题描述】:

我正在开发一个 Rails 应用程序,我必须在其中集成一些支付网关。 现在,这些网关的功能之一是 3Dsecure 支付。 这些付款的流程是这样的。

  1. 用户在表单中输入他的帐单地址详细信息等。
  2. 服务器向支付网关(PG)服务器发送安全支付请求
  3. PG 返回一个特殊的链接,需要重定向用户。
  4. 用户转到该链接,输入卡信息和/或输入安全的银行代码。
  5. PG 的服务器通过提供的返回 URL 将用户发送回我们的服务器,并带有一些凭据。
  6. 我们的服务器通过另一个 api 调用验证支付是否成功
  7. 成功后,我们在数据库中保存一行。

现在我很困惑如何在 Rails 中实现这种行为。

  • 如果我在模型中进行 api 调用,我无法从那里重定向用户。
  • 如果我在控制器中进行 api 调用,我无法将错误发送到表单,以防任何 api 调用引发错误。
  • 我只需要在回调中保存付款详细信息,但如何在回调函数中访问提交的表单数据。
  • 我应该在哪里实现我的回调函数。

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller architecture payment-gateway


    【解决方案1】:

    编写一个 PORO 包装类并将其放入 lib 文件夹中。这样您就可以在需要的任何地方重复使用它。

    另一种选择是制作一个处理数据的非 AR“模型”,然后让控制器进行重定向

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多