MercadoPago SDK module for Payments integration

Install

gem install mercadopago-sdk

Basic checkout

Configure your credentials

require 'mercadopago.rb'

$mp = MercadoPago.new('CLIENT_ID', 'CLIENT_SECRET')

Preferences

Get an existent Checkout preference

preference = $mp.get_preference('PREFERENCE_ID')

puts $preferenceResult

Create a Checkout preference


preference_data = {
            "items": [
                {
                    "title": "testCreate", 
                    "quantity": 1, 
                    "unit_price": 10.2, 
                    "currency_id": "ARS"
                }
            ]
        }
preference = $mp.create_preference(preference_data)

puts preference

Update an existent Checkout preference

preferenceDataToUpdate = Hash["items" => Array(Array["title"=>"testUpdated", "quantity"=>1, "unit_price"=>2])]

preferenceUpdate = $mp.update_preference("PREFERENCE_ID", preferenceDataToUpdate)

puts preferenceUpdate

Payments/Collections

Search for payments

filters = Array["id"=>null, "external_reference"=>null]

searchResult = $mp.search_payment(filters)

puts searchResult

Get payment data

paymentInfo = $mp.get_payment("ID")

puts paymentInfo

Cancel (only for pending payments)

result = $mp.cancel_payment("ID");

// Show result
puts result

Refund (only for accredited payments)

result = $mp.refund_payment("ID");

// Show result
puts result

Customized checkout

Configure your credentials

require 'mercadopago.rb'

$mp = MercadoPago.new('ACCESS_TOKEN')

Create payment

$mp.post ("/v1/payments", payment_data);

Create customer

$mp.post ("/v1/customers", Hash["email" => "[email protected]"]);

Get customer

$mp.get ("/v1/customers/CUSTOMER_ID");

Generic methods

You can access any other resource from the MercadoPago API using the generic methods:

// 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):

$sites = $mp.get ("/sites", null, false)

puts $sites