2014-04-09 38 views
3

我的服務器上有IPN接收器,成功接收IPN並重新發回PayPal的服務器(https://www.paypal.com/cgi-bin/webscr)進行驗證。我正在使用IPN模擬器進行測試,並始終收到INVALID。所以我完成了大部分工作,並讓服務器通話。只需要一些精細的拋光,我無法調試,因爲我沒有任何反饋。我在哪裏可以得到這個反饋?PayPal難以捉摸的IPN歷史在哪裏?

PayPal的文檔說明如下:

檢查paypal.com您的IPN歷史 你IPN歷史告訴你的PayPal是否發送一個給定的IPN消息,您的聽衆是否做出了迴應此頁可能。還提供有關監聽器運行的服務器狀態的信息,如有必要,您可以請求PayPal通過IPN歷史記錄頁面重新發送給定的IPN消息。「 - https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNTesting/

所以我需要找到這個IPN的歷史,對吧?但是這些IPN日誌記錄了什麼賬號?他們肯定包括使用模擬器生成的IPN嗎?如果不是什麼意思,那麼dev如何調試?我查看了真實的商家帳戶,沙箱商家帳戶,沙箱付款人帳戶。但他們都表示,沒有任何IPN被髮送的歷史。

只是一個側面點:貝寶的沙箱是一場噩夢,因爲如果您從一個沙箱帳戶註銷,您會發現自己在登錄頁面返回到現場。同樣,您無法使用沙盒商戶帳戶登錄IPN模擬器,只能使用真實的商家帳戶,因此您必須永遠以實時商家身份登錄才能發送請求,註銷,以沙箱登錄,查看IPN歷史記錄,查找任何內容,記錄日誌退出後,直接登錄並重復,直到你瘋了。然後爲了進一步混淆事物,模擬器發送來自地址[email protected]的IPN,使得你的頭腦託付!是不是沙箱的IPN模擬器部分?一旦您提交了一個模擬IPN,如果您確實需要輸入有效的沙盒付款人帳戶的地址,則它會將所有表單值重置爲默認值(文檔不會說明您是否執行此操作,但我在此處收集秸稈)您還必須每次請求複製並粘貼到多個框中。請請貝寶,以一種不屬於你的同事的人可以理解的方式給你寫文檔。解釋在測試IPN的每個階段需要使用的環境。

我感到非常沮喪,因爲這不是應該如何進行開發。我盲目地嘗試基於預感的東西,非常不科學,效率很低。

任何人都可以澄清(或指出我澄清的文檔的部分)究竟如何調試INVALID響應請?

+1

@PayPal_Martin你能幫忙嗎? –

回答

3

好的。經過一段時間後,我得出以下結論:

IPN模擬器是不是真的是沙盒的一部分。對於快速輕量級測試來檢查PayPal的服務器是否可以與您交談是非常有用的,但僅此而已。這遠不是一個真正的付款流程模擬器!調試IPN驗證過程的解決方案是從籃子提交階段開始付費模擬過程,其中一些非常重要的值設置爲沙箱環境。

1)首先,使用您的LIVE企業帳戶用戶名和密碼登錄到https://developer.paypal.com/。點擊Applications>Sandbox Accountshttps://developer.paypal.com/webapps/developer/applications/accounts,創建2個沙箱帳戶:

創建一個商人/商業沙箱帳戶,這將是我們的假貨店。例如[email protected]

然後,創建一個個人沙帳戶,這將是我們的客戶假貨。例如[email protected]

我們將使用這個假店和這個假客戶在沙盤玩...

2)設置上籃頁您服務器(提交給PayPal的服務器)與您的Merchant/Business沙箱帳戶的地址位於business字段中,PayPal的沙箱域位於FORM元素的action屬性中。是這樣的...

<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr"> 
    <input type="hidden" value="_xclick" name="cmd"> 
    <input type="hidden" value="[email protected]" name="business"> 
    <input type="hidden" value="1" name="no_note"> 
    <input type="hidden" value="GBP" name="currency_code"> 
    <input type="hidden" value="GB" name="lc"> 
    <input type="hidden" value="PP-BuyNowBF" name="bn"> 
    <input type="hidden" value="bo14-9097200" name="invoice"> 
    <input type="hidden" value="monkey" name="custom"> 
    <input type="hidden" value="A nice pair of trousers" name="item_name"> 
    <input type="hidden" value="1" name="Some socks to match"> 
    <input type="hidden" value="25.0" name="amount"> 
    <input type="hidden" value="2" name="no_shipping"> 
    <input class="buyButton" type="image" border="0" alt="PayPal – The safer, easier way to pay online." name="submit" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif"> 
    <img width="1" border="0" height="1" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" alt=""> 
</form> 

3)提交的籃子,當你看到支付寶付款頁面(您瀏覽器的地址欄將訪問www.sandbox.paypal.com域)使用僞造的客戶賬戶支付。使用您的LIVE賬戶登錄到https://developer.paypal.com/。點擊Applications>Sandbox Accounts,然後點擊Enter Sandbox site鏈接。現在,雖然您的瀏覽器仍然登錄到您的主實時帳戶,但您可以使用沙箱帳戶的用戶名和密碼(非常令人困惑),以其他方式登錄到更深層。當然,只是爲了迷惑你,右上角的UsernamePassword框會預先填入您的真實賬戶的詳細信息。擦除這些並使用沙箱商家/商家帳戶的用戶名和密碼。現在點擊History>IPN History,您可以看到發佈到您服務器的請求。你應該能夠很好地使用這些信息進行調試。如果您的商家/商業沙盒帳戶尚未啓用IPN,則會爲您提供說明,以進入設置頁面並啓用它。去做。很明顯,在此之前的任何付款都不會觸發IPN。

我希望這個描述能夠幫助像我這樣的人發現官方PayPal Docs像一本書一樣丟失了一半的書!

+0

同意。在我看來,IPN模擬器在您獲得第一次IPN驗證成功的階段後基本沒有用處。如果它處理所有的交易類型,並且它記住了前一筆交易的價值,那將會更有用。 – EJP

3

要訪問PayPal沙箱中的IPN通知歷史記錄,請使用您的測試商家帳戶登錄https://www.sandbox.paypal.com。 導航到「我的帳戶/配置文件」 「銷售偏好」部分,它有一個鏈接「即時付款通知偏好」 在該頁面上有一個鏈接到「IPN歷史頁面」。

我不確定他們最近是否已將此項添加到沙箱中,但我同意它非常麻煩。

相關問題