看官方的文档新手是云里雾里.这里大体归纳一下思路.
微信公众号发送消息流程
1.php页向微信服务器申请token
2.使用这个token允许php页编码要发送的消息提交到微信服务器
3.发送返回标志(json)\
首先要知道什么时候微信允许我们使用公众号向微信客户发文.
当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。
是的有了互动后的48小时,二天内可以发送消息. 过了这个点就不行了.
好了直接上代码
$msg = I("msg");
vendor('Weixinpay.WxPayJsApiPay');
$APPID = WxPayConfig::APPID; //调用appid
$APPSECRET = WxPayConfig::APPSECRET; //调用appsecret
//更换成自己的APPID和APPSECRET
$tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;
$json = file_get_contents($tokenUrl);
if(empty($json) or $json == ""){
$this->error("获取token失败");
}
$result = json_decode($json,true);
$ACC_TOKEN=$result->access_token;
$data = '{
"touser":"'.客户微信的openid.'",
"msgtype":"text",
"text":{
"content":"'.要发送的文字内容.'"
}
}';
$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$ACC_TOKEN;
$result = self::httpsPost($url,$data);
$final = json_decode($result);
p($final); //打印返回的json