2010-10-28 23 views
13

He estado usando PayPal IPN clase de Miqueas Carrick hasta ahora para¿Cómo integrar Paypal IPN para pagos recurrentes?

web_accept

pero ahora uno de los cliente quiere integrar el método recurrente en it.I intentado usar la misma materia pero, por desgracia no fue tan exitoso esta vez. Estoy tratando de conectarme al método recurrente de Paypal. El siguiente es el código por el que intento llegar a él;

$paypalObj = new paypal_class(); 

$itemName = "My Product"; 
$itemNumber = $itemName . " - Premium ($amount$)"; 

$paypalObj->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';// testing paypal url 
//$paypalObj->paypal_url = 'https://www.paypal.com/cgi-bin/webscr';// Live paypal url 

$paypalObj->add_field('cmd','_xclick-subscriptions'); 
$paypalObj->add_field('txn_type', "recurring_payment"); 
$paypalObj->add_field('product_name', "My Product Subscription - Monthly($$amount)"); 
$paypalObj->add_field('desc', "My Product Subscription - Monthly($$amount)"); 

$paypalObj->add_field('business', "[email protected]"); 

$paypalObj->add_field('return', "http://".$serverName . "/buy-now.php"); 
$paypalObj->add_field('cancel_return', "http://".$serverName. "/return.php?action=cancel"); 
$paypalObj->add_field('notify_url', "http://" . $serverName . "/return.php?action=ipn"); 

$paypalObj->add_field('src', "1"); 
$paypalObj->add_field('sra', "1"); 
$paypalObj->add_field('a3', "$amount"); 
$paypalObj->add_field('t3', "M"); 
$paypalObj->add_field('p3', "1"); 
//$paypalObj->add_field('no_note', "1"); 
$paypalObj->add_field('currency_code', "USD"); 

$paypalObj->add_field('first_name', $firstName); 
$paypalObj->add_field('last_name', $lastName); 

$paypalObj->submit_paypal_post(); 

Código me permite volver a dirigir a la caja de arena de Paypal (Como yo todavía estoy probando), pero cuando me conecto a PayPal caja de arena que me lanza este error:

El enlace que ha usado para entrar el sistema de PayPal no es válido. Revise el enlace y vuelva a intentarlo.

Respuesta

10

Acabo de descubrir cuál era el problema detrás de mi código. Simplemente reescribí el código con otras Variables y funcionó bien.

$paypalObj = new paypal_class(); 


$customData = $firstName . ":"; 
$customData .= $lastName . ":"; 
$customData .= $emailId ; 
$itemName = "MY_PRODUCT"; 
$itemNumber = $itemName . " - Premium ($amount$)"; 

$paypalObj->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';// testing paypal url 


$paypalObj->add_field('cmd','_xclick-subscriptions'); 
$paypalObj->add_field('business','MY_MECHANT_ACCOUNT'); 
$paypalObj->add_field('item_name',$itemName); 
$paypalObj->add_field('item_number',$itemNumber); 
$paypalObj->add_field('return', "http://" . $serverName . "/buy-now.php"); 
$paypalObj->add_field('cancel_return', "http://".$serverName. "/buy-now.php?action=cancel"); 
$paypalObj->add_field('notify_url', "http://" . $serverName . "/buy-now.php?action=ipn"); 
$paypalObj->add_field('no_note','1'); 
$paypalObj->add_field('currency_code','USD'); 
$paypalObj->add_field('custom',$customData); 
$paypalObj->add_field('a3', "$amount"); 
$paypalObj->add_field('t3', "M"); 
$paypalObj->add_field('p3', "1"); 
$paypalObj->add_field('src', "1"); 
$paypalObj->add_field('sra', "1"); 

$paypalObj->submit_paypal_post(); 
+0

cómo hacer la separación en el proceso de pago regular y el pago recurrente con este script rectificado suyo? – Santanu

+1

@san: Use si la condición de acuerdo con IsRecurring o alguien como esa variable para diferenciar el producto regular y suscribirse y use el cmd de acuerdo con su condición y todo lo relacionado con la separación en el pago regular y el pago recurrente – chitra

0

No creo que deba establecer txn_type: este es un valor pasado por el IPN de PayPal que no se le pasó.

+0

oh Damn! Gracias Bryn.¡Deja que lo intente! –

+0

Todavía no funciona Bryn. Todavía arroja el mismo mensaje de error. ¿Qué debo hacer ahora? ¿Encuentra algo más sospechoso en mi código? –