PHP Makefile
Latest commit 1fe6dda May 17, 2016 @hcasatti hcasatti Merge pull request #64 from sebagun/master
Check mandatory parameters in IPN
Permalink
Failed to load latest commit information.
examples Check mandatory parameters in IPN May 17, 2016
lib MercadoPagoException Oct 14, 2015
tests Update UnitTest.php Dec 21, 2015
README.md MercadoPagoException Oct 14, 2015
composer.json Add composer.json Jan 23, 2014
makefile full tests Sep 29, 2015

README.md

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

  1. Clone/download this repository
  2. Copy lib/mercadopago.php to your project's desired folder.

Basic checkout

Configure your credentials

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

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"
    )
);

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"
        )
    )
);