2010-01-13 10 views
6

He estado en esto por días y no puedo entenderlo. Todo lo que quiero hacer es presionar el botón de suscripción, se envía una variable (post get i dont care) el pago se completa y aterriza en la página de éxito, ¡con mi variable!Pasando una variable de principio a fin - Paypal

De lo que he entendido esto debería ser capaz de hacerlo:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="0000000"> 
<Input type="hidden" name="custom" value="<?php md5($code.microtime()); ?>"/> 
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

Cualquier ayuda muy apreciada (y sí que he leído paypal y documentación caja de arena, simplemente no es tan bueno para leer.)

Respuesta

0

Falta un echo. En lugar de esto:

<?php md5($code.microtime()); ?> 

Prueba esto:

<?php echo md5($code.microtime()); ?> 
+0

¿Lo volverá a pasar por $ _POST ['custom'] ?? –

+0

Todavía no hubo suerte. nada se envía –

0

PayPal no procesará sus datos personalizados, por lo que en lugar de enviarlo a ellos y conseguir de nuevo, simplemente guardarlo en su propia base de datos. Asociar los datos con la transacción usando invoice como la clave.

En su página de destino, puede obtener la transacción invoice de PayPal. A continuación, puede recuperar los datos de su propia base de datos a la que hace referencia esa ID invoice.

+0

¿Este principio se aplica a la opción de pago estándar (esto es cuando usted aloja el botón pero el usuario lleva a Paypal a completar la transacción)? – Joel

+0

@Joel puede leer la API estándar de Paypal. Cualquier variable además de su especificación no será procesada por Paypal y podría descartarse cuando el usuario sea redirigido a la página de éxito. El campo 'factura 'se puede usar para rastrear el fact_id de su aplicación, y en la página de éxito, puede usarlo para obtener datos adicionales y mostrarlos al usuario. –

+0

Resulta que hay un campo "personalizado" para esto. – Joel

9

Las variables 'personalizado' y 'factura' son a la vez lo que PayPal llama variables de "paso a través". PayPal no hace nada con ellos, simplemente se los devuelve en cualquier notificación de IPN que reciba con respecto a esa transacción (alguien realiza un pago, un contracargo, etc.).

Puedo confirmar personalmente que esto funciona correctamente a partir de ahora usando la variable 'personalizada'. Estoy usando su solución de pago estándar (gratuita) actualmente ...

¿Cómo está supervisando la notificación IPN para ver qué variables se le están enviando?

Editar - Información adicional añadido continuación:

que querían ampliar esto un poco, ya que estaba muy poco atrapado por una cuestión relacionada con paso a través de las variables!

La variable 'factura' debe ser ÚNICA por transacción; PayPal solo permitirá que venza 1 pago completado por cada cadena de factura ÚNICA. Cualquier intento posterior de pago (que viene con una variable 'factura' ya pagada) se mostrará inmediatamente como "Esta factura ya fue pagada". mensaje.

La variable 'personalizada', por otro lado, NO es necesaria para ser única y está destinada estrictamente a ser utilizada como variable de paso: en la mayoría de los casos esto es lo que desea utilizar cuando solo está buscando la funcionalidad 'pass-through'.

Espero que ayude - ¡el problema de la singularidad recientemente me costó casi un día completo de un proceso de pago roto en un proyecto personal mío!

0

La cuestión parece haber ninguna parece Obtenga ser pasado a través de recinto de seguridad

vergüenza PayPal no es tan bueno como todos pensamos

0

Prueba esto:

<input type="hidden" name="custom" value=<?php echo "\"".md5($code.microtime())."\""; ?>/> 

Hubo una echo perdido y también las comillas están alrededor del valor, no del php

Cuestiones relacionadas