首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError:#<PayPal::SDK::REST::DataTypes::Payment>的未定义方法`refund_request

NoMethodError:#<PayPal::SDK::REST::DataTypes::Payment>的未定义方法`refund_request
EN

Stack Overflow用户
提问于 2017-05-05 08:21:56
回答 1查看 61关注 0票数 0

rails 4.2.6 ruby 2.3.1

我正在使用Ruby,并且已经成功地创建了支付并保存了payment_id。我在尝试开具退款时收到以下错误。

NoMethodError: undefined method 'refund_request' for #<PayPal::SDK::REST::DataTypes::Payment>

代码语言:javascript
复制
  def self.refund_successful?(payment_id)
    require 'paypal-sdk-rest'
    include PayPal::SDK::REST
    include PayPal::SDK::Core::Logging
    PayPal::SDK::REST.set_config(
      :mode => "sandbox", # "sandbox" or "live"
      :client_id => ENV["paypal_client_id"],
      :client_secret => ENV["paypal_client_secret"])
    payment = Payment.find(payment_id)
    refund = payment.refund_request # <= Error occurs here.
    refund = payment.refund_request({}) # <= Also tried this.
    if refund.success?
      return true
    else
      return false
    end
  end

我没有在refund_request方法中添加任何参数,因为退还的金额是“全部”金额而不是“部分”金额。虽然,只是为了测试目的,我添加了amount,但仍然收到相同的错误。

这是我从PayPal上看到的:

https://github.com/paypal/PayPal-Ruby-SDK/blob/master/samples/sale/refund.rb

EN

回答 1

Stack Overflow用户

发布于 2017-05-05 17:55:39

这是一个类中的方法吗?如果是这样,请记住,当您使用self.method_name定义方法时,它被视为类常量,不能在实例化的类上调用。

例如

代码语言:javascript
复制
class HelloWorld
  def self.foo
    puts "Hello World!"
  end

  def bar
    puts "Hello World!"
  end
end

只能通过以下方式调用foo方法

代码语言:javascript
复制
HelloWorld.foo

bar方法只能通过首先实例化类,然后调用该方法来调用。例如,

代码语言:javascript
复制
hello_world = HelloWorld.new
hello_world.bar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43794670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档