调用高级群发接口:php
1. 调用根据分组进行群发,返回错误代码:errcode:40008,errmsg:invalid message typejson
错误缘由:HTTP请求提交的数据未进过JSON编码,注意下面代码中注释标明“正确和错误方式”的部分。api
调用代码以下:curl
<?php class ScheduleMessage{ private $access_token; public function __construct($access_token) { $this->access_token = $access_token; } public function sentMsgToGroup() { // 根据分组进行群发【订阅号与服务号认证后都可用】 // http请求方式: POST $url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=$this->access_token"; $data = array( 'filter' => array( 'is_to_all' => false, 'group_id' => 0 ), 'msgtype' => 'text', 'text' => array( 'content' => 'this is test message with 中文!' ) ); // JSON参数错误体检方式 // $res = json_decode($this -> httpPost($url, $data)); // JSON参数正确提交方式 $res = json_decode($this -> httpPost($url, json_encode($data, JSON_UNESCAPED_UNICODE))); return $res; } private function httpPost($url, $data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } } ?> |
2. 调用根据OpenID列表群发,返回错误代码:errcode:40003,errmsg:invalid openid this
错误缘由:HTTP请求提交的数据未进过JSON编码,注意下面代码中注释标明“正确和错误方式”的部分。编码
调用代码以下:url
<?php class ScheduleMessage{ private $access_token; public function __construct($access_token) { $this->access_token = $access_token; } public function sentMsgToOpenId() { // 根据分组进行群发【订阅号与服务号认证后都可用】 // http请求方式: POST $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$this->access_token"; $data = array( 'touser' => 'oCECzv7gYSf4SCUrqYNPGL5JJI4M', 'msgtype' => 'text', 'text' => array( 'content' => 'this is test message with 中文!' ) ); // JSON参数错误体检方式 // $res = json_decode($this -> httpPost($url, $data)); // JSON参数正确提交方式 $res = json_decode($this -> httpPost($url, json_encode($data, JSON_UNESCAPED_UNICODE))); return $res; } private function httpPost($url, $data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } } ?>