Maison  >  Article  >  développement back-end  >  PHP implémente des messages modèles WeChat à envoyer aux utilisateurs spécifiés

PHP implémente des messages modèles WeChat à envoyer aux utilisateurs spécifiés

藏色散人
藏色散人avant
2019-12-04 16:03:515237parcourir

J'ai reçu de nombreuses demandes de chaussures pour enfants. Puis-je envoyer un message à un certain utilisateur en utilisant l'interface du compte public WeChat. Si je souhaite l'envoyer directement, il existe certaines restrictions. , mais cela nécessite que l'utilisateur nous contacte dans les 48 heures. Il ne peut être envoyé qu'en cas d'interaction avec le compte public. L'autre est le modèle de message de WeChat, qui n'a pas de limite de temps d'envoi, mais WeChat doit utiliser un modèle pour empêcher certaines données de spam avant de pouvoir être envoyées.

Je crois que nous recevons généralement beaucoup de modèles de messages. L'effet réel est le suivant :

Recommandations associées : "Tutoriel PHP"

Ce type Comment obtenir l'effet des modèles de messages WeChat ?

Tout d'abord, vous devez sélectionner le modèle de message dans le menu « Fonction » dans l'arrière-plan de la plate-forme publique WeChat. dans le menu, vous devez cliquer sur le plug-in de fonction pour l'ajouter, comme suit Image :

Après avoir ajouté le plug-in, vous pouvez sélectionner un modèle dans la bibliothèque de modèles à utiliser. vous pouvez également créer un modèle. D'une manière générale, la bibliothèque de modèles suffit. Après avoir sélectionné un modèle, vous devez vous souvenir de l'ID du modèle. Cela sera utilisé plus tard dans les programmes PHP.

Parlons ensuite des règles d'appel de l'interface :

Méthode de requête http : POST

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

Quel format de données est envoyé ? Les données envoyées sont au format json, prenons comme exemple le modèle suivant :

Le format JSON est le suivant :

{
"touser": "这里是接收用户的OPENID",
"template_id": "这里是模板ID",
"url": "这里是点击详情后跳转的网址",
"data": {
"first": {
"value": "您好!有访客访给您留言了。",
"color": "#173177"
},
"user": {
"value": "张三",
"color": "#FF0000"
},
"ask": {
"value": "您好,非常关注黎明互联,有没有关于支付宝的视频教程?",
"color": "#173177"
},
"remark": {
"value": "该用户已注册12天",
"color": "blue"
}
}
}

Format des données Maintenant, nous comprenons, alors comment utiliser PHP pour l'envoyer au serveur et dans le code JSON peut-il être défini uniquement comme une chaîne une fois l'épissage des données terminé. Si vous n'êtes pas familier avec les chaînes ou si vous n'aimez pas utiliser des chaînes, vous pouvez utiliser la conversion de tableau comme. un exemple pour donner un extrait de code PHP pour implémenter un modèle de message WeChat :

class WxTmp
{
    //请求模板消息的地址
    const TEMP_URL = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=';
    public function getAccessToken(){
        //这里获取accesstoken  请根据自己的程序进行修改
        return $access_token;
    }
    /**
    * 微信模板消息发送
    * @param $openid 接收用户的openid
    * return 发送结果
    */
    public function send($openid){
        $tokens = $this->getAccessToken();
        $url = self::TEMP_URL . $tokens;
        $params = [
            'touser' => $openid,
            'template_id' => 'Oblr5uXH_fS79gMC8E0mYz0CpUAHnJtdvAC3PWABrsk',//模板ID
            'url' => 'https://www.liminghulian.com/course/3/lesson/list', //点击详情后的URL可以动态定义
            'data' => 
                    [
                      'first' => 
                         [
                            'value' => '您好!有访客访给您留言了。',
                            'color' => '#173177'
                         ],
                      'user' => 
                         [
                            'value' => '张三',
                            'color' => '#FF0000'
                         ],
 
                      'ask' => 
                         [
                                'value' => '您好,非常关注黎明互联,有没有关于支付宝的视频教程?',
                                'color' => '#173177'
                         ],
                       'remark' => 
                         [
                                'value' => '该用户已注册12天',
                                'color' => 'blue'
                         ] 
                      ]
        ]; 
        $json = json_encode($params,JSON_UNESCAPED_UNICODE);
        return $this->curlPost($url, $json);
    }
    /**
    * 通过CURL发送数据
    * @param $url 请求的URL地址
    * @param $data 发送的数据
    * return 请求结果
    */
    protected function curlPost($url,$data)
    {
        $ch = curl_init();
        $params[CURLOPT_URL] = $url;    //请求url地址
        $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
        $params[CURLOPT_SSL_VERIFYPEER] = false;
    $params[CURLOPT_SSL_VERIFYHOST] = false;
        $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
        $params[CURLOPT_POST] = true;
        $params[CURLOPT_POSTFIELDS] = $data;
        curl_setopt_array($ch, $params); //传入curl参数
        $content = curl_exec($ch); //执行
        curl_close($ch); //关闭连接
        return $content;
    }
}
 
$obj = new WxTmp();
$openid = '接收模板信息的用户的openid';
echo $obj->send($openid);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer