mercadopago

Mercadopago SDK module for Payments integration

MercadoPago SDK module for Payments integration

$ npm install mercadopago
var MP = require ("mercadopago");
 
var mp = new MP ("CLIENT_ID", "CLIENT_SECRET");
var MP = require ("mercadopago");
 
var mp = new MP ("LL_ACCESS_TOKEN");

Every method supports either promises and callbacks. For example:

var at = mp.getAccessToken ();
 
at.then (
    function (accessToken) {
        console.log (accessToken);
    },
    function (error) {
        console.log (error);
    });

is the same as:

mp.getAccessToken(function (erraccessToken){
    if (err) {
        console.log (err);
    } else {
        console.log (accessToken);
    }
});

In order to use callbacks, simply pass a function as the last parameter.

mp.getAccessToken();

var preference = {
        "items": [
            {
                "title": "Test",
                "quantity": 1,
                "currency_id": "USD",
                "unit_price": 10.5
            }
        ]
    };
 
mp.createPreference (preference);

Others items to use

mp.getPreference ("PREFERENCE_ID");
var preference = {
        "items": [
            {
                "title": "Test Modified",
                "quantity": 1,
                "currency_id": "USD",
                "unit_price": 20.4
            }
        ]
    };
 
mp.updatePreference ("PREFERENCE_ID", preference);

Searching:

var filters = {
        "id": null,
        "site_id": null,
        "external_reference": null
    };
 
mp.searchPayment (filters);

More search examples

var MP = require ("mercadopago"),
    http = require("http"),
    url = require('url');
 
var mp = new MP ("CLIENT_ID", "CLIENT_SECRET");
 
function onRequest(requestresponse) {
    var qs = url.parse (request.url, true).query;
 
    mp.getPayment (qs["id"])
        .then (
            function success (data) {
                console.log (JSON.stringify (data, null, 4));
                response.writeHead(200, {
                    'Content-Type' : 'application/json; charset=utf-8'
                });
                response.write (JSON.stringify (data));
                response.end();
            },
            function error (err) {
                console.log (err);
                response.writeHead(200, {
                    'Content-Type' : 'application/json; charset=utf-8'
                });
                response.write (err);
                response.end();
            }
        });
}
 
http.createServer(onRequest).listen(8888);
mp.cancelPayment ("ID");
mp.refundPayment ("ID");

About Cancel & Refund

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

mp.get ("/sites", null, false)
    .then (function (sites) {
        console.log (sites);
    });