payments chained c# asp.net api paypal paypal-adaptive-payments

c# - chained - PayPal Adaptive Payment Api pre-populate user data



paypal api payment (3)

Estoy creando un sitio web donde organizaremos eventos y me gustaría que un usuario "USUARIO A" pueda iniciar un evento: ingrese la información de su cuenta de PayPal y establezca un precio. Luego, otros usuarios pueden registrarse para su evento y pagar al USUARIO A directamente, sin que nosotros tengamos que procesar su tarjeta de crédito. Nos gustaría que los usuarios que no tienen cuentas de PayPal puedan pagar con una tarjeta de crédito.

Parece que el pago adaptable de Paypal es la mejor API que podemos usar para lograr esto. Lo tengo trabajando en el entorno de sandbox. Mi problema es este: un usuario hace clic para registrarse para el evento del USUARIO A, luego ingresa toda su información (nombre, dirección, empresa, etc.). Necesitamos mantener esta información en nuestra Base de datos, así que esto debe hacerse primero. Luego, harán clic en un botón que dice "Pagar con Paypal". Esto crea una clave de pago y redirige al usuario a la página de inicio de sesión de Paypal, donde el usuario tiene 2 opciones (a. Iniciar sesión en PayPal o ingresar nuevamente información personal e información de la tarjeta de crédito)

Quiero saber cómo puedo lograr tener todos los campos ya completados en la página de Paypal, para que el usuario no tenga que volver a ingresar toda su información. Podrán eliminar datos en los cuadros de texto si la dirección de facturación es diferente. Pero todos los sitios web que he visto nunca hacen que el usuario ingrese esta información dos veces si son idénticos. Ahora sé que esto es posible porque he visto que otros sitios lo hacen. He investigado la API de SetPaymentOptions, pero no está muy claro cómo funciona, y necesito que se apruebe la información del usuario, incluso si Paypal ya no los conoce.

Traté de agregar valores como se sugiere en los tutoriales de Paypal como este

<INPUT TYPE="hidden" NAME="first_name" VALUE="John"> <INPUT TYPE="hidden" NAME="last_name" VALUE="Doe"> <INPUT TYPE="hidden" NAME="address1" VALUE="9 Elm Street">

pero eso no funcionó. Aquí están los datos sin procesar de Fiddler de la solicitud:

POST https://svcs.sandbox.paypal.com/AdaptivePayments/Pay HTTP/1.1 Content-Type: text/xml;charset=utf-8 X-PAYPAL-SECURITY-USERID: scotts_XXXXXXXXX_biz_api1.live.com X-PAYPAL-SECURITY-PASSWORD: 1344XXXXX X-PAYPAL-SECURITY-SIGNATURE: AOLbPDojAEUdeQJ3wXagJXkxYeJDARg4IXXXXXXXXXXXXXXXXXXX X-PAYPAL-SERVICE-VERSION: 1.1.0 X-PAYPAL-APPLICATION-ID: APP-80W2844XXXXXXXXX X-PAYPAL-REQUEST-DATA-FORMAT: XML X-PAYPAL-RESPONSE-DATA-FORMAT: XML Host: svcs.sandbox.paypal.com Content-Length: 810 Expect: 100-continue Connection: Keep-Alive



Creo que para ti el problema no es realmente el inicio de sesión en PayPal en una ventana emergente, sino el proceso de registro de PayPal para poder pagar con la tarjeta de crédito. Hay una llamada de API en la API de pago adaptable que le permite procesar un registro en nombre de un usuario.

Puede directamente prefiltrar información de paypal en una página usando su propio diseño. En el envío, usted crea una cuenta de PayPal utilizando la API adaptable de pago, y el último paso de este proceso le pedirá que abra una ventana emergente de PayPal que le pedirá al usuario que complete su registro al agregar una contraseña y la información de su tarjeta de crédito.

Después de este punto, encontrará el mismo comportamiento de pago que tiene utilizando el simple inicio de sesión de PayPal.

Tenga en cuenta que para integrar aún más su sitio web a través de PayPal, puede agregar una aprobación previa, luego el usuario solo verá el sitio web de PayPal una vez: cuando acepte la aprobación previa (dos pasos en una pantalla emergente de PayPal: inicio de sesión> aceptar).

Cuando el usuario finalizó la compra la primera vez:

  1. Seleccione entre Crear una cuenta (usando la forma que expliqué arriba) o Pagar con PayPal
  2. Cree una clave de aprobación previa (consulte el documento en la API, no necesita conocer el nombre de usuario de PayPal), como returnUrl, especifique una URL con el ID de usuario local
  3. Abra un lado del cliente emergente de PayPal utilizando la URL devuelta por el paso anterior. El usuario deberá iniciar sesión con su cuenta de PayPal y luego aceptar las características de su preaprobación (límite de tiempo, límite de dinero)
  4. Paypal redireccionará a returnUrl del paso 2, puede ser una página cuando diga "Esta ventana se cerrará automáticamente" con un js para cerrar la página.
  5. Ahora puede usar la clave de preaprobación para realizar pagos en nombre del usuario

Cuando el usuario finalizó la compra después de la primera vez:

  1. Solicite una confirmación "Se tomarán $ XX en su cuenta de PayPal vinculada"
  2. Pague usando la clave de preaprobación, ¡y listo!

Espero que ayude!


Respuesta oficial de PayPal:

"Adaptive Payments no tiene ninguna característica en los documentos que hace esto. Me disculpo por los inconvenientes que esto podría causar".

Dejaré esta pregunta abierta, aunque en caso de que alguien tenga una mejor ruta para llevar a cabo lo que he explicado en la pregunta.

EDITAR:

En caso de que alguien más se encuentre con esto, es oficialmente 100% imposible: terminé usando la API Express Payment, usando esto es muy fácil pasar los parámetros del usuario.