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:
Image may be NSFW.
Clik here to view.
Sin embargo, cuando implemento en mi pagina utilizando las credenciales de prueba, el resultado que obtengo es el siguiente:
Image may be NSFW.
Clik here to view.
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:
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:
Image may be NSFW.
Clik here to view.
... 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