2017-04-08 5 views
0

_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> 

PayPalに提出された場合、生成物はFirst+LastとしてProduct+With+Spacesと名前として示されています。したがって、PayPalのトランザクションレコードとIPN要求には、間違ってエンコードされたデータも含まれます。

スペースを%20または+(通常はダブルエンコーディングになるので、私はそれが助けられるとは思っていませんでした)としてエンコードしようとしましたが、これらの文字はPayPalに表示されました。

私はPayPalの開発者ドキュメントを読んできました。私は最新のフィールドとURLを使用しているようです。また、このコードは何年も問題なく成功しています。

答えて

3

解決済み! paypalボタンフォームにenctype = "multipart/form-data"属性を追加しました。返された変数はipnと同じ状態に戻りました

関連する問題