【问题标题】:Paypal IPN sends back VERIFIED but with numbers before and afterPaypal IPN 发回 VERIFIED 但前后有数字
【发布时间】:2013-08-15 15:12:39
【问题描述】:

贝宝documentation says:

PayPal 会返回一个单词,如果 如果存在任何差异,则消息源自 PayPal 或 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 分块传输编码。来自wikipedia page

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

【问题讨论】:

  • 故意发回错误数据以获取 INVALID 会返回数字 7,因此看起来您的长度猜测可能是正确的...

标签: paypal paypal-sandbox paypal-ipn


【解决方案1】:

这是因为 chunked HTTP data 和常规的 fsockopen() 集成在响应中包含此内容。

您可以应用trim() 来修剪它并专门查看INVALID/VERIFIED,或者从fsockopen() 切换到cURL(假设您使用的是PHP)。

就个人而言,我建议您使用 cURL 等适当的 HTTP 库,而不是 fsockopen(),因为它可以在现在和将来提供更大的灵活性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 2013-09-06
    • 2012-04-27
    • 2018-11-03
    • 2012-01-04
    • 2012-06-24
    • 2016-11-28
    • 2018-12-28
    相关资源
    最近更新 更多