module Pin::API::Charges

Public Instance Methods

capture_charge(token) click to toggle source
# File lib/pin/api/charges.rb, line 20
def capture_charge(token)
  raw_response = api_call(:put, "charges/#{token}/capture")

  pin_response(raw_response, Pin::Models::Charge.new(raw_response['response']))
end
charge(token, params={}) click to toggle source
# File lib/pin/api/charges.rb, line 8
def charge(token, params={})
  raw_response = api_call(:get, "charges/#{token}", params)

  pin_response(raw_response, Pin::Models::Charge.new(raw_response['response']))
end
charges(page=1) click to toggle source
# File lib/pin/api/charges.rb, line 3
def charges(page=1)
  raw_response = api_call(:get, 'customers', {page: page})
  pin_response(raw_response, raw_response['response'].map { |e| Pin::Models::Charge.new(e) })
end
create_charge(email, description, amount, currency, ip_address, token_or_card, capture=true) click to toggle source
# File lib/pin/api/charges.rb, line 26
def create_charge(email, description, amount, currency, ip_address, token_or_card, capture=true)
  require_field email, :email
  require_field description, :description
  require_field amount, :amount
  require_field currency, :currency
  require_field ip_address, :ip_address

  params = {
      :email => email,
      :description => description,
      :amount => amount,
      :currency => currency,
      :ip_address => ip_address,
      :capture => capture
  }

  if token_or_card.is_a?(Hash) then
    params[:card] = token_or_card
  else
    params[token_or_card =~ /^cus_/ ? :customer_token : :card_token] = token_or_card
  end

  raw_response = api_call(:post, 'charges', params)
  pin_response(raw_response, Pin::Models::Charge.new(raw_response['response']))
end