根据PayPal的Implementing an IPN Listener文档,IPN侦听器的正确事件序列是:
<?php
$name = $_POST['nama_exam'];
$exam = $_POST['soal_exam'];
$op = $_POST['option'];
$answer = $_POST['answer'];
foreach($op as $i=>$op){
if($answer==$i){
$ans=1;
}else{
$ans=0;
}
$sql_pil = mysql_query("INSERT INTO answer (`answer_examcode`,`answer`, `answer_code`,`answer_entrydate`) values ('$id_soal','$op','$ans',NOW())");
}
?>
添加到收到的通知上,然后通过POST将其发送回PayPal cmd=_notify-validate
或VERIFIED
但是,GitHub上的示例代码(显然由PayPal提供)按不同的顺序执行:
INVALID
添加到收到的通知上,然后通过POST将其发送回PayPal cmd=_notify-validate
或VERIFIED
示例代码是否正常工作?如果没有,为什么PayPal引用这段代码作为例子呢?如果是这样,为什么PayPal的文档不反映了正确的编码顺序? ......或订单无关紧要?
答案 0 :(得分:1)
显然答案是&#34;它在&#34;中完成的顺序并不重要。 - 只要在超时窗口内收到响应。
我在PayPal网站上发现此信息作为我搜索&#34;沙盒交易未发送IPN时可能的答案之一&#34;在https://www.paypal-techsupport.com/:
IPN超时时长多长?
PayPal的即时付款通知(IPN)系统需要您的网络 服务器在IPN发送到您的IPN时发送HTTP 200响应 脚本。
如果您的服务器在一定时间后没有响应,则IPN 系统然后将IPN重新发布到您的脚本。
每次重发之间的时间量每次翻倍:10秒, 20秒,40秒,80秒等,最多24个 小时。 IPN系统在以下情况下停止重新发布:
- PayPal收到一个基本的HTTP&#34; 200 OK&#34;来自您的网络服务器的响应,或
- 自首次发布约四天后。
请注意,如果您的IPN侦听器花费超过10秒的时间到达其响应HTTP 200结果的位置(如示例代码所示),那么您正在做非常错误: IPN处理程序应该是 非常快速的 进程,如果您想处理大量流量,则应尽快执行,尤其是。