2009-02-19 16 views
9

Quería usar el servicio de IPN de Paypal para verificar los pagos de un cargo de suscripción recurrente para mi sitio web. ¿Cómo vincula las confirmaciones de IPN a un usuario en su sitio?¿Cómo se conecta la confirmación de Paypal IPN a un usuario?

El mensaje de confirmación de IPN tiene un nombre, correo electrónico, ID de PayPal, identificación de pago recurrente, pero parece que no proporciona un identificador único ya que no sé de dónde proviene la identificación de Paypal o la identificación de pago recurrente. ser trivial para unir de forma única el nombre/correo electrónico que un usuario tiene en su cuenta de PayPal (o ingresó allí) con el nombre/correo electrónico que tengo para ellos en mi sitio (puede haber muchos de John Smith y la persona puede elegir usar un correo electrónico diferente)

1) Cuando envío la solicitud de pago inicial a Paypal, puedo adjuntar un UUID único en la URL que les pido que me envíen, por lo que si guardo esa identificación única para ese usuario, puedo relacione esa confirmación de pago con el usuario que la inició. ¿Estoy haciendo eso más difícil de lo que es? hay una manera mas facil?

2) Además, para un cargo recurrente/de suscripción, ¿PayPal siempre usa la URL que especifiqué con el inicio de pago inicial? ¿Alguien tiene experiencia práctica en el uso de pagos recurrentes de Paypal con IPN, reutiliza esa URL única? ¿O debo asociar los ID de Paypal con el usuario después de que se reciba el primer pago recurrente?

Respuesta

2

Recientemente, también configuré algunos pagos recurrentes con Paypal.

En realidad quería que las personas se registraran como miembros después de pagando la suscripción, si así lo deseaban. Como tener que registrarse como miembro podría agregar cierta fricción al proceso de venta. Por lo tanto, no envío información de usuario junto con el botón Suscribir.

Lo que hace mi secuencia de comandos IPN es generar un código de activación único vinculado al Id. De abono de Paypal en la tabla de Activaciones, luego envía este código a quien pagó la suscripción, con instrucciones sobre cómo activarlo.

En el momento de la activación, debe registrarse o iniciar sesión. En este punto, el ID de usuario se agrega a la fila correspondiente en la tabla de Activaciones.

Cuando aparece la notificación IPN de EndOfTerm, el script IPN busca el ID de usuario de la tabla de Activaciones en base al ID de suscriptor dado en el IPN. Luego, puedo hacer lo que sea necesario para ese usuario para deshabilitar su suscripción.

En todo momento, la URL de la secuencia de comandos IPN sigue siendo la misma.

+0

buena solución también. – Tim

+0

¿A qué códigos de estado txn_type reaccionas? Me está costando mucho responder a esta pregunta. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

0

1) Puede enviar un parámetro 'item_number' con la configuración de suscripción inicial, que le será devuelto. Sugeriría insertar una ficha de identificación en ella.

2) Si se refiere al parámetro 'return', no, eso es para enviar al usuario a la conclusión de la configuración de la suscripción. La renovación es automática y no 'hace ping' en esa página.

+0

No tengo votos, pero creo que esto es correcto. – Tim

3

Adjuntar datos únicos a la solicitud de pago es prácticamente la forma aceptada de hacerlo.

No tengo ninguna experiencia con cargos recurrentes.

+0

No tengo votos, de lo contrario +1 – Tim

+0

¿Sabe cómo propagar algunos datos junto con otros datos de PayPal en la solicitud inicial de PayPal, generados al hacer clic en el botón "Pagar ahora" de PayPal? –

+1

@VladimirDespotovic Hay un campo adicional en el botón "Pagar ahora" y en la API de solicitud de pago donde puede agregar datos personalizados. Esa información personalizada se le envía de vuelta en * cada * respuesta relacionada con la transacción. – greyfade

0

1) Desea utilizar el parámetro item_number. Establezca esto en su formulario HTML que se muestra al cliente, y se lo devolverá la IPN de Paypal, de modo que puede poner una identificación de fila de la base de datos aquí y usarla para que coincida con la persona correcta más adelante.

Cuestiones relacionadas