您的位置:首页 > 移动开发 > 微信开发

微信消息接口发送信息到分组和用户,错误代码40003和40008

2016-02-26 16:32 1891 查看
调用高级群发接口:

1. 调用根据分组进行群发,返回错误代码:errcode:40008,errmsg:invalid message type

错误原因:HTTP请求提交的数据未进过JSON编码,注意下面代码中注释标明“正确和错误方式”的部分。

调用代码如下:

<?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

错误原因:HTTP请求提交的数据未进过JSON编码,注意下面代码中注释标明“正确和错误方式”的部分。
调用代码如下:
<?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;
}
}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息