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.



12
13
14
15
16
# File 'lib/mercadopago/sdk.rb', line 12

def initialize(client_id, client_secret, sandbox=false)
	@client_id = client_id 
	@client_secret = client_secret
	@sandbox = sandbox
end

Instance Attribute Details

#access_tokenObject



31
32
33
# File 'lib/mercadopago/sdk.rb', line 31

def access_token
	@access_token || get_access_token
end

#checkoutObject

Returns the value of attribute checkout.



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

def checkout
  @checkout
end

#client_idObject

Returns the value of attribute client_id.



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

def client_id
  @client_id
end

#client_secretObject

Returns the value of attribute client_secret.



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

def client_secret
  @client_secret
end

#sandboxObject

Returns the value of attribute sandbox.



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

def sandbox
  @sandbox
end

Instance Method Details

#cancel_payment(payment_id) ⇒ Object



86
87
88
89
# File 'lib/mercadopago/sdk.rb', line 86

def cancel_payment(payment_id)
	url = "/collections/#{payment_id}?access_token=#{access_token}"
	Rest::exec(:put, url, {:status => "cancelled"}, true )
end

#create_checkout_preference(data, exclude_methods = nil) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/mercadopago/sdk.rb', line 35

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
	response = Rest::exec(:post, url, data, true)
	if response[:code] = 201
		@checkout = response
	else
		response
	end
end

#create_test_user(site_id) ⇒ Object



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

def create_test_user(site_id)
	url = "users/test_user?access_token=#{access_token}"
	Rest::exec(:post, url, { :site_id => site_id }, true )
end

#get_access_tokenObject



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mercadopago/sdk.rb', line 18

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)
	if result[:code] == 200
		@access_token = result["access_token"] 
	end
end

#get_checkout_preference(id) ⇒ Object



55
56
57
58
# File 'lib/mercadopago/sdk.rb', line 55

def get_checkout_preference(id)
	url = sandbox_prefix + "/checkout/preferences/#{preference_id}?access_token=#{access_token}"
	Rest::exec(:get, url, nil, true)
end

#get_payment_info(notification_id) ⇒ Object



60
61
62
63
# File 'lib/mercadopago/sdk.rb', line 60

def get_payment_info(notification_id)
	url = sandbox_prefix + "/collections/notifications/#{notification_id}?access_token=#{access_token}"
	Rest::exec(:get, url, nil, true)
end

#refund_payment(payment_id) ⇒ Object



81
82
83
84
# File 'lib/mercadopago/sdk.rb', line 81

def refund_payment(payment_id)
	url = "/collections/#{payment_id}?access_token=#{access_token}"
	Rest::exec(:put, url, {:status => "refunded"}, true )
end

#sandbox_prefixObject



91
92
93
# File 'lib/mercadopago/sdk.rb', line 91

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

#search_payment(payment_id) ⇒ Object



65
66
67
68
# File 'lib/mercadopago/sdk.rb', line 65

def search_payment(payment_id)
	url = sandbox_prefix + "/collections/#{payment_id}?access_token=#{access_token}"
	Rest::exec(:get, url, nil, true)
end

#search_payments_where(params) ⇒ Object



70
71
72
73
74
# File 'lib/mercadopago/sdk.rb', line 70

def search_payments_where(params)
	url = sandbox_prefix + "/collections/search"
	params[:access_token] = access_token 
	Rest::exec(:get, url, { :params => params })		
end

#update_checkout_preference(preference_id, data) ⇒ Object



50
51
52
53
# File 'lib/mercadopago/sdk.rb', line 50

def update_checkout_preference(preference_id, data)
	url = sandbox_prefix + "/checkout/preferences/#{preference_id}?access_token=#{access_token}"
	Rest::exec(:put, url, data, true)
end