小程序模板消息后台发送(集体通知)

1.在小程序后台配置好模板

2.其中curl需要加上一个参数设置(https发送需要)

3.项目代码示例:其中有token过期更新的处理方法

/* * 通知最近7天小程序用户 * param() */public function xiaoUsersNotice(Request $r) {    $data = $r->all();    $name = $data[‘name‘];//商品名称    $tmp = $data[‘jianjie‘];    $char = implode("、", $tmp);    $jianjie = $char;//商品简介

$where_time = (int)time() - 604800;    $result = \DB::table(‘step_form‘)        ->select(‘form_uid‘)        ->where(‘form_addtime‘,‘>‘,$where_time)        ->distinct(‘form_uid‘)        ->get();    //组织消息内容    $date = date("Y-m-d H:i:s",time());    $value = array(        "keyword1"=>array(            "value"=>$date,        ),        "keyword2"=>array(            "value"=>$name,        ),        "keyword3"=>array(            "value"=>$jianjie        ),    );    $page=‘pages/index/index‘;    foreach($result as $k => $v){        //根据用户查询formid 进行发送并删除对应的第一条formid        $res_first = \DB::table(‘step_form‘)            ->where(‘form_uid‘,$v->form_uid)            ->where(‘form_addtime‘,‘>‘,$where_time)            ->orderby(‘form_addtime‘)            ->first();        //对用户发送第一条formid        $send_date = array();        $send_date[‘touser‘] = $res_first->form_openid;        $send_date[‘template_id‘]=‘cTXT7hORoKy3lG4QYaBLnMIhaL3ECDX82w_6Zn4g85w‘;        $send_date[‘page‘]= $page;  //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,该字段不填则模板无跳转。        $send_date[‘form_id‘] = $res_first->form_fid;        $send_date[‘data‘]=$value;                        //模板内容,不填则下发空模板        $send_date[‘color‘]=‘‘;                        //模板内容字体的颜色,不填默认黑色        $send_date[‘emphasis_keyword‘]=‘‘;        //发送        $url = ‘https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=‘ .$this->get_access_token();        $tmp_send = json_encode($send_date);        $res_str = $this->curl($url,$tmp_send);        $res = json_decode($res_str, true);        if($res[‘errcode‘] == 0){            //成功 删除用过的 formid            $sql = \DB::table(‘step_form‘)                ->where(‘form_fid‘,$res_first->form_fid)                ->delete();        }else{            return [‘code‘ => 1001, ‘data‘ => $res_first ,‘mes‘ => $res[‘errcode‘]];        }    }    //删除过期的formid    $res_del = \DB::table(‘step_form‘)        ->where(‘form_addtime‘,‘<=‘,$where_time)        ->delete();    return [‘code‘ => 1000, ‘data‘ => [‘message‘ => ‘通知并处理完毕!‘]];}

public function get_access_token() {    $resu = \DB::table(‘step_token‘)        ->where(‘token_id‘,1)        ->first();    if(!$resu){        $tmp[‘token_value‘] = 0;        $tmp[‘token_time‘] = 0;        $rest = \DB::table(‘step_token‘)            ->insert($tmp);    }    $result = \DB::table(‘step_token‘)        ->where(‘token_id‘,1)        ->first();    $token_time = $result->token_time;    $token_value = $result->token_value;    if ($token_time < time()) {        $info = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx5bd&secret=cdea29f37");        $info = json_decode($info);        $token_value = $info->access_token;        $token_time = time() + 7000;        $token[‘token_value‘] = $token_value;        $token[‘token_time‘] = $token_time;        $res = \DB::table(‘step_token‘)                ->where(‘token_id‘,1)                ->update($token);    }    return $token_value;}

//curl post方式public function curl($url, $params) {    //初始化    $curl = curl_init();    //设置抓取的url    curl_setopt($curl, CURLOPT_URL, $url);    //设置头文件的信息作为数据流输出    curl_setopt($curl, CURLOPT_HEADER, false);    //设置获取的信息以文件流的形式返回,而不是直接输出。    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    //设置post方式提交    curl_setopt($curl, CURLOPT_POST, 1);    //请求https需要设置这个参数    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS, $params);    //执行命令    $data = curl_exec($curl);    //关闭URL请求    curl_close($curl);    //显示获得的数据    return $data;}

原文地址:https://www.cnblogs.com/lvfish/p/9759965.html

时间: 2024-10-10 11:15:37

小程序模板消息后台发送(集体通知)的相关文章

微信小程序模板消息群发解决思路

基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.(微信6.5.2及以上版本支持模板功能.低于该版本将无法收到模板消息.) 模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面) 模板下发条件:用户本人在微信体系内与页面有交互行为后触发 微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 为了防止对模板消息的滥用,带来

设置小程序模板消息keyword_id_list问题

设置小程序模板消息时,会传一个keyword_id_list,这个参数是由一串数字组成的,开发时如果碰到设置错误,会有疑问这串数字是怎么来的,这里解释一下: 小程序的keyword_id_list主要是来控制小程序模板消息发送给顾客的格式的,具体是什么格式是有开发者自行去选择定义的 那开发者如何去自行定义这些数字呢?这个数字实际上是在微信小程序的模板消息后台获取的 原文地址:https://www.cnblogs.com/gramblog/p/11636809.html

小程序模板消息使用

最近公司项目需要做一个活动,活动的服务通知,对小程序的模板消息了解了一下! 模板消息的实现,前端主要是提供几个参数给后台就好了.因为,无法把https://api.weixin.qq.com这个域名添加到小程序的请求域名.这里是设置了不校验域名.. 1.首先小程序后台的模板消息添加一个模板! 2.wxml <form bind:submit="submitTest" report-submit="true"> <button form-type=&

errcode 4103 invalid page hint 小程序模板消息推送遇到的坑

invalid page hint一直提示这个坑爹的就是,我的小程序没发布之前,也就是测试版本用这个格式是可以的 /pages/myGroup/myGroup?groupid=22***但是发布成功以后,线上版本经常报错.说页面无效,后来不断的改,也百度搜了下别人踩到的坑,后来发现去掉斜杠,用相对路径就可以了. pages/myGroup/myGroup?groupid=22**** 上面这个格式就可以了 仅此记录下我踩到的坑 其他如果还有不明白的地方   可以加我微信 qiufeng2983

小程序模板消息报错41028。解决方法

小程序模板消息报错41028 序 最近在写小程序支付回调的时候,想要去触发小程序模板消息,然而过程却很不顺利.一切参数正确的情况下,尽然返回报错41028 41028报错解释 官方:form_id不正确,或者过期 form_id是什么 即wxml文件里面的form表单提交后产生的ID,我这里使用的是支付回调所以这个解释比较的次要. 如果在支付环境里面,form_id就换成你的prepay_id当然如果你已经做过微信支付了那你应该就知道这个东西 模板消息 模板消息数据组装 官方文档:https:/

借助云开发实现小程序订阅消息(模板消息)推送功能

之前的模板消息推送,将在2020年1月10日下线,所以我们不得不使用订阅消息了. 我们先来看下订阅消息的官方简介.接下来我们就来借助云开发,来快速实现小程序消息推送的功能. 一:获取模板 ID 这一步和我们之前的模板消息推送是一样的,也是先添加模板,然后拿到模板id首先是开通订阅消息功能,很简单,如下图由于长期性订阅消息,目前仅向政务民生.医疗.交通.金融.教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务.仅就线下公共服务这一点,长期性订阅消息就和大部分开发者无缘了.所以我们这里只能

小程序订阅消息流程

最近小程序将模板消息下架,需要修改为订阅消息,现将订阅消息接入完整流程记录一下,还有遇到的问题,最终效果图如下: 注意点: 1.用户授权一次只能下发一次消息通知,如需下发多次,则需要用户多次授权:或者让用户一次授权多个模板ID(下面代码会说明): 2.后台下发订阅消息的时候,数据一定要是json格式字符串,而不是json对象:而下发数据data中的模板关键词key值是根据你选择的模板来的,关键词key值需要在后台申请的模板中查看:(这个关键词key值让我费了些时间) 订阅消息接入流程说明(官方地

分不清电商小程序模板和定制的区别?

当商户们找开发公司做微信电商小程序时,一般会有两种选择:电商小程序模板与电商小程序定制.不少商家分不清电商小程序模板和定制的区别,今天木鱼小编就和大家科普一下. 1.电商小程序模板 电商小程序模板大多是已经开发好的行业小程序模板,这种模板所有的功能已经固定.选择电商小程序模板流程简单,可以快速上线.但这类模板面对的不止是一个商家,而是一个行业.服务商在开发的时候都是针对行业进行开发,只考虑这个行业有可能使用到的功能,而不是针对具体的商家和业务进行开发.所以这些行业模板基本上无法体现不同商家及业务

微信小程序+微信管理后台+微信用户前台

代码地址如下:http://www.demodashi.com/demo/15043.html #### 微信小程序+微信管理后台+微信用户前台 #### 产品介绍 基础功能开发:景区微信地图导游.天气及景点相关资讯微信提醒.项目适玩人群识别与推荐.会员功能.景区美食预订功能.停车付费功能.票价信息查询设置.免费WiFi连接设置. 微信小程序:开发一款用于门票销售的小程序,让用户无需关注,直接一键购票,提供快捷.便利的线上购票服务. #### 项目结构 hqc_mini_app 微信小程序相关文