PayPal将购物车形式的空格转换为加号

PayPal将购物车形式的空格转换为加号,paypal,shopping-cart,Paypal,Shopping Cart,最近(从2017年3月开始),与贝宝支付标准集成的\u购物车表单已开始将所有项目信息(名称和选项)中的空格编码为加号(+)。我在Chrome中验证了这一点,并在表单中添加了enctype属性,这似乎解决了我的问题。在Chrome和Firefox中,我可以将数据发送到PayPal,空间也得到了适当的保护。也许这是侥幸 然而,几乎每一位购买产品的客户的信息编码都不正确,这导致IPN请求无法验证他们购买的产品 表格: <form action="https://www.paypal.com/cg

最近(从2017年3月开始),与贝宝支付标准集成的
\u购物车
表单已开始将所有项目信息(名称和选项)中的空格编码为加号(
+
)。我在Chrome中验证了这一点,并在表单中添加了
enctype
属性,这似乎解决了我的问题。在Chrome和Firefox中,我可以将数据发送到PayPal,空间也得到了适当的保护。也许这是侥幸

然而,几乎每一位购买产品的客户的信息编码都不正确,这导致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="name@example.com">
<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="customer@example.com">
<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时,产品显示为带+空格的
product+,名称显示为
First+Last
。因此,PayPal上的交易记录和IPN请求也有编码错误的数据

我尝试将空格编码为
%20
+
(这通常会导致双重编码,因此我不希望它有帮助),但这些文字字符显示在PayPal上

我已经阅读了PayPal开发者文档,我似乎正在使用最新的字段和URL。此外,此代码已成功运行多年,没有出现任何问题。

已解决!将enctype=“multipart/form data”属性添加到paypal按钮表单,将变量返回到ipn,返回状态与已提交状态相同!将enctype=“multipart/form data”属性添加到paypal按钮表单,将变量返回到ipn,返回状态与提交状态相同