如何正确编码我发送给PayPal Payments Pro的值?

时间:2012-10-08 23:07:57

标签: paypal

问题

将参数列表发送到PayPal API的正确方法是什么?以下是我想知道如何正确发送的一些参数的具体示例:

TRXTYPE               S
BILLTOSTREET          123 Marks & Spencer St.
CUSTREF               648=ZVC_Gxk

关于此事的文档不一致,我在网上找到的大多数代码都没有使用PayPal描述的长度前缀(但似乎仍然有用!)。

背景

PayPal Payments Pro文档描述了p44和周围页面上的自定义和非标准兼容NVP格式。它在PayPal API NVP Basics页面上也被矛盾地描述为“执行使用HTTP发送的PayPal API操作的所有请求都必须进行URL编码。”。

大型PDF文档也与自己相矛盾:

  • PDF的“名称 - 值参数语法指南”部分指出“不要在值中使用空格”。但是,它会提供一个“正确”的NVP字符串示例,其中包含BILLTOSTREET参数中的空格。

  • “名称 - 值参数语法准则”部分说明“将NVP参数字符串括在引号中”。这是指整个编码值串吗?我的POST主体应该如下所示,包括引号? “TRXTYPE = S&安培;嫩= C ...”

  • 它声称整个参数字符串应该用双引号括起来。

2 个答案:

答案 0 :(得分:0)

根据我的经验,以下工作:

  • 对所有值(但不是参数名称)进行URL编码
  • 没有引号,既不是价值也不是整个帖子
是的,我已经学会了不要把Paypal的(可怕的)文件太严肃,而是诉诸于反复试验,而且...... ...

答案 1 :(得分:0)

如果您使用的是常见的服务器端语言(php,ror,java,.net),并希望节省时间和精力,只需使用相应的PayPal SDK https://cms.paypal.com/au/cgi-bin/?cmd=_render-content&content_ID=developer/library_download_sdks