我正在我的网站上实施结帐程序,目的是处理我网站上所有可能的付款方式,而无需重定向或使用任何弹出模式。
根据 Mercado Pago 参考,完整的结帐积木(包含所有积木)应该如下所示:
但是,当我使用测试凭据在我的页面上实现它时,我得到的结果如下:只出现这3种支付方式,并没有出现使用Mercado Pago钱包资金支付的选项。 这是我正在使用的代码:
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);
如你所见,我没有添加任何PREFERENCE_ID,我不知道这是否与没有添加使用Mercado Pago钱包资金支付的选项有关(我明白当选择此选项时,处理是使用首选项完成的)。
不过,我也尝试在 PHP 中放置之前创建的首选项 ID,但问题并未解决:
preferenceId: "<?= $preference->id ?>",
... 就好像 wallet_purchase 选项不存在一样,这是最让我惊讶的。
如果有人可以指导我如何修复它,或者有什么替代方案,请提前致谢。问候
wallet_purchase
的参数。现在叫
mercadoPago
:
paymentMethods: {
creditCard: "all",
debitCard: "all",
ticket: "all",
bankTransfer: "all",
mercadoPago: "all", // <--------
maxInstallments: 9
},
要小心,因为文档有些过时了。P.S.:我还必须加载测试
PREFERENCE_ID
才能使其正常工作。