以下为开发步骤:
1.微信公众号为服务号且开通微信认证(其他类型账号不能发送)
2.ip白名单设置你的服务器ip(用于获取access_token)
3.网页授权你的域名(用于获取用户的openid)
4.开通模板消息并在模板库中选用模板
5.获取openid
6.发送模板消息
提供一个已经封好了的类文件,比较简单 可以直接调用
class WxTmp{
//请求模板消息的地址
const TEMP_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
/**
* 微信模板消息发送
* @param $openid 接收用户的openid
* return 发送结果
*/
public function send($openid,$tokens){
//$tokens = $this->getAccessToken($accesstoken);
$url = self::TEMP_URL . $tokens;
$params = [
'touser' => $openid,
'template_id' => 'B2Poe_5XVRu_I8jy8j_N-Kb7JEL_NL0qIj6YQTolkoo',//模板ID
'url' => 'http://www.yizhanhongtu.cn/', //点击详情后的URL可以动态定义
'data' =>
[
'first' =>
[
'value' => '您好!有访客访给您留言了。',
'color' => '#173177'
],
'user' =>
[
'value' => '张三',
'color' => '#FF0000'
],
'ask' =>
[
'value' => '您好,这是一条测试消息',
'color' => '#173177'
],
'remark' =>
[
'value' => '祝顺商祺',
'color' => 'blue'
]
]
];
$json = json_encode($params,JSON_UNESCAPED_UNICODE);
return $this->curlPost($url, $json);
}
/**
* 通过CURL发送数据
* @param $url 请求的URL地址
* @param $data 发送的数据
* return 请求结果
*/
protected function curlPost($url,$data)
{
$ch = curl_init();
$params[CURLOPT_URL] = $url; //请求url地址
$params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
$params[CURLOPT_SSL_VERIFYPEER] = false;
$params[CURLOPT_SSL_VERIFYHOST] = false;
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $data;
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
curl_close($ch); //关闭连接
return $content;
}
}
$obj = new WxTmp();
$openid = '接受者的openid号';
$accesstoken= '公众号的access_token';
echo $obj->send($openid,$accesstoken);