switch($RX_TYPE)
{
case "text":
$i=1;
$this->responseText($postObj, $i);
$i=$i+1;
sleep(3);
break;
手机发送一条文本,过了3秒收到了一个1,那么证明是代码全部执行之后才发送给微信服务器的,但是代码全部执行之后$i的值应该是2了啊,为什么还是1。
假如是在
$this->responseText($postObj, $i);
这里就发送给微信服务器了,那为什么会延时3秒?
本人现在遇到的问题是:用了新浪SAE,录入数据库的系统总是会有重复的,看开发者文档,说:
”微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
关于重试的消息排重,推荐使用msgid排重。
假设服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。“
这个具体怎么操作呢?
附上responseText函数:
public function responseText($object, $content)
{
$msgType = "text";
$resultStr = sprintf($GLOBALS["textTpl"], $object->FromUserName, $object->ToUserName, time(), $msgType, $content);
echo $resultStr;
}