PayPal Instant Payment Notification (IPN) 是一种服务器到服务器的通知机制,用于通知您的服务器有关 PayPal 交易的状态变化。当买家在 PayPal 上完成支付后,PayPal 会向您指定的 URL 发送一个 HTTP POST 请求,包含交易的详细信息。
当 PayPal IPN 返回 payment_status: Pending
时,通常有以下几种可能的原因:
以下是一些解决 payment_status: Pending
问题的步骤:
VERIFIED
响应。payment_status: Pending
的交易,您可以设置一个定时任务,定期检查这些交易的状态,并在状态变为 Completed
时进行相应的处理。以下是一个简单的 PHP 示例代码,用于处理 PayPal IPN 请求:
<?php
// 读取 POST 数据
$postData = file_get_contents('php://input');
$ipnData = json_decode($postData, true);
// 验证 IPN 消息
$验证URL = "https://www.paypal.com/cgi-bin/webscr";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $验证URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($ipnData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
if (strpos($response, 'VERIFIED') !== false) {
// 处理 IPN 数据
if ($ipnData['payment_status'] == 'Completed') {
// 支付完成,更新订单状态
echo "支付已完成";
} elseif ($ipnData['payment_status'] == 'Pending') {
// 支付等待确认
echo "支付等待确认";
}
} else {
echo "IPN 验证失败";
}
?>
通过以上步骤和代码示例,您应该能够更好地理解和解决 PayPal IPN 返回 payment_status: Pending
的问题。
领取专属 10元无门槛券
手把手带您无忧上云