php - PHP中的PayPal IPN无法向IPNPB发送请求
问题描述
我这里有一个 PayPal IPN 脚本,但问题是,它正在正确接收 POST 请求,但是当它尝试向 PayPal 发出 CURL 请求时,PayPal 似乎没有给出任何响应(甚至没有任何响应INVALID
!)
这是我的代码:
<?php
// Format POST values
foreach($_POST as $name => $value) {
$data .= $name.'='.$value.'&';
}
$data = substr_replace($data, NULL, -1);
$data = urlencode($data);
// THE PROBLEM COMES HERE, I TRY TO MAKE A CURL REQUEST TO PAYPAL BUT NO RESPONSE RETURNED
$ch = curl_init('https://sandbox.ipnpb.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
$res = curl_exec($ch);
$res = curl_close($ch);
file_put_contents('result.txt',$res);
// There is nothing in my result.txt file for $res , but $data returns the POST data PayPal gave me
?>
解决方案
可能的解决方案是修改 Info Log 到收件人的 Paypal 帐户并设置 IPN
为此,请执行以下步骤:
步骤 个人资料 -> 个人资料和设置 -> 我的销售工具 -> 即时付款通知 -> 更新
点击“选择IPN设置”
- 将“通知 URL”字段设置为 HTML 表单中“notify_url”上的内容。
- 选择“接收 IPN 消息”
- 节省
注意:如果您查看 IPN 历史记录,它可能会显示为 Queued。这似乎是沙盒故障,或者可能是它处理了许多请求并且队列很长。您可以尝试使用小额(例如 1 美元)进行实时支付。请参阅此处:Paypal IPN 状态 - 已排队
推荐阅读
- php - 我应该缓存所有内容吗
- c++ - 递归函数中的迭代器值变化
- python - python删除除字母以外的数字值
- python-3.x - 使用 postgresql 部署 Flask 应用程序并获取 AttributeError: 'NoneType' object has no attribute 'drivername'
- python - pandas.DataFrame 为什么使用括号来包装操作以进行按位比较
- python-3.x - 在 Networkx 中使用 k-core 时保留特定节点
- amazon-web-services - EKS 中的组播
- wordpress - WooCommerce 在我的帐户表单提交上循环
- r - `str_detect()` 和 `map()` 遍历许多字符串检测
- swift - 隐式展开时我的集合视图为零?