2012-08-10 19 views
5

Estoy creando un sitio web donde vamos a organizar eventos y nos gustaría que un usuario "USUARIO A" pueda iniciar un evento: ingrese la información de su cuenta 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.PayPal Adaptive Payment Api pre-populate user data

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 información personal nuevamente e información de tarjeta de crédito)

Quiero saber cómo puedo lograr tener todo los campos ya están completados en la página de Paypal, por lo que el usuario no tiene 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.

He intentado añadir los valores como se sugiere en tutoriales Paypal como esto

  <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í es los datos en bruto del violinista 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 
+0

He estado investigando esta pregunta y es posible que tenga una idea; sin embargo, me gustaría saber qué enfoque se tomó para poder construir correctamente una respuesta (posible). ¿Lo hiciste? ¿Cómo se menciona aquí http://stackoverflow.com/questions/2849314/paypal-adaptive-payment-api-call-with-c-sharp-net-preference-with-webservices o usaste una biblioteca como como este http://xadaptivepayments.codeplex.com/ o algo completamente diferente? ¿Alguna posibilidad de publicar el código donde realizas la solicitud a paypal y a cualquier metadato de apoyo? – bUKaneer

+0

Tomé el enfoque en la pregunta a la que tiene un enlace, la biblioteca codeplex no iba a ser una opción ya que no hay una fuente para su archivo dll, y el uso de un archivo DLL que no fue escrito por nosotros, y que no contener la fuente no nos permitiría seguir siendo pci obedientes, publicaré una solicitud de muestra de fiddler –

+0

pregunta actualizada –

Respuesta

0

Respuesta oficial de PayPal:

"Adaptive Payments no tiene ninguna función en los documentos que hace esto. Me disculpo por las molestias que esto pueda causar "

voy a dejar esta cuestión abierta, aunque en el caso de que alguien tiene una mejor ruta para que me vaya a lograr lo que he explicado en la pregunta

EDIT:..

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

1

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

Puede prefiltrar directamente las informaciones 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 para integrar aún más todo su sitio web a través de paypal puede agregar pre-aprobación, el usuario sólo verá la página web de PayPal una vez: cuando se aceptará la aprobación previa (dos pasos en una ventana emergente luz paypal: login > aceptar).

Cuando la caja usuario la primera vez:

  1. Seleccionar entre Crear una cuenta (usando el camino he explicado anteriormente) o pagar con PayPal
  2. Cree una clave pre-aprobación (ver el documento en el api, no necesita saber el nombre de usuario de paypal), como returnUrl, especifique una url con el id_usuario local
  3. Abra un lado del cliente emergente de paypal usando 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 se redireccionará a la URL de retorno del paso 2, puede ser una página cuando diga "Esto ventana se cerrará de forma automática" con un js para cerrar la página
  5. ahora puede utilizar la tecla de aprobación previa para realizar pagos en el nombre del usuario

Cuando la caja del usuario después de la primera vez:

  1. Pida una confirmación "Se tomarán $ XX en su cuenta vinculada de paypal "
  2. Pague usando la clave de aprobación previa, ¡y listo!

Espero que ayude!