收藏
回答

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

最近在做微信公众号的模板消息发送,总是一次发送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 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-08-07

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

    2018-08-07
    有用
    回复 6
    • 丹丹
      丹丹
      2018-08-17

      谢谢,已经解决了,原因在于curl请求的时候有做超时提醒,就一直会发2条。

      2018-08-17
      回复
    • 19
      19
      2019-04-25回复丹丹

      请问是怎么解决的呢

      2019-04-25
      回复
    • 想太多
      想太多
      2019-04-28

      请教什么原因,怎么解决的

      2019-04-28
      回复
    • 苏洋
      苏洋
      2019-06-13

      请教什么原因,怎么解决的

      2019-06-13
      回复
    • 丹丹
      丹丹
      2019-08-09
      // // 检查是否有错误发生 // if(curl_exec($ch) === false) // { // $err_code = curl_errno($ch); // $err_code_arr = config('curl_errno'); // $msg = isset($err_code_arr[$err_code]) ? $err_code_arr[$err_code] : ''; // send_error_tip($err_code, $url.$msg); // } 我是把这个注释掉就可以了,你可以写一个最简单的curl_post方法试试
      2019-08-09
      回复
    查看更多(1)
  • 苏洋
    苏洋
    2019-12-18

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

    谢谢

    2019-12-18
    有用 2
    回复 4
    • 一
      2020-01-10
      搜狗出现两次,换chrome后没问题了,没搞过这方面插件啊,真怪
      2020-01-10
      回复
    • 苏洋
      苏洋
      2020-01-12回复
      chrome插件名字是HTML 标签检测器|HTML TAG CHECKER
      0.3
      检测HTML标签是否正确闭合的工具。author:斯人;blog:www.imsiren.com
      这玩意就是要发起两次请求
      2020-01-12
      回复
    • 一
      2020-01-12回复苏洋
      感谢大佬,我在搜狗是json插件的问题,尝试了禁用这个插件就没问题了
      2020-01-12
      1
      回复
    • Memory
      Memory
      2020-04-11
      微信推送模板消息 在浏览器如何测试?
      2020-04-11
      回复
  • 圣诞
    圣诞
    2019-12-13

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

    2019-12-13
    有用
    回复 1
    • Memory
      Memory
      2020-04-11
      我的确是这样 但是偶尔会出现无限发送的情况 就是支付成功后发送模板消息 会无限发送.怎么回事呢
      2020-04-11
      回复
  • 丹丹
    丹丹
    2018-08-07

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

    2018-08-07
    有用
    回复 3
    • 想太多
      想太多
      2019-04-28

      请教请教,问题在哪,怎么解决的

      2019-04-28
      回复
    • 苏洋
      苏洋
      2019-06-13

      请教什么原因,怎么解决的

      2019-06-13
      回复
    • 苏洋
      苏洋
      2019-06-15

      ddddddddddddddddddddddd

      2019-06-15
      回复
登录 后发表内容