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

//$appid   微信appid
//$appsec  微信appsecret
public function get_token($appid,$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 判断

 

 curl_post_send_information 发送函数

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

不合法的OpenID

40004

不合法的媒体文件类型

40005

不合法的文件类型

40006

不合法的文件大小

40007

不合法的媒体文件id

40008

不合法的消息类型

40009

不合法的图片文件大小

40010

不合法的语音文件大小

40011

不合法的视频文件大小

40012

不合法的缩略图文件大小

40013

不合法的APPID

41001

缺少access_token参数

41002

缺少appid参数

41003

缺少refresh_token参数

41004

缺少secret参数

41005

缺少多媒体文件数据

41006

access_token超时

42001

需要GET请求

43002

需要POST请求

43003

需要HTTPS请求

44001

多媒体文件为空

44002

POST的数据包为空

44003

图文消息内容为空

45001

多媒体文件大小超过限制

45002

消息内容超过限制

45003

标题字段超过限制

45004

描述字段超过限制

45005

链接字段超过限制

45006

图片链接字段超过限制

45007

语音播放时间超过限制

45008

图文消息超过限制

45009

接口调用超过限制

46001

不存在媒体数据

47001

解析JSON/XML内容错误



阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: php