2015-07-20 37 views
0

我們創建了一個小應用來幫助用戶管理某些PayPal訂單,但IPN似乎並沒有像預期的那樣工作。我發現這個紙條以下網址的底部:IPN似乎無法按照PayPal文檔的方式工作

https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/

"Even though you have not enabled receiving IPN messages in your Profile or 
you have reset your preference by turning off IPN messages, PayPal still  
sends IPN messages to the notification URL you specify for a specific 
payment." 

在此基礎上,我們責成我們的beta測試者不擔心自己的賬戶啓用IPN,因爲我們指定的通知URL通過按鈕代碼中的notify_url字段爲用戶的事務處理。但是沒有發送IPN。

接下來,我們指示我們的測試者啓用IPN,因爲這樣做需要您輸入通知URL,並且用戶不希望發佈到我們系統的每筆交易的交易數據,我們也不希望這樣做,我們指示他們輸入「虛假」網址並禁止向其帳戶中的該網址發送郵件。根據上面鏈接的說明,我們認爲這也應該起作用,但事實並非如此。雖然您現在可以在IPN歷史記錄中看到該消息,但沒有發送IPN。

所以我有點難倒在這裏。我看到它的方式,我們只有2種選擇,既不似乎理想......

  1. 指導我們的用戶啓用IPN和硬編碼我們的IPN通知的URL到他們的配置文件設置。這意味着,如果他們已經在使用IPN做其他事情,他們不能做到這一點,即使他們能做到這一點,也意味着他們所做的每筆交易的數據都會影響我們的系統,而且用戶和我們都不想這樣做。

  2. 指示我們的用戶在其帳戶中輸入「僞造」通知網址,並將郵件留給啓用的URL,因爲我們將使用自己的notify_url設置覆蓋此信息。這會起作用,但是它會導致PayPal嘗試將消息發送到通過我們的系統處理的任何交易的無效通知URL。我認爲貝寶不希望這一點,它可能導致用戶失去在未來由於不斷IPN錯誤IPN訪問等

任何人有任何想法嗎?謝謝!

回答

1

根據您的經驗,您需要啓用IPN才能發送IPN,但是如果指定了notify_url,它將覆蓋配置文件中的URL。

不過,您可以將任何實際腳本放在那裏,而不是設置一個僞造的URL。只要把它做成一個完全沒有任何東西的腳本。這樣,發送到這裏的IPN將「什麼也不做」,除了發送200 OK返回到PayPal的服務器,顯示IPN已成功接收。

如果他們已經在使用他們自己的IPN解決方案並且數據需要經歷兩者,那麼您必須設置IPN轉發器。如果需要,您可以菊花鏈式連接IPN網址,以便可以使用相同的數據。

就我個人而言,我喜歡在我的配置文件中設置一些全面的IPN設置,以便將任何IPN保存到我的數據庫以進行日誌記錄。然後,如果有必要,可以使用通知URL來覆蓋它。

+0

感謝您的回覆。我們當然可以做到這一點,但由於商家只使用我們的系統來管理和處理他們的一些交易,他們中的很多人不希望PayPal的系統將交易詳情發送給我們的系統,以使我們的系統未處理其餘的交易。它似乎必須有一個更好的方法... – user3599501

+0

我在說的是他們可以在自己的虛擬主機上設置自己的「默認」IPN。它可以做任何事情,但成功的迴應將返回到貝寶。然後,從您的應用程序中,您將使用通知來覆蓋該通知,並且只有這些IPN纔會轉到您的服務器。 –

+0

是的,我們可以做到這一點,但我們的許多用戶甚至沒有自己的網站,這是他們使用我們的系統來處理這些訂單的原因之一。但是,感謝您的意見,對於擁有自己網站並且不希望我們收到未通過我們系統處理的訂單的所有交易詳情的人來說,這肯定是一種選擇。 – user3599501