class Mercadopago::Sdk

Attributes

client_id[RW]
client_secret[RW]
sandbox[RW]

Public Class Methods

new(client_id, client_secret, sandbox=false) click to toggle source
# File lib/mercadopago/sdk.rb, line 10
def initialize(client_id, client_secret, sandbox=false)
  @client_id = client_id
  @client_secret = client_secret
  @sandbox = sandbox
end

Public Instance Methods

access_token() click to toggle source
# File lib/mercadopago/sdk.rb, line 26
def access_token
  @access_token ||= get_access_token["access_token"]
end
build_url(action, token=true) click to toggle source
# File lib/mercadopago/sdk.rb, line 129
def build_url(action, token=true)
  if token
    sandbox_prefix + action + "?access_token=#{access_token}"
  else
    sandbox_prefix + action
  end
end
cancel_payment(payment_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 108
def cancel_payment(payment_id)
  url = build_url "/collections/#{payment_id}"
  Rest::exec(:put, url, {:status => "cancelled"}, true )
end
create_checkout_preference(data, exclude_methods=nil) click to toggle source
# File lib/mercadopago/sdk.rb, line 30
def create_checkout_preference(data, exclude_methods=nil)
  unless exclude_methods.nil?
    data[:payment_methods] = {
      :excluded_payment_methods => exclude_methods
    }
  end
  url = "/checkout/preferences?access_token="+access_token
  Rest::exec(:post, url, data, true)
end
create_preapproval_payment(data) click to toggle source

This method create a preapproval payment (recurrent payment) Recive a data hash with this structure:

data = {

payer_email: String,
back_url: String,
reason: String,
external_reference: String,
auto_recurring: {
  frecuency: Number,
  frequency_type: String,  // months or days
  transaction_amount: Number,
  currency_id: String,
  start_date,
  end_date
}

For more information about avaliable options go to developers.mercadopago.com/documentation/glossary/recurring-payments

# File lib/mercadopago/sdk.rb, line 69
def create_preapproval_payment(data)
   url = "/preapproval?access_token="+access_token
   Rest::exec(:post, url, data, true)
 end
create_test_user(site_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 98
def create_test_user(site_id)
  url = build_url "users/test_user"
  Rest::exec(:post, url, { :site_id => site_id }, true )
end
get_access_token() click to toggle source
# File lib/mercadopago/sdk.rb, line 16
def get_access_token
  url = "/oauth/token"
  data = {
    :grant_type => "client_credentials",
    :client_id => @client_id,
    :client_secret => @client_secret
  }
  result = Rest::exec(:post, url, data)
end
get_checkout_preference(preference_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 45
def get_checkout_preference(preference_id)
  url = build_url "/checkout/preferences/#{preference_id}"
  Rest::exec(:get, url, nil, true)
end
get_movement(movement_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 113
def get_movement(movement_id)
  url = build_url "/mercadopago_account/movements/search?id=#{movement_id}"
  Rest::exec(:get, url, nil, true)
end
get_movement_by_reference_id(reference_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 118
def get_movement_by_reference_id(reference_id)
  url = build_url "/mercadopago_account/movements/search?reference_id=#{movement_id}"
  Rest::exec(:get, url, nil, true)
end
get_payment_info(notification_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 82
def get_payment_info(notification_id)
  url = build_url "/collections/notifications/#{notification_id}"
  Rest::exec(:get, url, nil, true)
end
get_preapproval_payment(id) click to toggle source

This method get all the information about a recurrent payment for information about what return this method go to developers.mercadopago.com/documentation/glossary/recurring-payments#!/get

# File lib/mercadopago/sdk.rb, line 77
def get_preapproval_payment(id)
  url = "/preapproval/#{id}"
  Rest::exec(:get, url)
end
refund_payment(payment_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 103
def refund_payment(payment_id)
  url = build_url "/collections/#{payment_id}"
  Rest::exec(:put, url, {:status => "refunded"}, true )
end
sandbox_prefix() click to toggle source
# File lib/mercadopago/sdk.rb, line 137
def sandbox_prefix
  @sandbox ? "/sandbox":""
end
search_movements(params) click to toggle source
# File lib/mercadopago/sdk.rb, line 123
def search_movements(params)
  params_query = URI.encode(params.map{|k,v| "#{k}=#{v}"}.join("&"))
  url = build_url "/mercadopago_account/movements/search?#{params_query}"
  Rest::exec(:get, url, nil, true)
end
search_payment(payment_id) click to toggle source
# File lib/mercadopago/sdk.rb, line 87
def search_payment(payment_id)
  url = build_url "/collections/#{payment_id}"
  Rest::exec(:get, url, nil, true)
end
search_payments_where(params) click to toggle source
# File lib/mercadopago/sdk.rb, line 92
def search_payments_where(params)
  url = build_url "/collections/search", false
  params[:access_token] = access_token
  Rest::exec(:get, url, { :params => params })
end
update_checkout_preference(preference_id, data) click to toggle source
# File lib/mercadopago/sdk.rb, line 40
def update_checkout_preference(preference_id, data)
  url = build_url "/checkout/preferences/#{preference_id}"
  Rest::exec(:put, url, data, true)
end