php微信公众号模板消息主动推送

来源:互联网 发布:java游戏机甲风暴 编辑:程序博客网 时间:2024/06/12 01:36

1.获取access_token,有效期7200秒,我的方法是记录获取时间,超过时间再次获取。

提供:appid ,appsec
 public function get_token(){            $m = new Common();            $appid = $m->get_conf('UNION_WECHAT_MP_APPID');            $appsec = $m->get_conf('UNION_WECHAT_MP_APPSEC');            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsec}";            $raw = curl_get($url);            if(strlen($raw)>0){                $data = json_decode($raw,true);                if(json_last_error()==JSON_ERROR_NONE){                    if(key_exists('access_token',$data)){                        return $data['access_token'];                    }else{                        return false;                    }                }else{                    return false;                }            }else{                return false;            }    }

2.获取模板id,公众号->添加功能插件->模板消息 里申请。

3.构造方法
  $data=[            'touser'=>用户openid,            'template_id'=>模板id,            'url'=>'链接url',            'topcolor'=>"#FF0000",            'data'=>array(                'toName'=>array('value'=>内容1,"color"=>"#173177"),                'gift'=>array('value'=>内容2<span style="font-family: Arial, Helvetica, sans-serif;">,"color"=>"#173177"),</span>                'time'=>array('value'=>date("Y-m-d h:i:s",time()),"color"=>"#173177"),                'remark'=>array('value'=>内容3,"color"=>"#173177")            )        ];

$result = curl_post_send_information(access_token,json_encode($data));
返回结果:$result 判断

public function curl_post_send_information( $token,$vars,$second=120,$aHeader=array()){$ch = curl_init();//超时时间curl_setopt($ch,CURLOPT_TIMEOUT,$second);curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);//这里设置代理,如果有的话curl_setopt($ch,CURLOPT_URL,'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$token);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);if( count($aHeader) >= 1 ){curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);}curl_setopt($ch,CURLOPT_POST, 1);curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);$data = curl_exec($ch);if($data){curl_close($ch);return $data;}else {$error = curl_errno($ch);curl_close($ch);return $error;}}



返回码说明

在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

{"errcode":0,"errmsg":"ok","msgid":200228332}

错误时的返回JSON数据,形式类似,错误码请见本页下方返回码说明。


返回码说明-1系统繁忙0请求成功40001验证失败40002不合法的凭证类型40003不合法的OpenID40004不合法的媒体文件类型40005不合法的文件类型40006不合法的文件大小40007不合法的媒体文件id40008不合法的消息类型40009不合法的图片文件大小40010不合法的语音文件大小40011不合法的视频文件大小40012不合法的缩略图文件大小40013不合法的APPID41001缺少access_token参数41002缺少appid参数41003缺少refresh_token参数41004缺少secret参数41005缺少多媒体文件数据41006access_token超时42001需要GET请求43002需要POST请求43003需要HTTPS请求44001多媒体文件为空44002POST的数据包为空44003图文消息内容为空45001多媒体文件大小超过限制45002消息内容超过限制45003标题字段超过限制45004描述字段超过限制45005链接字段超过限制45006图片链接字段超过限制45007语音播放时间超过限制45008图文消息超过限制45009接口调用超过限制46001不存在媒体数据47001解析JSON/XML内容错误

0 0
原创粉丝点击