Esta es una pregunta de seguimiento para: PHP: ¿Una forma fácil de iniciar el pago de PayPal?
Entonces, mi problema es que estoy especificando la URL de retorno. Sin embargo, después de pagar con PayPal, termino en una pantalla que dice:
Usted acaba de completar su pago. XXXX, acabas de completar tu pago. Su ID de transacción para este pago es: XXXXXXXXXXXXX.
Le enviaremos un correo electrónico de confirmación a [email protected]. Esta transacción aparecerá en su estado de cuenta como PAYPAL.
Go to PayPal account overview
Necesito que no muestre esta pantalla e ir directamente a la URL de retorno. Yo tengo:
- Establecer la variable "retorno"
- Establezca la variable "rm" en: 2 (que según la guía = " el navegador del comprador se redirige a la URL de retorno mediante el método POST, y se incluyen todas las variables de pago ")
De hecho, aquí está mi forma completa:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
¿Alguna idea de cómo puedo hacer que vuelva automáticamente? Alternativamente, ¿cómo obtengo el resultado del pago en mi sitio web para poder actualizar la base de datos? ¿Qué es el IPN?
Respuestas:
Debe habilitar el retorno automático en su cuenta PayPal, de lo contrario, ignorará el
return
campo.De la documentación (actualizada para reflejar el nuevo diseño de enero de 2019):
IPN es para notificación de pago instantáneo. Le dará información más confiable / útil que la que obtendrá de la devolución automática.
La documentación para IPN está aquí: https://www.x.com/sites/default/files/ipnguide.pdf
Documentación en línea para IPN: https://developer.paypal.com/docs/classic/ipn/gs_IPN/
El procedimiento general es que pase un
notify_url
parámetro con la solicitud, y configure una página que maneje y valide las notificaciones IPN, y PayPal enviará solicitudes a esa página para notificarle cuando los pagos / reembolsos / etc. atravesar. Esa página de controlador de IPN sería el lugar correcto para actualizar la base de datos para marcar los pedidos como pagados.fuente
My Selling Tools
Paso 4) Haga clicWebsite Preferences
debajoSelling Online
return
campo". Cualquierreturn
parámetro de URL que pase al finalizar la compra se aceptará y anulará cualquier URL de devolución automática (o falta de ella) configurada en el perfil de la cuenta PayPal del vendedor, pero si no tienen habilitada la devolución automática allí, el comprador deberá hacer clic manualmente más allá de fin del pago para ser redirigido a esa URL, en lugar de ser redirigido automáticamente.Formulario de muestra usando PHP para pagos directos.
amablemente vaya a través de los campos notify_url, return, cancel_return
código de muestra para manejar ipn (my_ipn.php) que es solicitado por paypal después de que se haya realizado el pago.
Para obtener más información sobre cómo crear una IPN, consulte este enlace.
La siguiente imagen lo ayudará a comprender el proceso de PayPal.
Para más información, consulte los siguientes enlaces;
Espero que esto te ayude..:)
fuente
Una forma que he encontrado:
intente insertar este campo en su código de formulario generado:
rm significa método de retorno ;
2 medios (post)
Después de que el usuario compra y regresa a la URL de su sitio, esa URL también obtiene los parámetros POST
ps si usa php, intente insertar
var_dump($_POST);
en su url de retorno (script), luego realice una compra de prueba y cuando regrese a su sitio verá qué variables se encuentran en su url.fuente
Compartir esto ya que recientemente encontré problemas similares a este hilo
Durante mucho tiempo, mi script funcionó bien (formulario de pago básico) y devolvió las variables POST a mi página success.php y los datos de IPN como variables POST también. Sin embargo, últimamente, noté que la página de retorno (success.php) ya no recibía ninguna variable POST. ¡Probé en Sandbox y vivo y estoy bastante seguro de que PayPal ha cambiado algo!
Notify_url aún recibe los datos IPN correctos que me permiten actualizar DB, pero no he podido mostrar un mensaje de éxito en mi página de URL de retorno (success.php).
A pesar de intentar muchas combinaciones para activar y desactivar las opciones en las preferencias de pago del sitio web de PayPal e IPN, tuve que hacer algunos cambios en mi script para asegurarme de que aún pueda procesar un mensaje. He logrado esto activando PDT y Auto Return, después de seguir esta excelente guía .
Ahora todo funciona bien, pero el único problema es que la URL de retorno contiene todas las variables PDT, ¡lo cual es feo!
También puede encontrar esto útil
fuente
¡Creo que la idea de establecer los valores de Retorno automático como se describe anteriormente por Kevin es un poco extraña!
Supongamos, por ejemplo, que tiene varios sitios web que utilizan la misma cuenta de PayPal para gestionar sus pagos, o que tiene una serie de secciones en un sitio web que realizan diferentes tareas de compra y requieren diferentes direcciones de devolución cuando el pago esta completado. Si pongo un botón en mi página como se describe arriba en la sección 'Formulario de muestra usando PHP para pagos directos', puede ver que hay una línea allí:
donde establece el valor de retorno individual. ¿Por qué tiene que configurarse en general, también en la sección de perfil?!?!
Además, debido a que solo puede establecer un valor en la Sección de perfil, significa (AFAIK) que no puede usar el Retorno automático en un sitio con múltiples acciones.
Comentarios por favor?
fuente
return
valores anulados por botón entonces? ¿Entonces puedo tener diferentes páginas de retorno que todavía recibirán datos PDT?en la página de pago, busque el elemento de formulario oculto 'cancel_return':
establezca el valor del elemento de formulario cancel_return en la URL a la que desea volver:
fuente