2017-08-27 121 views
3

我最近試圖實現貝寶的IPN到我的網站。 這裏是我已經採取了(沙盒)貝寶IPN,缺少POST數據

1步驟:使2個沙箱帳戶(買方/賣方)

2:賣家帳戶中啓用IPN和URL設置爲我PayPalIPN.php

PayPalIPN.php是

3:創建一個按鈕,該按鈕進入購買後success.php

success.php是https://github.com/paypal/ipn-code-samples/blob/master/php/example_usage.php

現在

當我現在買的點擊,登錄到我的沙盒買家帳戶,買它,然後按帶我回商人,我得到這個錯誤

Fatal error: Uncaught Exception: Missing POST Data in /home/site/public_html/PayPalIPN.php:60 Stack trace: #0 /home/site/public_html/success.php(7): PaypalIPN->verifyIPN() #1 {main} thrown in /home/site/public_html/PayPalIPN.php on line 60

這是拋出異常的行

if (! count($_POST)) { 
     throw new Exception("Missing POST Data"); 
    } 

我真的很難過這個。在這個問題上,我只看到過一個問題,Paypal的教程沒有提到這個錯誤發生時的錯誤。我感謝所有幫助

UPDATE

所以好像我是用一些錯誤的地方的網址。所以現在我在'paypalipn.php'有一個IPN類,另一個名爲'success.php'的文件包含了paypalipn.php,並使用IPN類來檢查它是否被驗證。我已將聽衆URL設置爲success.php,當它被購買時,用戶被重定向到'purchased.php'。我遇到的問題是,似乎success.php永遠不會被調用。它根本不起作用。我也曾嘗試使用

notify_url=https://www.website.com/success.php 

它似乎仍然沒有得到所謂的設置在立即購買按鈕的變量的URL。我真的很困惑我在做什麼錯...

回答

0

似乎被調用的.php有一個錯誤。在我修正了錯誤之後,它似乎被調用了。現在我只是想弄清楚如何正確地發送自定義變量到IPN ..我不斷從$ _POST得到錯誤的東西。

0

檢查您的網址是否正確。

難道不是這樣嗎?

notify_url=https://www.website.com/paypalipn.php 

return_url=https://www.website.com/success.php 

要檢查您收到的POST變量,可以使用下面的success.php打印它們在屏幕上。

print_r($_POST); 

要添加自定義數據,如果您使用的是表格/按鈕,你可以做這樣的事情;

$custom_data = $myvar; 

,並在貝寶的形式添加這樣的:

<input type="hidden" name="custom" value="<?php echo $custom_data ;?>"> 

貝寶應該把它返回到您的return_url作爲發佈變量。