【发布时间】:2011-06-12 21:41:28
【问题描述】:
我一直在集思广益,想出最好的方法来做到这一点,并认为我应该向社区寻求一些想法/澄清。
基本上从一个支付控制器,我希望能够处理用户可能选择的各种支付选项。例如,我的控制器收到:payment_option => paypal 的发布请求。我想传递逻辑来处理特定于贝宝的操作,然后将 URL(到贝宝)交给控制器以重定向到。
我正在做一个params[:payment_option].constantize 来初始化一个 Paypal 类,但我遇到的问题是无法访问 paypal 需要的各种数据(即当前用户信息、请求 IP 地址、cookie 数据、url 帮助程序、等等)
然后我想也许我可以有一个贝宝模块,但是如何以编程方式包含正确的支付模块?似乎我可能误用了模块概念,因为我会将模块用于特定逻辑,而不是共享逻辑。
因此,如果用户改为选择 google checkout,则无论支付方式如何,控制器都应该只需要通用指令
获取参数[:payment_option] 获取 payment_option_url 接收 payment_option_response
对做这种事情的好方法有什么想法吗?我过去也遇到过类似的情况,但从未确定这是最好的路线。
【问题讨论】:
标签: ruby-on-rails architecture