Dentro de tu carrito de compras tienes integrado preferencias de MercadoPago para el manejo de todas las compras de tus usuarios con cualquier método o tipo de pago.
Sin embargo, tú o tu jefe, deciden agregar un nuevo requerimiento al carrito de compras. Ahora necesitan excluir los métodos o tipos de pagos de todas las nuevas preferencias de MercadoPago.
Digamos que el requerimiento dice que los pagos en efectivo con OXXO y las transferencias SPEI sean excluidos de las nuevas preferencias de MercadoPago.
¿Es posible? Claro que sí.
En este tutorial te mostraré cómo excluir los métodos y tipos de pagos de las preferencias de MercadoPago.
Antes de empezar necesitamos claves de integración
Para seguir con las siguientes secciones, necesitas una Public Key y un Access Token, los cuales consigues creando una integración en MercadoPago.
Aquí hay una guía de MercadoPago que te enseña a crear una integración.
Obtener los métodos de pago de MercadoPago
Para excluir uno o más métodos de pago en MercadoPago primero debemos conocer los ids de esos métodos de pago.
Para obtener esos ids debemos hacer una petición GET
al siguiente enlace:
https://api.mercadopago.com/v1/payment_methods?public_key=[PUBLIC_KEY]
Si te fijas bien, la URL acepta el parámetro public_key
. Sirve para autenticar la petición. La public_key
lo obtienes en tu panel de desarrollador de MercadoPago.
Cuando ejecutas la petición debes recibir un JSON de respuesta con múltiples valores.
[
{
"id": "debvisa",
"name": "Visa Débito",
"payment_type_id": "debit_card",
"status": "active",
"secure_thumbnail": "https://www.mercadopago.com/org-img/MP3/API/logos/debvisa.gif",
"thumbnail": "http://img.mlstatic.com/org-img/MP3/API/logos/debvisa.gif",
"deferred_capture": "unsupported",
"settings": [
{
"card_number": {
"validation": "standard",
"length": 16
},
"bin": {
"pattern": "^(400064|400443|400819|400889|401531|401863|401906|402708|402766|403130|404313|404597|405063|405689|405930|406285|407848|408340|408341|408343|408400|409851|410128|410177|410277|410881|410894|411117|411608|411673|411773|411775|411808|412294|412408|413098|415231|416916|418914|418928|419334|419335|419821|419822|419823|420767|420807|420831|420839|421003|421316|422299|422671|425983|425984|426188|426808|427088|428464|430967|432049|433126|433194|433454|434256|434257|434258|434769|434798|435769|436618|438099|441312|441313|441545|441549|442177|442192|442742|442756|442788|443042|443045|444888|444889|445016|445017|445319|446115|446116|446117|446118|446878|446985|446986|449187|449700|451312|455509|455510|455511|455533|455537|457249|457476|459497|460068|460700|460766|461046|465345|465495|465496|465497|465498|465762|465828|465829|466188|466397|467010|467596|469495|469693|470132|470502|471239|471724|473622|473702|473703|473993|474174|474176|474472|474477|474478|474646|476588|476840|476890|477177|477261|477961|478200|479303|480062|480076|480078|480922|481516|481517|481582|481588|481689|482473|483030|483104|483112|483314|483316|485043|485044|486742|486796|490070|490256|490950|491089|491282|491365|491566|491567|491580|492143|498587|498590|41891410|41891431|41892810|46227850|47658885|49156630|49156634|49156644|49156650|49156651|49156652|49156653|49156654|49156655|49156656|49156657|49156658|49156659|49156660|49156661|49156662|49156663|49156664|49156665|49156666|49156667|49156668|49156669|49156670|49156671|49156672|49156673|49156674|49156675|49156676|49156677|49156678|49156679|49156680|49156681|49156682|49156683|49156684|49156685|49156686|49156687|49156688|49156689|49156690|49156691|49156692|49156693|49156694|49156695|49156696|49156697|49156698|49156699)",
"installments_pattern": "",
"exclusion_pattern": "^(49156649|49156648|49156647|49156646|49156645|49156644|49156643|49156642|49156641|49156640|49156639|49156638|49156637|49156636|49156635|49156634|49156633|49156632|49156631|49156630|49156629|49156628|49156627|49156626|49156625|49156624|49156623|49156622|49156621|49156620|49156619|49156618|49156617|49156616|49156615|49156614|49156613|49156612|49156611|49156610|49156609|49156608|49156607|49156606|49156605|49156604|49156603|49156602|49156601|49156600)"
},
"security_code": {
"length": 3,
"card_location": "back",
"mode": "mandatory"
}
}
],
"additional_info_needed": [
"cardholder_name"
],
"min_allowed_amount": 5,
"max_allowed_amount": 300000,
"accreditation_time": 2880,
"financial_institutions": [],
"processing_modes": [
"aggregator"
]
}
]
Con el JSON anterior encontrarás información de los métodos de pago. Para México se muestran los siguientes:
- Visa Débito –
debvisa
- Mastercard Débito –
debmaster
- American Express –
amex
- Visa –
visa
- Mastercard –
master
- Citibanamex –
banamex
- OXXO –
oxxo
- BBVA Bancomer –
bancomer
Obtener los tipos de pago de MercadoPago
Los tipos de pago sirven para identificar si queremos hacer cobros con tarjeta de débito/crédito, efectivo, tarjeta de prepago, entre otros.
Estos tipos de pago son encontrados dentro de la misma respuesta JSON que obtuviste en la petición anterior. Específicamente, la propiedad payment_type_id
.
Estos son los tipos de pago y sus ids encontrados en la petición:
- ATM –
atm
- Tarjeta de crédito –
credit_card
- Tarjeta de débito –
debit_card
- Ticket –
ticket
- Transferencia bancaria –
bank_transfer
Excluir métodos o tipos de pago de una preferencia de MercadoPago
La siguiente sección solo funciona con preferencias de MercadoPago.
Para crear una preferencia de MercadoPago usando su API, debemos seguir la documentación.
La petición que haremos será de tipo POST
al siguiente enlace:
https://api.mercadopago.com/checkout/preferences
Debemos estar autenticados con nuestro Bearer Token pasándole un header de autenticación:
Y debemos pasar datos obligatorios para crear la preferencia.
Dentro de la documentación, busca la propiedad payment_methods
, la cual es una propiedad para excluir métodos o tipos de pago y también para poner un método de pago por default.
La propiedad payment_methods
acepta las propiedades excluded_payment_methods
y excluded_payment_types
. Estos son arreglos y dentro de estos irán objetos con los ids de los métodos y tipos de pago, respectivamente.
Si estamos creando una preferencia y estamos excluyendo los métodos de pago oxxo
y bancomer
y los tipos de pago bank_transfer
. El JSON a pasar a la petición debe verse de esta forma:
{
"items": [
{
"title": "Dummy Product",
"description": "Dummy product description",
"category_id": "car_electronics",
"quantity": 1,
"unit_price": 10
}
],
"payment_methods": {
"excluded_payment_methods": [
{
"id": "oxxo"
},
{
"id": "bancomer"
}
],
"excluded_payment_types": [
{
"id": "bank_transfer"
}
]
}
}
Recuerda que los ids de los métodos y tipos de pago se consiguieron anteriormente.
El resultado del POST
anterior será un JSON y te mostrará la información de la preferencia.
Métodos y tipos de pago excluidos de la preferencia de MercadoPago
Una vez creada la preferencia, la respuesta JSON tendrá las propiedades init_point
y sandbox_init_point
. Estos son los enlaces para enviar a tus clientes y puedan comprar.
La propiedad sandbox_init_point
es para pruebas. Entonces, si vamos a este enlace:
Primero verás que no sale la opción “Transferencia SPEI”. Y si seleccionas “Efectivo”, en la siguiente ventana la opción para pagar con OXXO no estará.
Y así es como excluyes métodos y tipos de pago en MercadoPago.
Si tienes problemas o dudas, no dudes en comentar.