Class: MercadoPago
- Inherits:
-
Object
- Object
- MercadoPago
- Defined in:
- lib/mercadopago.rb
Defined Under Namespace
Classes: RestClient
Instance Method Summary collapse
- #build_query(params) ⇒ Object
-
#cancel_payment(id) ⇒ Object
Cancel pending payment.
-
#cancel_preapproval_payment(id) ⇒ Object
Cancel preapproval payment.
-
#create_preapproval_payment(preapproval_payment) ⇒ Object
Create a preapproval payment.
-
#create_preference(preference) ⇒ Object
Create a checkout preference.
-
#delete(uri, params = nil) ⇒ Object
Generic resource delete.
-
#get(uri, params = nil, authenticate = true) ⇒ Object
Generic resource get.
-
#get_access_token ⇒ Object
Get Access Token for API use.
-
#get_authorized_payment(id) ⇒ Object
Get information for specific authorized payment.
-
#get_payment(id) ⇒ Object
Get information for specific payment.
- #get_payment_info(id) ⇒ Object
-
#get_preapproval_payment(id) ⇒ Object
Get a preapproval payment.
-
#get_preference(id) ⇒ Object
Get a checkout preference.
-
#initialize(*args) ⇒ MercadoPago
constructor
A new instance of MercadoPago.
-
#post(uri, data, params = nil) ⇒ Object
Generic resource post.
-
#put(uri, data, params = nil) ⇒ Object
Generic resource put.
-
#refund_payment(id) ⇒ Object
Refund accredited payment.
- #sandbox_mode(enable = nil) ⇒ Object
-
#search_payment(filters, offset = 0, limit = 0) ⇒ Object
Search payments according to filters, with pagination.
- #set_debug_logger(debug_logger) ⇒ Object
-
#update_preference(id, preference) ⇒ Object
Update a checkout preference.
Constructor Details
#initialize(*args) ⇒ MercadoPago
Returns a new instance of MercadoPago.
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mercadopago.rb', line 16 def initialize(*args) if args.size < 1 or args.size > 2 raise "Invalid arguments. Use CLIENT_ID and CLIENT SECRET, or ACCESS_TOKEN" end @client_id = args.at(0) if args.size == 2 @client_secret = args.at(1) if args.size == 2 @ll_access_token = args.at(0) if args.size == 1 @rest_client = RestClient.new() @sandbox = false end |
Instance Method Details
#build_query(params) ⇒ Object
284 285 286 |
# File 'lib/mercadopago.rb', line 284 def build_query(params) URI.escape(params.collect { |k, v| "#{k}=#{v}" }.join('&')) end |
#cancel_payment(id) ⇒ Object
Cancel pending payment
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/mercadopago.rb', line 103 def cancel_payment(id) begin access_token = get_access_token rescue => e return e. end cancel_status = {"status" => "cancelled"} @rest_client.put("/v1/payments/" + id + "?access_token=" + access_token, cancel_status) end |
#cancel_preapproval_payment(id) ⇒ Object
Cancel preapproval payment
115 116 117 118 119 120 121 122 123 124 |
# File 'lib/mercadopago.rb', line 115 def cancel_preapproval_payment(id) begin access_token = get_access_token rescue => e return e. end cancel_status = {"status" => "cancelled"} @rest_client.put("/preapproval/" + id + "?access_token=" + access_token, cancel_status) end |
#create_preapproval_payment(preapproval_payment) ⇒ Object
Create a preapproval payment
177 178 179 180 181 182 183 184 185 |
# File 'lib/mercadopago.rb', line 177 def create_preapproval_payment(preapproval_payment) begin access_token = get_access_token rescue => e return e. end @rest_client.post("/preapproval?access_token=" + access_token, preapproval_payment) end |
#create_preference(preference) ⇒ Object
Create a checkout preference
144 145 146 147 148 149 150 151 152 |
# File 'lib/mercadopago.rb', line 144 def create_preference(preference) begin access_token = get_access_token rescue => e return e. end @rest_client.post("/checkout/preferences?access_token=" + access_token, preference) end |
#delete(uri, params = nil) ⇒ Object
Generic resource delete
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
# File 'lib/mercadopago.rb', line 264 def delete(uri, params = nil) if not params.class == Hash params = Hash.new end begin access_token = get_access_token rescue => e return e. end params["access_token"] = access_token if not params.empty? uri << (if uri.include? "?" then "&" else "?" end) << build_query(params) end @rest_client.delete(uri) end |
#get(uri, params = nil, authenticate = true) ⇒ Object
Generic resource get
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lib/mercadopago.rb', line 199 def get(uri, params = nil, authenticate = true) if not params.class == Hash params = Hash.new end if authenticate begin access_token = get_access_token rescue => e return e. end params["access_token"] = access_token end if not params.empty? uri << (if uri.include? "?" then "&" else "?" end) << build_query(params) end @rest_client.get(uri) end |
#get_access_token ⇒ Object
Get Access Token for API use
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/mercadopago.rb', line 42 def get_access_token if @ll_access_token @ll_access_token else app_client_values = { 'grant_type' => 'client_credentials', 'client_id' => @client_id, 'client_secret' => @client_secret } @access_data = @rest_client.post("/oauth/token", build_query(app_client_values), RestClient::MIME_FORM) if @access_data['status'] == "200" @access_data = @access_data["response"] @access_data['access_token'] else raise @access_data.inspect end end end |
#get_authorized_payment(id) ⇒ Object
Get information for specific authorized payment
80 81 82 83 84 85 86 87 88 |
# File 'lib/mercadopago.rb', line 80 def (id) begin access_token = get_access_token rescue => e return e. end @rest_client.get("/authorized_payments/" + id + "?access_token=" + access_token) end |
#get_payment(id) ⇒ Object
Get information for specific payment
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/mercadopago.rb', line 64 def get_payment(id) begin access_token = get_access_token rescue => e return e. end uri_prefix = @sandbox ? "/sandbox" : "" @rest_client.get("/v1/payments/" + id + "?access_token=" + access_token) end |
#get_payment_info(id) ⇒ Object
75 76 77 |
# File 'lib/mercadopago.rb', line 75 def get_payment_info(id) get_payment(id) end |
#get_preapproval_payment(id) ⇒ Object
Get a preapproval payment
188 189 190 191 192 193 194 195 196 |
# File 'lib/mercadopago.rb', line 188 def get_preapproval_payment(id) begin access_token = get_access_token rescue => e return e. end @rest_client.get("/preapproval/" + id + "?access_token=" + access_token) end |
#get_preference(id) ⇒ Object
Get a checkout preference
166 167 168 169 170 171 172 173 174 |
# File 'lib/mercadopago.rb', line 166 def get_preference(id) begin access_token = get_access_token rescue => e return e. end @rest_client.get("/checkout/preferences/" + id + "?access_token=" + access_token) end |
#post(uri, data, params = nil) ⇒ Object
Generic resource post
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/mercadopago.rb', line 222 def post(uri, data, params = nil) if not params.class == Hash params = Hash.new end begin access_token = get_access_token rescue => e return e. end params["access_token"] = access_token if not params.empty? uri << (if uri.include? "?" then "&" else "?" end) << build_query(params) end @rest_client.post(uri, data) end |
#put(uri, data, params = nil) ⇒ Object
Generic resource put
243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 |
# File 'lib/mercadopago.rb', line 243 def put(uri, data, params = nil) if not params.class == Hash params = Hash.new end begin access_token = get_access_token rescue => e return e. end params["access_token"] = access_token if not params.empty? uri << (if uri.include? "?" then "&" else "?" end) << build_query(params) end @rest_client.put(uri, data) end |
#refund_payment(id) ⇒ Object
Refund accredited payment
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/mercadopago.rb', line 91 def refund_payment(id) begin access_token = get_access_token rescue => e return e. end refund_status = {} @rest_client.post("/v1/payments/" + id + "/refunds?access_token=" + access_token, refund_status) end |
#sandbox_mode(enable = nil) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/mercadopago.rb', line 33 def sandbox_mode(enable=nil) if not enable.nil? @sandbox = enable end return @sandbox end |
#search_payment(filters, offset = 0, limit = 0) ⇒ Object
Search payments according to filters, with pagination
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/mercadopago.rb', line 127 def search_payment(filters, offset=0, limit=0) begin access_token = get_access_token rescue => e return e. end filters["offset"] = offset filters["limit"] = limit filters = build_query(filters) uri_prefix = @sandbox ? "/sandbox" : "" @rest_client.get("/v1/payments/search?" + filters + "&access_token=" + access_token) end |
#set_debug_logger(debug_logger) ⇒ Object
29 30 31 |
# File 'lib/mercadopago.rb', line 29 def set_debug_logger(debug_logger) @rest_client.set_debug_logger(debug_logger) end |
#update_preference(id, preference) ⇒ Object
Update a checkout preference
155 156 157 158 159 160 161 162 163 |
# File 'lib/mercadopago.rb', line 155 def update_preference(id, preference) begin access_token = get_access_token rescue => e return e. end @rest_client.put("/checkout/preferences/" + id + "?access_token=" + access_token, preference) end |