2010-10-27 24 views
7

He buscado durante más de 4 horas cómo hacer una devolución de llamada con PayPal después de que se haya procedido un pago.Paypal Callback de pago

El caso es que tengo un sitio que vende entradas para una LAN Party, y la única manera de pagar es con PayPal.
Aquí es mi PayPal comprar código del botón:

<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="_MY_PAYPAL_EMAIL_"> 
<input type="hidden" name="item_number" value="<?php echo mktime(); ?>"> 
<input type="hidden" name="cn" value="<?php echo $_SESSION['userid']; ?>"> 
<input type="hidden" name="return" value="http://80.202.213.240/apps/tickets/buy/success/" /> 
<input type="hidden" name="cancel_return" value="http://80.202.213.240/apps/tickets/buy/cancelled/" /> 
<input type="hidden" name="notify_url" value="http://80.202.213.240/apps/tickets/buy/ipn/" /> 
<input type="hidden" name="lc" value="NO"> 
<input type="hidden" name="item_name" value="BitHack - Standard Ticket"> 
<input type="hidden" name="amount" value="100.00"> 
<input type="hidden" name="currency_code" value="NOK"> 
<input type="hidden" name="no_shipping" value="1"> 
<input type="hidden" name="button_subtype" value="Tickets"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest"> 
<input type="submit" value="Add to Cart" class="ticketShowButton submit" title="Payment via PayPal"> 

La información a continuación, se debe insertar en una base de datos, esa parte he acabado. Solo necesito que el sistema de devolución de llamada funcione. ¿Alguien sabe algún buen script de devolución de llamada ejemplos?

BTW, ¿es posible utilizar entradas personalizadas?

Respuesta

10

La función de devolución de llamada especificada en las variables de URL de devolución y notificación es responsabilidad del programador. ¿Por qué? Porque cada sitio web tiene su propia estructura de tabla para pedidos. Pruebe esto como una guía:

En su perfil de Paypal configure su preferencia para redirigir automáticamente después de un pedido. También necesitará establecer una URL de retorno predeterminada. esto se usará si olvidó especificar una url de devolución en su formulario de pedido o cadena de consulta enviada a Paypal.

A continuación, establece su campo rm/variable a "2" (esto le dirá API de Paypal para autoredirect a su URL de retorno después de la orden y pasar la información orden en formato POST)

Puede ver la respuesta de Paypal haciendo var_dump ($ _ POST) o print_r ($ _ POST).

Una de las variables importantes de la respuesta es $ _POST ['payment_status'] que le informará el resultado del pedido. Una transacción exitosa es 'Completada'. Una transacción que requiere verificación de Paypal o del lado del comerciante es 'Pendiente'.

Por último, no olvide especificar 'factura' en su campo/solicitud de Paypal para que pueda actualizar el estado de su pedido. Algo así como:

$status = $_POST['payment_status']; 
$invoice = $_POST['invoice']; 
mysql_query("UPDATE Orders SET status='$status' WHERE order_id='$invoice'"); 

Sé que esto es mala codificación, pero al menos usted consigue la idea general en su forma más simple.

De nuevo, no confíe en los códigos de otros. Los códigos en la red existen para propósitos de referencia y no como el trabajo manual de Dios. Solo usted tiene el poder de crear su propia obra maestra: D

Espero que eso ayude. Vota si te gusta. Ignora si no.

+0

es '$ _POST' seguro? ¿Qué pasa cuando una persona sin pagar, envía 'payment_status = 1' a la URL de devolución de llamada? – Cooper

1

Una solución económica comercial, pero bajo es el guión LinkLokIPN en:

http://www.vibralogix.com/linklokipn/

Sin conexión que no sea como un cliente satisfecho de la versión de PHP. A veces es MUCHO más fácil comprar (y quizás adaptar) una solución de trabajo que reinventar la rueda.

+0

Gracias, echaremos un vistazo a eso. – NoobiCake

Cuestiones relacionadas