2012-06-28 24 views
11

He intentado pasar por la jungla (en realidad, PayPal, ¿por qué no lo elimina ...) durante unos días para encontrar la solución a mi problema bastante simple.Botón de PayPal que envía variables personalizadas a través de IPN

Tengo un sitio web con membresías. El cliente se registra con su correo electrónico y contraseña en mi sitio. Luego van a PayPal para pagar su suscripción.

Mi problema es cómo paso la llave - su correo electrónico - a través de toda la transacción, entonces sé para quién es el pago?

Esto porque es probable que suceda que a veces se registran con un correo electrónico y pagan con otro. Y cómo hacerlo todo con un botón encriptado (seguro).

Lo que pensé es que podría hacer que el botón encriptado en la página "Crear botón de pago PayPal" de PayPal.

En Paso 3, Añadir (x-ed a cabo URL real) avanzado variables:

notify_url=http://xxxxxxxxxx.com/xxxxx.php 
test_ipn=1 

obtener el código:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG"> 
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

y pegar el código dado en mi página php, pero agregue un campo oculto llamado "personalizado" y dele el correo electrónico a mano y cambie la acción del formulario para ir al sandbox.

Algo así como esto:

variables
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 

<input type="hidden" name="custom" value="<?=$signUpEmail ?>"> 

<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG"> 
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

Esta costumbre después puedo recoger en mi página de IPN, así que sé que el número de miembros es para ..

estoy pensando ¿verdad? ¿O debería hacer el botón con el código "escrito a mano"? ¿O hay alguna manera mejor?

Respuesta

3

manera anterior funciona, aunque tuve algunos problemas con el recinto de seguridad de PayPal no aceptar la "regular PayPal" hosted_button_id - algo que fue tratado por volver a crear un hosted_button_id en el recinto de seguridad.

<input type="hidden" name="hosted_button_id" value="RECREATENEWINPAYPALSANDBOX"> 
12

Hay un campo que puedes usar en el formulario de Paypal para poner lo que quieras. El nombre del archivo es "personalizado". Entonces puede escribir algo como:

<input name="custom" value="blablabla" type="hidden"> 

Sugiero codificar el valor del valor personalizado. Por ejemplo, algún tipo de base64_encode podría ser útil para desalentar a las personas curiosas. Sin embargo, también hay una buena explicación de lo que puede hacer con Paypal en el manual. Este link y este one son un extracto.

Además, como se sugiere en los comentarios, no es posible utilizar la variable de sesión relacionada con su interfaz en la comunicación de rechazo entre su sitio y PayPal.