TP5 PHP发送小程序订阅消息 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

TP5 PHP发送小程序订阅消息

发表时间:2020-9-25

发布人:葵宇科技

浏览次数:46

发送订阅消息之前你先去申请模板 , 公共的直接选用就可以, 没有符合的你还得申请,审核时间有点久,
然后根据你申请的模板来填写模板需要的参数就好了, 前提是用户要授权接收订阅消息 , 不然用户是收不到的 , 如果想要以后可以实现自动发送, 可以引导用户永久授权 . 这样就不用每次都需要授权,因为现在订阅消息只有一次性订阅消息

//根据小程序里面的模板消息来设置
$msg = [
    'time3' => ['value'=> date('Y-m-d H:i:s', time())],
    'thing4' => ['value'=> $userName['name']],
     'thing2' => ['value'=> $userInfo['content']],
     'phrase8' => ['value'=> "报价消息"],
     'thing7' => ['value'=> "您当前有{$count}条未读消息, 可能需要尽快处理"],
     ];
     													用户的openid
$sendSubscribeMessage[] = $this->sendSubscribeMessage($userOpneid['wx_openid'], 
'Mpfk11CE1uTnElfGbsSQ9Y6wjejdXtg2fhSpxvQYSRw', 'pages/myPrice/index', $msg);

   //access_token
        $access_token = $this->getAccessToken();
        //请求url
        $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;

    /***
     * @param $touser  //需要接受订阅消息的openid
     * @param $template_id //模板ID
     * @param $page //点击返回页面路径
     * @param $dataArray //订阅格式请参照小程序订阅消息模板中的格式
     * @return array
     * 订阅消息模板
     */
    public function sendSubscribeMessage($touser, $template_id, $page, $dataArray)
    {
        //access_token 一般都存在缓存 , 
        $access_token = $this->getAccessToken();
        //请求url
        $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;

        //发送内容
        $data = [] ;
        $data['touser'] = $touser;  //用户的openid
        $data['template_id'] = $template_id; //所需下发的订阅模板id

        //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
        $data['page'] = $page;
        //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
        $data['data'] = $dataArray;

        //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
        $data['miniprogram_state'] = 'trial';
        $data['lang'] = 'zh_CN';
        $json_data = json_encode($data);
        $http = new Http();
        return [
            'openid' => $touser,
            'data' => $http->curlRequest($url, $json_data)//这里面就是个curl请求 , 转成数组返回
        ];
    }

    /***
     * @return mixed
     * 获取access_token
     */
    protected function getAccessToken()
    {
        $AccessToken = Cache::get('accessToken');
        if ($AccessToken) return $AccessToken; else{
            $model = new Http();
            $access_token = $model->curlRequest('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret);
            $access_token = $access_token['access_token'];
            Cache::set('accessToken',$access_token, 5400);
            return Cache::get('accessToken');
        }

    }

相关案例查看更多