A
AlexSp3
Hola estoy implementando checkout bricks en mi pagina web con el objetivo de procesar todos los medios de pago posibles en mi pagina sin necesidad de redirigirme o utilizar algun modal emergente.
Basandome en la referencia de mercado pago, el checkout bricks completo (con todos los bricks) deberia verse algo asi:
Sin embargo, cuando implemento en mi pagina utilizando las credenciales de prueba, el resultado que obtengo es el siguiente:
Solo aparecen esos 3 medios de pago, y no aparece la opcion de pagar con el dinero de la billetera de mercado pago. Este es el código que estoy usando:
Como se ve no estoy agregando ninguna
En la consola del navegador aparecen los siguientes mensajes:
... es como si la opción
Si alguno puede guiarme sobre como solucionarlo, o que alternativa hay, gracias de antemano. Saludos
Basandome en la referencia de mercado pago, el checkout bricks completo (con todos los bricks) deberia verse algo asi:
Sin embargo, cuando implemento en mi pagina utilizando las credenciales de prueba, el resultado que obtengo es el siguiente:
Solo aparecen esos 3 medios de pago, y no aparece la opcion de pagar con el dinero de la billetera de mercado pago. Este es el código que estoy usando:
Code:
const mp = new MercadoPago('TEST-e587cc71-b47f-4db3-b3cd-515433ee5d53', {
locale: 'es-AR'
});
const bricksBuilder = mp.bricks();
const renderPaymentBrick = async (bricksBuilder) => {
const settings = {
initialization: {
/*
"amount" es el monto total a pagar por todos los medios de pago con excepción de la Cuenta de Mercado Pago y Cuotas sin tarjeta de crédito, las cuales tienen su valor de procesamiento determinado en el backend a través del "preferenceId"
*/
amount: 10000,
preferenceId: "<PREFERENCE_ID>",
payer: {
firstName: "",
lastName: "",
email: "",
},
},
customization: {
visual: {
style: {
theme: "dark",
},
},
paymentMethods: {
creditCard: "all",
debitCard: "all",
ticket: "all",
bankTransfer: "all",
wallet_purchase: "all",
maxInstallments: 9
},
},
callbacks: {
onReady: () => {
/*
Callback llamado cuando el Brick está listo.
Aquí puede ocultar cargamentos de su sitio, por ejemplo.
*/
},
onSubmit: ({ selectedPaymentMethod, formData }) => {
// callback llamado al hacer clic en el botón de envío de datos
return new Promise((resolve, reject) => {
fetch("/______desubik2/buy/php/process-payment.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
})
.then((response) => {
// recibir el resultado del pago
console.log(response.json());
resolve();
})
.catch((error) => {
// manejar la respuesta de error al intentar crear el pago
reject();
});
});
},
onError: (error) => {
// callback llamado para todos los casos de error de Brick
console.error(error);
},
},
};
window.paymentBrickController = await bricksBuilder.create(
"payment",
"paymentBrick_container",
settings
);
};
renderPaymentBrick(bricksBuilder);
Como se ve no estoy agregando ninguna
PREFERENCE_ID
, no se si esto tendrá algo que ver con el hecho de que no agrega la opcion de pago con dinero de mercado pago (entiendo que cuando se elige esta opcion, el procesamiento se hace utilizando la preferencia). Sin embargo, también intente colocar una preference id creada previamente en PHP, pero el problema no se solucionó:preferenceId: "<?= $preference->id ?>",
En la consola del navegador aparecen los siguientes mensajes:
... es como si la opción
wallet_purchase
no existiera, esto es lo que me deja más sorprendido.Si alguno puede guiarme sobre como solucionarlo, o que alternativa hay, gracias de antemano. Saludos