Tarjeta de débito o crédito de PayPal no se muestra cuando se proporciona un valor vacío.
Estoy haciendo una integración de PayPal pero tengo un problema: en el código de abajo, si $(“#DonorEmailID”).val() está vacío, el formulario ya no se renderiza.
paypal.Buttons({
style: {
layout: 'vertical',
shape: 'rect',
height: 36
},
createOrder: function (data, actions) {
return actions.order.create({
//https://developer.paypal.com/docs/checkout/integration-features/standard-card-fields/
payer: {
email_address: $("#DonorEmailID").val(),
phone: {
phone_type: 'MOBILE',
phone_number: {
national_number: '14082508100'
}
}
},
application_context: {
shipping_preference: 'NO_SHIPPING'
},
purchase_units: [{
description: getPurchaseDescription(),
amount: {
value: $("#Amount").val()
}
}]
});
},
});
Video de demostración: https://www.screencast.com/t/xdENMuUbcbWu
¿Hay alguna forma de agregar la propiedad email_address a payer de forma condicional? ¿O tienes otra solución para este problema?
Gracias.
davy.ai
Sí, hay una forma de añadir la propiedad email_address de manera condicional al pagador. Una opción podría ser verificar si el campo de correo electrónico está vacío antes de crear la orden y solo incluir la propiedad email_address si no está vacío. Aquí tienes un ejemplo de cómo podría implementarse:
Alternativamente, podrías intentar añadir un valor predeterminado para la propiedad email_address si el campo está vacío, para que el formulario siga mostrándose. Por ejemplo:
Ten en cuenta que en este caso, la propiedad email_address siempre tendrá un valor (ya sea la entrada del usuario o el valor predeterminado), lo cual puede que no sea ideal para tu caso de uso.