微信メッセージインタフェースは、パケットおよびユーザに情報を送信し、エラーコード4003および40008

3446 ワード

高度な群発インタフェースを呼び出します.
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;
  }
}

?>