[英]Rails 4 Paypal REST API integration
我已经安装了gem和GitHub所说的。 我已经创建了一个用于创建付款说明的单独模型,但是不确定如何从我的订单控制器中调用付款 。 另外,我还需要能够从订单中动态设置“付款”属性,但是我尝试了几种不同的尝试来实现这一点,但是没有运气。
我尝试在订单控制器中调用Payments.pay,但出现错误,提示不存在方法pay,但在Payments类中确实有该方法。 Payments类的部分代码为:
class Payments < PayPal::SDK::REST::Payment
def pay
@payment = Payment.new({
:intent => "sale",
:payer => {
:payment_method => "credit_card",
:funding_instruments => [{
:credit_card => {
:type => "visa",
:number => "4567516310777851",
:expire_month => "11",
:expire_year => "2018",
:cvv2 => "874",
:first_name => order.first_name, # Need to do something similar to this but doesn't work
# etc...
end
end
总结一下,我需要帮助的是如何在另一个控制器或模型中调用此方法,以便可以处理付款以及如何动态设置字段?
我看到了一些潜在的问题。
首先,您将方法用作类方法,因此应该
def self.pay结束
为了使Payments.pay正常工作。 当前定义它的方式是作为实例方法。
如果要在控制器中调用此方法并动态传递字段,则需要编辑pay函数以接受参数。 并可能将此类导入控制器。
您可能只想在其中一个控制器中创建一个before_action:pay回调并定义方法/调用Paypal SDK,如下所示。 这将允许您获取参数并在方法中使用它们(尽管我不认为您应该处理抄送号码,但Paypal可能会处理此事并传递给您某种您随后使用的令牌)。 还请注意Paypal命名空间库的方式,在调用Paypal :: SDK :: REST等时可能会很棘手。
class PaymentsController < ApplicationController
before_action :pay
def create
@order = Order.find(params[:id])
end
private
def pay
@payment = PayPal::SDK::REST::Payment.new({
:intent => "sale",
:payer => {
:payment_method => "credit_card",
:funding_instruments => [{
:credit_card => {
:type => "visa",
:number => params[:number],
:expire_month => params[:month],
:expire_year => params[:year],
:cvv2 => params[:cvv],
:first_name => @order.first_name, # Need to do something similar to this but doesn't work
# etc...
end
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.