微信模板消息消息发送,总是发送2条?有人帮忙看下吗?急!!!

发布于 7 年前作者 uqiao17898 次浏览最后编辑 7 年前来自 ask

最近在做微信公众号的模板消息发送,总是一次发送2条重复消息。

按照微信提供的文档,意思是模板消息发送成功,会有一个事件推送作为是否送达消息的标识,推送到设置的服务器路径下,可以直接回复success或者空字符串,表示告知微信,消息已经传达成功了。

但是,为什么我这么写,没有效果?

代码如下:

1.模板消息发送代码:

public function send_message_template()
{
   $wx = new WeixinInterface();
   $config['send_data'] = [
       'first'     => [
           'value'=>'首页测试接口', //反馈标题
       ],
       'keyword1'  => [
           'value'=> '怎么调用2次?'          //反馈内容
       ],
       'keyword2'  => [
           'value'=>date('Y-m-d H:i:s',time()),   //反馈时间
       ],
       'remark'    => [
           'value'=>'点击查看详情',//返回链接提示文字
           'color'=>'#1b6d85'
       ]
   ];
   $res = $wx->send_tmplmsg('oHojo0lb6bzbutxx52-nYUpeacg', 'lyVn1mNnFRDGTX5DQkS8J4TZ-Q99MokWsbbjzPcZ3DA', $config);
   dd($res);

}


2.服务器接收到事件推送的代码:


//事件推送
public function responseMsg($responseMsg = ['msgType'=>'text','msg'=>''])
{
   //请求进来 返回success
   ignore_user_abort(true);
   ob_start(); //打开输出控制缓冲
   echo 'success'; // 返给微信服务器的字符串
   header('Connection: close');//关闭http
   header('Content-Length: ' . ob_get_length());
   header('X-Accel-Buffering: no');//nginx
   ob_end_flush();
   ob_flush();
   flush();
   exit;

}


明明我在公众号输入任意文本后,不会报 “该公众号服务异常,请稍后重试”,这个没有报错,不是代表success有成功吗?为什么模板消息发送还是会发送两条????


而且按照文档里说的,不是会响应5秒吗?我消息刚发送,就直接推送2条,不合理吧?还是同一秒???


还有,文档里说的,消息排重?具体怎么实现?最好给个实例,十分感谢!!!

4 回复
jiafang
jiafang1 楼6 年前

我自己浏览器问题 chrome有个检查标签是否成对的插件去掉就好了

谢谢

renyong
renyong2 楼6 年前

看博客有人说 微信服务器会回来看看  试想了一下   发完消息 微信会访问一次 开头判断除了带有令牌的 其他直接 return ok    运行 可以了没有再重复

qlai
qlai3 楼6 年前

你好,麻烦提供下请求的时间点、请求的 openid、模板id

yanyong
yanyong4 楼5 年前

自己顶一下,希望有经验的人进来,指点一下,网上找了2个礼拜的问题都没有详细说明的?不懂的也可以提个思路看下是哪里有问题。