需要给关注用户发送模板消息,由于公众号关注用户比较多,所以采用普通的curl等方式太慢。由于模板消息发送不需要等待微信的结果,所以利用php的fsockopen()函数可以达到快速发送的效果。代码如下:

        $data = array(
        'touser' => '推送人(粉丝)的openid',
        'template_id' => '微信公众号的我的模板中的模板id',
        'url' => '推送消息的跳转链接地址',
        'topcolor' => '#FF0000',
        'data' => array(
            'first' => array(
                'value' => '尊敬的用户你好',
                'color' => '#FF0000'
            ),
            'keyword1' => array(
                'value' => '第一个模板参数',
                'color' => '#173177'
            ),
            'keyword2' => array(
                'value' => '第二个模板参数',
                'color' => '#173177'
            ),
            'keyword3' => array(
                'value' => '第三个模板参数',
                'color' => '#173177'
            ),
            'keyword4' => array(
                'value' => '第四个模板参数',
                'color' => '#173177'
            ),
            'remark' => array(
                'value' => '有新工程正在线上招投标,快去报名吧!',
                'color' => '#FF0000'
            )

        )
    );

    $access_token = '你的微信公众号access_token';
    $params = json_encode($data,JSON_UNESCAPED_UNICODE);
    for ($i = 0; $i < 50; $i++) {
        $fp = fsockopen('api.weixin.qq.com', 80, $error, $errstr, 1);
        $http = "POST /cgi-bin/message/template/send?access_token={$access_token} HTTP/1.1\r\nHost: api.weixin.qq.com\r\nContent-type: application/x-www-form-urlencoded\r\nContent-Length: " . strlen($params) . "\r\nConnection:close\r\n\r\n$params\r\n\r\n";
        fwrite($fp, $http);
        fclose($fp);
    }

资料来自:https://blog.csdn.net/Generalsphper/article/details/79181768

最后由 Leo 编辑于2018年07月22日 16:08