1

贝宝文档说

PayPal 会返回一个单词,如果消息来自 PayPal,则为 VERIFIED,如果与最初发送的消息有任何差异,则为 INVALID

但是,我从 Paypal 收到以下 IPN 通知(注意:我正在使用 Sandbox 进行测试):

HTTP/1.1 200 OK
.... [removed headers for brevity]
Content-Type: text/html; charset=UTF-8

8
VERIFIED
0

VERIFIED 前后的数字 8 和 0 是什么?我的猜测 8 是 VERIFIED 单词的长度,但这只是一个猜测。

更新正如 PayPal_Robert 正确指出的那样,这是因为 HTTP 分块传输编码。从维基百科页面

每个块的大小在块本身之前发送,以便接收者可以知道它何时完成接收该块的数据。数据传输由长度为零的最终块终止。

4

1 回答 1

2

这是因为分块的 HTTP 数据fsockopen()和包含在响应中 的常规集成。

您可以申请trim()修整并专门查看 INVALID/VERIFIED,或者切换fsockopen()到 cURL(假设您使用的是 PHP)。

就个人而言,我建议您使用适当的 HTTP 库,例如 cURL,而不是 fsockopen(),因为它在现在和将来都允许更大的灵活性。

于 2013-08-15T12:32:01.037 回答