2017-04-08 33 views
0

最近(從2017年3月開始),_cart表單與PayPal付款標準的集成已開始將所有項目信息(名稱和選項)中的空格編碼爲加號(+)。我確認這發生在Chrome中,並將enctype屬性添加到表單中,這似乎爲我解決了問題。在Chrome和Firefox中,我可以將數據發送到PayPal,並且可以正確保存空格。也許這是一種僥倖?PayPal將_cart中的空格轉換爲加號

但是,幾乎所有購買的客戶都不正確地獲取他們的信息,導致IPN請求無法驗證他們購買的產品。

形式:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" enctype="application/x-www-form-urlencoded"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="upload" value="1"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="charset" value="utf-8"> 
<input type="hidden" name="item_name_1" value="Product With Spaces"> 
<input type="hidden" name="quantity_1" value="1"> 
<input type="hidden" name="amount_1" value="30.00"> 
<input type="hidden" name="on0_1" value="Name"> 
<input type="hidden" name="os0_1" value="First Last"> 
<input type="hidden" name="on1_1" value="Email"> 
<input type="hidden" name="os1_1" value="[email protected]"> 
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" align="left" style="margin-right:7px; margin-top: 2px;"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

當提交貝,產物被示爲Product+With+Spaces和名稱作爲First+Last。因此,PayPal上的交易記錄和IPN請求也具有錯誤編碼的數據。

我試圖編碼空格作爲%20+(這通常會導致雙重編碼,所以我沒想到它來幫助),但那些文字字符顯示了在PayPal。

我已經閱讀過PayPal開發人員文檔,而且我似乎正在使用最新的字段和網址。此外,該代碼已經成功運行多年,沒有任何問題。

回答

3

解決!添加enctype =「multipart/form-data」屬性到貝寶按鈕表單中,返回變量到ipn返回與提交相同的狀態

相關問題