Germán Küber

Blockchain Developer / Microsoft Architect

Mercado Pago – Checkout Básico

  1. Crear Usuarios de Prueba

    https://www.mercadopago.com.ar/developers/es/solutions/payments/basic-checkout/test/test-users/ 

    1.a Se deben crear 2 usuarios de test, los mismos seran utilizados, 1 como vendor y el segundo como customer

# Get access token
AT=`curl -s -X POST -H 'content-type: application/x-www-form-urlencoded' 'https://api.mercadopago.com/oauth/token' -d 'grant_type=client_credentials' -d 'client_id=4936527185978689' -d 'client_secret=dF58obUXvkBs3JcQcjiOhXG5GeBQe0XX' | grep -o '"access_token":"[^"]*"' | sed -n 's/.*"access_token":"\(.*\)"/\1/p'`

curl -X POST \
-H "Content-Type: application/json" \
"https://api.mercadopago.com/users/test_user?access_token=$AT" \
-d '{"site_id":"MLA"}'

Este comando debe de ser ejecutado dos 2 veces, para obtener los 2 usuarios.

La respuesta de cada request sera la siguiente:

{
    "id": 123456,
    "nickname": "TT123456",
    "password": "qatest123456",
    "site_status": "active",
    "email": "test_user_123456@testuser.com"
}

Como siguiente paso, debemos utilizar uno de los 2 usuarios generados y loguearnos en el sitio de mercado pago (www.mercadopago.com.ar)

Una vez logueado en el sitio nos dirigimos al sitio que nos otorgara los key de acceso:

https://www.mercadopago.com/mla/account/credentials?type=basic

En este sitio obtendremos el client y el secret ID, datos que utilizaremos mas tarde para generar nuestro endpoing (desde nuestro backend)

El otro usuario generado lo utilizaremos para loguearnos al momento de pagar la compra que realicemos en nuestro entorno de SandBox.

2. Generar EndPoint de Redirección

1. Como segundo paso relevante, sera el de generar dinámicamente nuestro EndPoint, de redirección.

https://www.mercadopago.com.ar/developers/es/solutions/payments/basic-checkout/test/basic-sandbox/

Para este en nuestro servidor creamos una WebApi, y en un controlador generaremos un EndPoint que reciba, como parametro el detalle del producto a comprar, este detalle sera enviado desde nuestra app cliente.

Debemos instalar el siguiente Nuget necesario para esta generación.

Install-Package mercadopago.dll

MercadoPagoController.cs

public class MercadoPagoController : ApiController
{
    public string Get(ItemBuy item) {
        MP mp = new MP("4956511243587260", "5HxmnTYHTf2zhg3qPbgXUwMzmUzXH9xP");

        Hashtable preference = mp.createPreference("{\"auto_return\":\"approved\"," +
                "\"back_urls\":" +

                        "{\"success\":\"http://localhost:36305/index \"," +
                        "\"failure\":\"http://localhost:36305/error \"}" +
                    "," +
            "\"items\":" +
                    "[" +
                        "{\"title\":\"" + item.Title + "\"," +
                        "\"quantity\":" + item.Quantity + "," +
                        "\"currency_id\":\"" + item.Currency + "\"," +
                        "\"unit_price\":" + item.Price + "" +
                        "}" +
                    "]" +
            "}");
        return (((Hashtable)preference["response"])["sandbox_init_point"]) as string;
    }
}

Algunos parametros interesantes que vale la pena remarcar:

auto_return:  En caso de que el estado sea aprobado el sitio redirige a la url que tenmeos en back_urls => success

De mas esta aclarar que los valores que recibe el MP com parametro en su constructor son los valores que obtuvimos en el ultimo paso del punto 1.

La lista completa de parametros posibles se puede ver en la siguiente URL:

https://www.mercadopago.com.ar/developers/es/api-docs/basic-checkout/checkout-preferences/

ItemBuy.cs

public class ItemBuy {
    public string Title { get; set; }
    public int Quantity { get; set; }
    public string Currency { get; set; } /*Currencies Posibles https://api.mercadopago.com/currencies*/
    public double Price { get; set; }
}

Desde nuestro cliente una vez que obtenemos la url que nos retorna nuestro servicio, no queda mas que redirigir.

3. Datos de prueba

Tras la rediccion, vamos a terminar en un sitio de este estilo (con suerte):

 

Como primer punto importante, recomiendo acceder al sitio de mercado pago y loguearnos con las credenciales del usuario numero 2 generado en el paso numero 1. Una vez hecho esto volver a esta pantalla la cual mostrara algo similar a lo siguiente:

Una vez en esta pantalla no nos queda mas que decidir con que tarjeta vamos a pagar, y utilizar algunas de la siguiente lista:

https://www.mercadopago.com.ar/developers/es/solutions/payments/custom-checkout/test-cards/

Vale remarcar, que ninguna de los datos ingresados son relevantes, solo debemos respetar los formatos (DNi 8 digitos por ejemplo)

Una vez que carguemos la tarjeta y precionemos sobre Confirmar Pago  , terminaremos en un sitio como este:

Finalmente nos va a redirigir a nuestro sitio (URL que seteamos en el paso 2). Y la url se parecesa a la siguiente:

http://localhost:36305/default?collection_id=7409033&collection_status=approved&preference_id=277040772-fcaa7d9b-d3f0-49a9-92e9-ff1ffc7e48ae&external_reference=null&payment_type=credit_card&merchant_order_id=null

 

Translate »