2010-10-28 37 views
13

tôi đã được sử dụng lớp PAYPAL IPN Micah Carrick cho đến bây giờ choLàm cách nào để tích hợp Paypal IPN cho các khoản thanh toán định kỳ?

web_accept

nhưng bây giờ một trong những khách hàng muốn tích hợp các phương pháp định kỳ vào nó.Tôi đã cố gắng sử dụng các công cụ tương tự nhưng không may đã không thành công lần này. Tôi đang cố gắng kết nối với phương pháp định kỳ Paypal.Theo dõi là mã mà tôi đang cố gắng truy cập vào nó;

$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(); 

Mã cho phép tôi để chuyển hướng vào sandbox Paypal (Như tôi vẫn đang thử nghiệm), nhưng khi tôi đăng nhập vào Paypal sandbox nó ném tôi Lỗi này:

Các liên kết mà bạn đã sử dụng để nhập hệ thống PayPal không hợp lệ. Vui lòng xem lại liên kết và thử lại.

Trả lời

10

Tôi chỉ tìm ra vấn đề đằng sau mã của mình. Tôi chỉ viết lại mã với một số Biến khác và nó chỉ hoạt động tốt.

$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

làm cách nào để thực hiện việc tách biệt trong thanh toán thông thường và thanh toán định kỳ với tập lệnh được chỉnh sửa này của bạn? – Santanu

+1

@san: Sử dụng nếu điều kiện theo IsRecurring hoặc ai đó như biến đó để phân biệt thường xuyên và đăng ký sản phẩm & sử dụng cmd theo điều kiện và tất cả những gì để làm tách trong thanh toán thường xuyên và thanh toán định kỳ – chitra

0

Tôi không tin bạn nên đặt txn_type - đây là một giá trị được trả lại bởi IPN của PayPal, không được chuyển cho nó.

+0

oh Chết tiệt! Cảm ơn Bryn. Để tôi thử xem! –

+0

Vẫn không làm việc Bryn.It vẫn ném thông báo lỗi tương tự. Tôi nên làm gì bây giờ.Bạn có tìm thấy bất cứ điều gì khác mà là fishy, ​​trong mã của tôi? –

Các vấn đề liên quan