我正在使用 Paypal 为 Paypal Payments Pro 或 Direct Pay 提供的 PHP 示例代码。在最近来自 Paypal 的电子邮件中,他们声明
从 2013 年 10 月 7 日开始,我们将要求所有传入请求都具有符合 HTTP 1.1 规范的“主机”标头。HTTP 1.0 不需要此标头。使用 HTTP 1.0 的 IPN 和 PDT 脚本可能会在 2013 年 10 月 7 日之后开始失败并出现“HTTP/1.0 400 Bad Request”错误,这将导致 IPN 消息无法成功验证,或者 PDT 脚本无法检索交易信息。
他们给了我以下代码用作标题:
$header="POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .="Content-Type: application/x-www-form-urlencoded\r\n";
$header .="Host: www.paypal.com\r\n";
$header .="Connection: close\r\n\r\n";
但是使用 CURL,我怎样才能通过所有这些?
我知道我可以将其中的大部分设置在一个数组中并将其放在 CURLOPT_HEADER 下,但是第一行呢?
这是我的代码。请帮助我了解如何正确添加新的标头请求。
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $api_endpoint);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $nvp_string);
$result = curl_exec($curl);
curl_close($curl);