2010-05-19 20 views
42

Paypal me devuelve con éxito a la URL de retorno que especifico al crear el botón Comprar ahora. Pero, ahora estoy confundido. ¿Cómo recupero detalles sobre la transacción que sucedió en Paypal? Y también quiero establecer algunos valores de base de datos en la URL de retorno. Pero me temo que si mi usuario sin pagar a PayPal va a esa url, entonces él también se convertirá en miembro premium. ¿Cómo puedo asegurar esto?Notificar url de Paypal

Respuesta

75

PayPal devuelve los datos a su sitio a través de lo que ellos llaman IPN. Es solo una devolución de llamada a una URL que especifique. Puede establecer esta URL a través de la variable notify_url que puede enviar a PayPal.

Ejemplo:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden"> 

El notify_url.php en el ejemplo anterior recibe algunas variables POST de PayPal cuando se haya completado el pago, incluso si el cliente no vuelve a su sitio web.

Algunos de los importantes variables devuelto por PayPal es:

  • mc_gross
  • factura
  • settle_amount
  • protection_eligibility
  • address_status
  • payer_id
  • impuestos
  • address_street
  • payment_date
  • payment_status
  • charset
  • address_zip
  • mc_shipping
  • mc_handling
  • FIRST_NAME
  • mc_fee
  • address_country_code
  • exchange_rate
  • ADDRESS_NAME
  • notify_version
  • settle_currency
  • encargo
  • payer_status
  • negocio
  • address_country
  • address_city
  • verify_sign
  • PAYER_EMAIL
  • txn_id
  • payment_type

factura se devuelve si se establece. Se puede usar como su propia ID de pedido/ID de transacción.

txn_id es generado por PayPal y es su propia identificación para la transacción.

Si agrega elementos usted mismo, PayPal también devolverá num_cart_items, item_name1 (item_name2, item_name3), quantity1 (quantity2, quantity3) y tal.

Más lectura en https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

Por supuesto, entonces usted todavía tiene el problema a resolver, cómo comprobar todos estos datos y conectarlo a un cliente en su propia base de datos, que es probable que tenga.

Lo que hago es guardar una "orden" temporal antes de enviar al cliente a PayPal con una identificación de factura, la misma identificación que envío a PayPal como factura. De esta forma, mi página notify_url.php puede verificar mi base de datos para una identificación de factura y comparar el pedido/pago.

+0

Hola jamietelin. Gracias por tu valiosa respuesta. Ya lo descubrí por mi cuenta. Me gustaría añadir que, en lugar de almacenar el pedido temporal en la base de datos, Paypal ya dio un buen ejemplo en el que recuperamos todos los nombres de parámetro de solicitud y sus valores y lo enviamos de vuelta a Paypal (para validación) desde nuestra url de notificación y luego Paypal regresa una cadena "VERIFICADA" o "NO VÁLIDA" en base a la cual puede realizar algunas operaciones de base de datos. – TCM

+0

Bueno, el DB temporal es sobre todo si tenemos que conectarlo de alguna manera a un usuario en nuestro propio usuario db. Necesito esto Pero depende de qué servicio esté construyendo, supongo :) – jamietelin

+0

@ jamietelin Lo probé pero no lo logró, consulte http://stackoverflow.com/questions/8570539/add-custom-hidden-field-in-paypal-form- and-get-it-on-redirected-page –