# MercadoPago SDK module for Payments integration * [Usage](#usage) * [Using MercadoPago Checkout](#checkout) * [Using MercadoPago Payment collection](#payments) ## Usage: ```gem install mercadopago-sdk``` Then, instantiate the SDK... ### ...with your credentials: * Get your **CLIENT_ID** and **CLIENT_SECRET** in the following address: * Argentina: [https://www.mercadopago.com/mla/herramientas/aplicaciones](https://www.mercadopago.com/mla/herramientas/aplicaciones) * Brazil: [https://www.mercadopago.com/mlb/ferramentas/aplicacoes](https://www.mercadopago.com/mlb/ferramentas/aplicacoes) * México: [https://www.mercadopago.com/mlm/herramientas/aplicaciones](https://www.mercadopago.com/mlm/herramientas/aplicaciones) * Venezuela: [https://www.mercadopago.com/mlv/herramientas/aplicaciones](https://www.mercadopago.com/mlv/herramientas/aplicaciones) * Colombia: [https://www.mercadopago.com/mco/herramientas/aplicaciones](https://www.mercadopago.com/mco/herramientas/aplicaciones) ```ruby require 'mercadopago.rb' $mp = MercadoPago.new('CLIENT_ID', 'CLIENT_SECRET') ``` ### ...with your long live access token: ```ruby require 'mercadopago.rb' $mp = MercadoPago.new('LL_ACCESS_TOKEN') ``` ### Get your Access Token: ```ruby $accessToken = $mp.get_access_token() puts (accessToken) ``` ## Using MercadoPago Checkout ### Get an existent Checkout preference: ```ruby preference = $mp.get_preference('PREFERENCE_ID') puts $preferenceResult ``` ### Create a Checkout preference: ```ruby preferenceData = Hash["items" => Array(Array["title"=>"testCreate", "quantity"=>1, "unit_price"=>10.2, "currency_id"=>"ARS"])] preference = $mp.create_preference(preferenceData) puts preference ``` Others items to use ### Update an existent Checkout preference: ```ruby preferenceDataToUpdate = Hash["items" => Array(Array["title"=>"testUpdated", "quantity"=>1, "unit_price"=>2])] preferenceUpdate = $mp.update_preference("PREFERENCE_ID", preferenceDataToUpdate) puts preferenceUpdate ``` ## Using MercadoPago Payment ### Searching: ```ruby filters = Array["id"=>null, "site_id"=>null, "external_reference"=>null] searchResult = $mp.search_payment(filters) puts searchResult ``` More search examples ### Receiving IPN notification: * Go to **Mercadopago IPN configuration**: * Argentina: [https://www.mercadopago.com/mla/herramientas/notificaciones](https://www.mercadopago.com/mla/herramientas/notificaciones) * Brasil: [https://www.mercadopago.com/mlb/ferramentas/notificacoes](https://www.mercadopago.com/mlb/ferramentas/notificacoes) * México: [https://www.mercadopago.com/mlm/herramientas/notificaciones](https://www.mercadopago.com/mlm/herramientas/notificaciones) * Venezuela: [https://www.mercadopago.com/mlv/herramientas/notificaciones](https://www.mercadopago.com/mlv/herramientas/notificaciones) * Colombia: [https://www.mercadopago.com/mco/herramientas/notificaciones](https://www.mercadopago.com/mco/herramientas/notificaciones)
```ruby paymentInfo = $mp.get_payment_info("ID") puts paymentInfo ``` ### Cancel (only for pending payments): ```ruby result = $mp.cancel_payment("ID"); // Show result puts result ``` ### Refund (only for accredited payments): ```ruby result = $mp.refund_payment("ID"); // Show result puts result ``` About Cancel & Refund ### Generic resources methods You can access any other resource from the MercadoPago API using the generic methods: ```ruby // Get a resource, with optional URL params. Also you can disable authentication for public APIs $mp.get ("/resource/uri", [params], [authenticate=true]) // Create a resource with "data" and optional URL params. $mp.post ("/resource/uri", data, [params]) // Update a resource with "data" and optional URL params. $mp.put ("/resource/uri", data, [params]) // Delete a resource with optional URL params. $mp.delete ("/resource/uri", [params]) ``` For example, if you want to get the Sites list (no params and no authentication): ```ruby $sites = $mp.get ("/sites", null, false) puts $sites ```