需要给关注用户发送模板消息,由于公众号关注用户比较多,所以采用普通的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);
}
测试截图