问题
将参数列表发送到PayPal API的正确方法是什么?这是我想知道如何正确发送的一些参数的具体示例:
TRXTYPE S
BILLTOSTREET 123 Marks & Spencer St.
CUSTREF 648=ZVC_Gxk
关于此事的文档不一致,我在网上找到的大多数代码都没有使用PayPal描述的长度前缀(但似乎仍然有用!) .
背景
PayPal Payments Pro文档描述了p44和周围页面上的自定义和非标准兼容NVP格式 . 它在PayPal API NVP Basics页面上也被矛盾地描述为"All requests to execute PayPal API operations sent using HTTP must be URL-encoded." .
大型PDF文档也与自己相矛盾:
-
PDF的“名称 - 值参数语法准则”部分指出“不要在值中使用空格” . 但是,它会提供一个“正确”的NVP字符串示例,其中包含BILLTOSTREET参数中的空格 .
-
“名称 - 值参数语法准则”部分说明“将NVP参数字符串括在引号中” . 这是指整个编码值串吗?我的POST主体应该如下所示,包括引号? “TRXTYPE = S&投标= C ...”
-
它声称整个参数字符串应该用双引号括起来 .
2 回答
根据我的经验,以下工作:
URL编码所有值(但不编码参数名称)
没有引号,既不是 Value 也不是整个邮政机构
顺便说一句,我已经学会了不要把Paypal的(可怕的)文件太严肃,而是求助于试错,而且......
如果您使用的是常见的服务器端语言(php,ror,java,.net),并希望节省时间和精力,只需使用相应的PayPal SDK [2600550_