微信模板消息开发

直接上代码:

1、功能函数

php

namespace app\backend\controller;

use app\common\model\user as userModel;
use \think\Cache;

class User extends Common
{
    //发送模板消息含税
    public function sendTempMsg()
    {
        if (request()->isAjax()) {
            $data = input('post.');

            // 选出符合条件的openid数组
            $category = $data['category'];
            if ($category == 'is_member') {
                $openidAdrr = db('user')->where(['is_member' => ''])->column('openid'); //所有党员的openid
            } elseif ($category == 'is_represent') {
                $openidAdrr = db('user')->where(['is_represent' => ''])->column('openid'); //所有社区代表的openid
            } elseif ($category == 'all') {
                $openidAdrr = db('user')->column('openid'); //所有社区代表的openid
            } else {
                return false;
            }

            // 数据
            $link = $data['link'];    //模板消息链接
            $dataTemp['first']['value'] = $data['first'];  //标题
            $dataTemp['keyword1']['value'] = $data['keyword1'];  //第1个keyword
            $dataTemp['keyword2']['value'] = $data['keyword2'];  //第2个keyword
            $dataTemp['keyword3']['value'] = $data['keyword3'];
            $dataTemp['keyword4']['value'] = $data['keyword4'];
            $dataTemp['keyword5']['value'] = $data['keyword5'];
            $dataTemp['remark']['value'] = $data['remark'];  //备注
            $tempId = config('wx_temp.temp_djyq');  //模板ID
            
            // 循环,对每个openid发送模板消息
            foreach ($openidAdrr as $key => $value) {
                $openid = $value;
                $this->wxTempMsg($openid, $tempId, $dataTemp, $link);
            }
            return 'success';
        }
    }


    /** 模板消息
     * @param $openid 需要发送模板消息的openid
     * @param $tempId 模板ID
     * @param array $dataTemp 发送数据的数组
     * @param $link 链接
     * @return bool|mixed 返回数组,$res['errmsg'] == 'ok'的时候表示成功。
     */
    public function wxTempMsg($openid, $tempId, $dataTemp = [], $link)
    {
        //获取accessToken
        if (!Cache::get('accessToken')) {
            $accessToken = get_wx_access_token();
            Cache::set('accessToken', $accessToken, 3000);  //将accessToken存在cache中,并设置过期时间
        }
        $accessToken = Cache::get('accessToken');
        $msgUrl = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $accessToken;
        $postDate = [
            "touser" => $openid,  //这是我的openid,必填
            "template_id" => $tempId,  //模板id,必填
            "url" => $link,  //模板跳转链接,选填
            "data" => $dataTemp  //模板消息的数组
        ];

        $res = curl_post_json($msgUrl, json_encode($postDate));
        return $res;
    }
}

 

 

 

 

 

 

————占位符

 

转载于:https://www.cnblogs.com/windyet/articles/9102591.html

你可能感兴趣的:(微信模板消息开发)