因此,我一直在測試我的IPN腳本並根據需要開發它,但遇到了一個問題,我收到了「我們」很抱歉,我們無法發送IPN。「錯誤。貝寶IPN模擬器不會在奇怪的條件下發送IPN
未提及的所有選項的默認值
方案1 - 成功
Transaction Type: Web Accept
All default information.
方案2 - 成功
Transaction Type: Web Accept
Receiver_email: [email protected]
方案3 - 成功
Transaction Type: Web Accept
Receiver_email: [email protected]
Item_name: My Item
方案3 - 成功
Transaction Type: Web Accept
Receiver_email: [email protected]
Item_name: My Item
mc_gross: 39.99
方案4 - 成功
Transaction Type: Web Accept
All defaults;
custom: Jimmy|0
方案5 - 成功
Transaction Type: Web Accept
All defaults;
Reveiver_email: [email protected]
custom: Jimmy|0
方案6 - 失敗
Transaction Type: Web Accept
All defaults;
Reveiver_email: [email protected]
Item_name: My Item
custom: Jimmy|0
方案7 - 失敗
Transaction Type: Web Accept
Receiver_email: [email protected]
Item_name: My Item
mc_gross: 39.99
custom: Jimmy|0
那麼,爲什麼它,我可以讓
定製:吉米| 0
在情況下4-5,然後把所有的其他信息,如1-3沒有問題顯示在的場景,但只要我從方案6(自定義字段中添加值)給我的價值發送,它打破了。
我已經測試了大約4-5個不同的值,並且總共發送了幾乎所有的IPN請求,試圖找出它。
看來,使用ITEM_NAME和自定義方法一起使用時,它會導致此,如圖方案5和6
注意,去除定製的分隔符值當「|」 IPN將發送,但爲什麼分離器在所有其他情況下都會導致問題?我還將自定義字段擴展爲無數字符,以確保它不是長度問題。
!!看起來,當更改發送到IPN的分隔符時,它工作正常,但看起來導致錯誤的問題實際上是我的explode()方法。
$custom = explode('~', $_POST['custom']);
$referral = $custom[0];
$software_type = $custom[1];
無論我從哪個角色爆炸都會導致錯誤。
然而,在打印$轉診和$ software_type到的error_log,它提供了正確的價值觀:
[04-Nov-2014 02:18:11 America/Los_Angeles] [Referral]: Jimmy
[04-Nov-2014 02:18:11 America/Los_Angeles] [Software]: 0
我將此標記爲正確,因爲解釋如何在不使用PayPal沙盒的情況下進行本地調試,這對我的幫助非常大。我能夠找出腳本在哪裏被破壞,爲什麼,以及減少了幾個小時的開發時間。再次感謝。 – Hobbyist 2014-11-04 22:29:44
很高興能幫到你! – 2014-11-04 22:49:12