PayPal 将 _cart 形式的空格转换为加号
PayPal Convertings Spaces in _cart Form to Plus Sign
最近(从 2017 年 3 月开始),与 PayPal 支付标准集成的 _cart
表单已开始将所有项目信息(名称和选项)中的空格编码为加号 (+
)。我验证了这种情况发生在 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+With+Spaces
,名称显示为 First+Last
。因此 PayPal 上的交易记录和 IPN 请求也有错误编码的数据。
我尝试将空格编码为 %20
或 +
(这通常会导致双重编码,所以我没想到它会有所帮助),但这些文字字符显示在贝宝。
我已经阅读了 PayPal 开发人员文档,我似乎使用了最新的字段和 URL。此外,此代码多年来一直 运行 成功,没有遇到任何问题。
已解决!将 enctype="multipart/form-data" 属性添加到 paypal 按钮表单,return ipn 变量返回与提交时相同的状态
最近(从 2017 年 3 月开始),与 PayPal 支付标准集成的 _cart
表单已开始将所有项目信息(名称和选项)中的空格编码为加号 (+
)。我验证了这种情况发生在 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+With+Spaces
,名称显示为 First+Last
。因此 PayPal 上的交易记录和 IPN 请求也有错误编码的数据。
我尝试将空格编码为 %20
或 +
(这通常会导致双重编码,所以我没想到它会有所帮助),但这些文字字符显示在贝宝。
我已经阅读了 PayPal 开发人员文档,我似乎使用了最新的字段和 URL。此外,此代码多年来一直 运行 成功,没有遇到任何问题。
已解决!将 enctype="multipart/form-data" 属性添加到 paypal 按钮表单,return ipn 变量返回与提交时相同的状态