class PensioAPI::Subscription

Public Class Methods

new(transaction) click to toggle source
# File lib/pensio_api/subscription.rb, line 10
def initialize(transaction)
  @transaction = transaction
end
setup(options={}) click to toggle source
# File lib/pensio_api/subscription.rb, line 3
def self.setup(options={})
  request = Request.new('/merchant/API/setupSubscription', options)
  if request.response_contains?('Transactions')
    Transaction.new(request.body['Transactions']['Transaction'])
  end
end

Public Instance Methods

charge(options={}) click to toggle source
# File lib/pensio_api/subscription.rb, line 14
def charge(options={})
  request = Request.new('/merchant/API/chargeSubscription', options.merge(subscription_options))
  Responses::SubscriptionCharge.new(request)
end
reserve_charge(options={}) click to toggle source
# File lib/pensio_api/subscription.rb, line 19
def reserve_charge(options={})
  request = Request.new('/merchant/API/reserveSubscriptionCharge', options.merge(subscription_options))
  Responses::SubscriptionCharge.new(request)
end

Private Instance Methods

subscription_options() click to toggle source
# File lib/pensio_api/subscription.rb, line 26
def subscription_options
  { transaction_id: @transaction.id }
end