MercadoPago SDK module for Payments integration
Install
With Composer
From command line
composer require mercadopago/sdk:0.5.2
As a dependency in your project's composer.json
{
"require": {
"mercadopago/sdk": "0.5.2"
}
}
By downloading
- Clone/download this repository
- Copy
lib/mercadopago.php
to your project's desired folder.
Basic checkout
Configure your credentials
- Get your CLIENT_ID and CLIENT_SECRET in the following address:
- Argentina: https://www.mercadopago.com/mla/herramientas/aplicaciones
- Brazil: https://www.mercadopago.com/mlb/ferramentas/aplicacoes
- Mexico: https://www.mercadopago.com/mlm/herramientas/aplicaciones
- Venezuela: https://www.mercadopago.com/mlv/herramientas/aplicaciones
- Colombia: https://www.mercadopago.com/mco/herramientas/aplicaciones
- Chile: https://www.mercadopago.com/mlc/herramientas/aplicaciones
require_once ('mercadopago.php');
$mp = new MP ("CLIENT_ID", "CLIENT_SECRET");
Preferences
Get an existent Checkout preference
$preference = $mp->get_preference("PREFERENCE_ID");
print_r ($preference);
Create a Checkout preference
$preference_data = array (
"items" => array (
array (
"title" => "Test",
"quantity" => 1,
"currency_id" => "USD",
"unit_price" => 10.4
)
)
);
$preference = $mp->create_preference($preference_data);
print_r ($preference);
Update an existent Checkout preference
$preference_data = array (
"items" => array (
array (
"title" => "Test Modified",
"quantity" => 1,
"currency_id" => "USD",
"unit_price" => 20.4
)
)
);
$preference = $mp->update_preference("PREFERENCE_ID", $preference_data);
print_r ($preference);
Payments/Collections
Search for payments
$filters = array (
"id"=>null,
"site_id"=>null,
"external_reference"=>null
);
$searchResult = $mp->search_payment ($filters);
print_r ($searchResult);
Get payment data
require_once ('mercadopago.php');
$mp = new MP ("CLIENT_ID", "CLIENT_SECRET");
$paymentInfo = $mp->get_payment ("PAYMENT_ID");
print_r ($paymentInfo);
Cancel (only for pending payments)
$result = $mp->cancel_payment("PAYMENT_ID");
print_r ($result);
Refund (only for accredited payments)
$result = $mp->refund_payment("PAYMENT_ID");
print_r ($result);
Customized checkout
Configure your credentials
- Get your ACCESS_TOKEN in the following address:
- Argentina: https://www.mercadopago.com/mla/account/credentials
- Brazil: https://www.mercadopago.com/mlb/account/credentials
- Mexico: https://www.mercadopago.com/mlm/account/credentials
- Venezuela: https://www.mercadopago.com/mlv/account/credentials
- Colombia: https://www.mercadopago.com/mco/account/credentials
require_once ('mercadopago.php');
$mp = new MP ("ACCESS_TOKEN");
Create payment
$mp->post (
array(
"uri" => "/v1/payments",
"data" => [payment_data]
)
);
Create customer
$mp->post (
array(
"uri" => "/v1/customers",
"data" => array(
"email" => "email@test.com"
)
)
);
Get customer
$mp->get (
array(
"uri" => "/v1/customers/CUSTOMER_ID"
)
);
- View more Custom checkout related APIs in Developers Site
- Argentina: https://www.mercadopago.com.ar/developers
- Brazil: https://www.mercadopago.com.br/developers
- Mexico: https://www.mercadopago.com.mx/developers
- Venezuela: https://www.mercadopago.com.ve/developers
- Colombia: https://www.mercadopago.com.co/developers
Generic methods
You can access any resource from the MercadoPago API using the generic methods. The basic structure is:
$mp->[method]($request)
where request
can be:
array(
"uri" => "The resource URI, relative to https://api.mercadopago.com",
"params" => "Optional. Key=>Value array with parameters to be appended to the URL",
"data" => "Optional. Object or String to be sent in POST and PUT requests",
"headers" => "Optional. Key => Value array with custom headers, like content-type: application/x-www-form-urlencoded",
"authenticate" => "Optional. Boolean to specify if the GET method has to authenticate with credentials before request. Set it to false when accessing public APIs"
)
Examples:
// Get a resource, with optional URL params. Also you can disable authentication for public APIs
$mp->get (
array(
"uri" => "/resource/uri",
"params" => array(
"param" => "value"
),
"headers" => array(
"header" => "value"
),
"authenticate" => true
)
);
// Create a resource with "data" and optional URL params.
$mp->post (
array(
"uri" => "/resource/uri",
"params" => array(
"param" => "value"
),
"headers" => array(
"header" => "value"
),
"data" => [data]
)
);
// Update a resource with "data" and optional URL params.
$mp->put (
array(
"uri" => "/resource/uri",
"params" => array(
"param" => "value"
),
"headers" => array(
"header" => "value"
),
"data" => [data]
)
);
// Delete a resource with optional URL params.
$mp->delete (
array(
"uri" => "/resource/uri",
"params" => array(
"param" => "value"
),
"headers" => array(
"header" => "value"
)
)
);