Class: Mercadopago::Sdk

Inherits:
Object
  • Object
show all
Defined in:
lib/mercadopago/sdk.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret, sandbox = false) ⇒ Sdk

Returns a new instance of Sdk.



10
11
12
13
14
# 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

Instance Attribute Details

#client_idObject

Returns the value of attribute client_id.



8
9
10
# File 'lib/mercadopago/sdk.rb', line 8

def client_id
  @client_id
end

#client_secretObject

Returns the value of attribute client_secret.



8
9
10
# File 'lib/mercadopago/sdk.rb', line 8

def client_secret
  @client_secret
end

#sandboxObject

Returns the value of attribute sandbox.



8
9
10
# File 'lib/mercadopago/sdk.rb', line 8

def sandbox
  @sandbox
end

Instance Method Details

#access_tokenObject



26
27
28
# File 'lib/mercadopago/sdk.rb', line 26

def access_token
  @access_token ||= get_access_token["access_token"]
end

#build_url(action, token = true) ⇒ Object



129
130
131
132
133
134
135
# 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) ⇒ Object



108
109
110
111
# 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) ⇒ Object



30
31
32
33
34
35
36
37
38
# 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) ⇒ Object

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



69
70
71
72
# 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) ⇒ Object



98
99
100
101
# 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_tokenObject



16
17
18
19
20
21
22
23
24
# 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) ⇒ Object



45
46
47
48
# 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) ⇒ Object



113
114
115
116
# 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) ⇒ Object



118
119
120
121
# 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) ⇒ Object



82
83
84
85
# 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) ⇒ Object

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



77
78
79
80
# File 'lib/mercadopago/sdk.rb', line 77

def get_preapproval_payment(id)
  url = "/preapproval/#{id}"
  Rest::exec(:get, url)
end

#refund_payment(payment_id) ⇒ Object



103
104
105
106
# 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_prefixObject



137
138
139
# File 'lib/mercadopago/sdk.rb', line 137

def sandbox_prefix
  @sandbox ? "/sandbox":""
end

#search_movements(params) ⇒ Object



123
124
125
126
127
# 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) ⇒ Object



87
88
89
90
# 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) ⇒ Object



92
93
94
95
96
# 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) ⇒ Object



40
41
42
43
# 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