模版消息_微信模版消息 - CSDN
精华内容
参与话题
  • 微信公众号模版消息

    2020-07-26 23:30:55
    本代码真是可用,只需要修改最后面的几个参数设置称自己的。 微信公众账号需要想指定用户推送消息时,就需要用到模版消息接口!
  • 定义的模版内容: {{first.DATA}} 商品名称:{{product.DATA}} 商品价格:{{price.DATA}} 购买时间:{{time.DATA}} {{remark.DATA}} 代码: protected void Page_Load(object sender, EventArgs e) { //

    定义的模版内容:

    {{first.DATA}} 
    
    商品名称:{{product.DATA}}
    商品价格:{{price.DATA}}
    购买时间:{{time.DATA}} 
    {{remark.DATA}}

    代码:

            protected void Page_Load(object sender, EventArgs e)
            {
                //根据appId判断获取  
                if (!AccessTokenContainer.CheckRegistered(appId))    //检查是否已经注册  
                {
                    AccessTokenContainer.Register(appId, appSecret);    //如果没有注册则进行注册  
                }
    
                string access_token = AccessTokenContainer.GetAccessTokenResult(appId).access_token; //AccessToken
                string openId = "xxxxxx";   //用户openId
                string templateId = "xxxxxx";   //模版id
                string linkUrl = "http://www.baidu.com";    //点击详情后跳转后的链接地址,为空则不跳转
    
                //为模版中的各属性赋值
                var templateData = new ProductTemplateData()
                {
                    first = new TemplateDataItem("您好,您的订单已支付成功!", "#000000"),
                    product = new TemplateDataItem("旺旺大礼包", "#000000"),
                    price = new TemplateDataItem("99.8元", "#000000"),
                    time = new TemplateDataItem("2016-11-09 16:50:38", "#000000"),
                    remark = new TemplateDataItem("感谢您的光临~", "#000000")
                };
    
                SendTemplateMessageResult sendResult = TemplateApi.SendTemplateMessage(access_token, openId, templateId, "", linkUrl, templateData);
    
                //发送成功
                if (sendResult.errcode.ToString() == "请求成功")
                {
                    //...
                }
                else 
                {
                    Response.Write("出现错误:" + sendResult.errmsg);
                }
            }
    
            /// <summary>
            /// 定义模版中的字段属性(需与微信模版中的一致)
            /// </summary>
            public class ProductTemplateData
            {
                public TemplateDataItem first { get; set; }
                public TemplateDataItem product { get; set; }
                public TemplateDataItem price { get; set; }
                public TemplateDataItem time { get; set; }
                public TemplateDataItem remark { get; set; }
            }

    推送效果图:


    展开全文
  • 发模板消息( 自己项目 )

    千次阅读 2018-05-08 15:28:26
    1. 在控制器或者model里面调用model里下面这个方法//到账提醒 public function filmquantity($cardid,$mvnum){ try { $mMsg=new MmsgModel(); $ret=$mMsg-&gt;accountnotice($cardid,$mvnum);...

    1. 在控制器或者model里面调用model里下面这个方法

    //到账提醒
       public function filmquantity($cardid,$mvnum){
            try {
                $mMsg=new MmsgModel();
                $ret=$mMsg->accountnotice($cardid,$mvnum);

                if ($ret){//生成成功
                    //调用后台发送通知
                    GetData2(Constants::serverHTTP."admin/SendWxTplMsg?id=".$ret);
                }

                response($ret, Constants::RESPONESE_SUCCESS, '');
            } catch (Exception $e) {
                response_catch($e);
            }

        }


    2. 这个方法调用了MmsgModel里的accountnotice方法(这一步在准备数据,然后调用了wxMsg公共方法,在functions.php)

    //到账提醒
        public function accountnotice($cardid,$mvnum){
            $res=M('acard')->field('fdcNick')->where(['ID'=>$cardid])->select();
            if($res) {
                $data = [
                    'key1' => '您好!您领取的的电影票已到账!',//标题
                    'key2' => $res[0]['fdcNick'],//订单号
                    'key3' => $mvnum . '张',//订单类型
                    'key4' => date('Y-m-d H:i:s'),//订单说明
                    'key5' => '请点击进入预约界面!当前电影票需预约后才可观看!',//备注
                ];
            }
            //模版消息确认url 需要全写 http://yc.wzjo2o.com

             $url="http://yc.wzjo2o.com/index/goto?url=".urlencode('mine/gift?shopID=all');
             $ret =wxMsg(1102,$cardid,$data,$url);
             return $ret;

        }


    3. wxMsg公共方法先从数据库取出模板(这个是对应微信上的格式[写法在5]手动添加到数据库的), 然后把模板里面固定的字替换成刚刚上方准备的数据. 然后回到最外面的(model里的 filmquantity方法 )方法调用GetData2公共方法(写法在下方)去调用后台发送消息模板.

    /*
     *  消息模板
     */
    function wxMsg($type,$cardid,$keys,$url){
        $data=M('aformat')->where('id='.$type)->find();        //取出模板
        if($data){
            $format=$data['fdcFormat'];
            //标题&订单号&订单类型&订单说明&备注
            //电影票发放确认消息
            if($type==1101) {
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[订单号]', $keys['key2'], $format);
                $format = str_replace('[订单类型]', $keys['key3'], $format);
                $format = str_replace('[订单说明]', $keys['key4'], $format);
                $format = str_replace('[备注]', $keys['key5'], $format);
            }
            //标题&账户名&数量&时间&备注
            //电影票到账确认消息
            else if($type==1102) {
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[账户名]', $keys['key2'], $format);
                $format = str_replace('[数量]', $keys['key3'], $format);
                $format = str_replace('[时间]', $keys['key4'], $format);
                $format = str_replace('[备注]', $keys['key5'], $format);
            }
            else if($type==1103) {
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[消费项目]', $keys['key2'], $format);
                $format = str_replace('[消费时间]', $keys['key3'], $format);
                $format = str_replace('[备注]', $keys['key4'], $format);
            }
            else if($type==1104) {
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[活动]', $keys['key2'], $format);
                $format = str_replace('[奖品]', $keys['key3'], $format);
                $format = str_replace('[时间]', $keys['key4'], $format);
                $format = str_replace('[备注]', $keys['key5'], $format);
            }
            else if($type==1105) {
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[到账时间]', $keys['key2'], $format);
                $format = str_replace('[到账金额]', $keys['key3'], $format);
                $format = str_replace('[收益产品]', $keys['key4'], $format);
                $format = str_replace('[备注]', $keys['key5'], $format);
            }
            else if ($type==101) {
                $format = str_replace('[金额]', $keys['key1'], $format);
                $format = str_replace('[时间]', date('y-m-d H:i:s', time()), $format);
                // $format = str_replace('[佣金类型]', $keys['key2'], $format);
                $format = str_replace('[备注]', $keys['key2'], $format);
            }else if ($type==102){    // 邀请注册成功
                $format = str_replace('[会员昵称]', $keys['key1'], $format);
                $format = str_replace('[会员幸运号]', $keys['key2'], $format);
                $format = str_replace('[时间]', date('y-m-d H:i:s', time()), $format);
            }else if ($type==103){    //收益提醒
                $format = str_replace('[标题]', $keys['first'], $format);
                $format = str_replace('[收益类型]', $keys['key1'], $format);
                $format = str_replace('[收益时间]', date('y-m-d H:i:s', time()), $format);
            }else if ($type==104){    //拼团成功
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[名称]', $keys['key2'], $format);
                $format = str_replace('[价格]', $keys['key3'], $format);
                $format = str_replace('[人数]', $keys['key4'], $format);
                $format = str_replace('[备注]', $keys['key5'], $format);
            }else if ($type==105){    //订单状态变更
                $format = str_replace('[标题]', $keys['key1'], $format);
                $format = str_replace('[订单编号]', $keys['key2'], $format);
                $format = str_replace('[订单状态]', $keys['key3'], $format);
                $format = str_replace('[备注]', $keys['key4'], $format);
            }else if ($type==106){    //兑换券使用通知
                $format = str_replace('[优惠标题]', '优惠标题', $format);
                $format = str_replace('[名称]', $keys['key1'], $format);
                $format = str_replace('[编号]', $keys['key2'], $format);
                $format = str_replace('[数量]', '1张', $format);
                $format = str_replace('[备注]', $keys['key3'], $format);
            }else{
                throw new Exception('模版消息设置出错!', 0 );
            }

            $ins=[
                'fdbWx'=>1,
                'fdlFormatID'=>$type,
                'fdcTplID'=>$data['fdcTplID'],
                'fdiType'=>$data['fdiType'],
                'fdcTitle'=>$data['fdcName'],
                'fdlCardID'=>$cardid,
                'fdtMsg'=>$format,
                'fdcUrl'=>$url,
                'created_at'=>date('Y-m-d H:i:s')
            ];
            $ret=M('mmsgdetail')->add($ins);
            return $ret;
        }else{
            throw new Exception('模版消息设置出错!', 0 );
        }

    }


    4. GetData2公共方法的写法

    function GetData2($url){
        $ch = curl_init($url);// 初始化一个 cURL 对象


        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1) ;
        curl_setopt($ch, CURLOPT_TIMEOUT,1) ; //设置为1 异步执行
        curl_setopt ( $ch, CURLOPT_HEADER, 0);    //设置请求选项


        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;//在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
        $output = curl_exec($ch);//执行Curl会话获取相关回复
        curl_close($ch);//释放Curl 句柄, 关闭Cur会话
        if (empty($output)) { return ;}
        $result = json_decode($output,true);
        return $result;

    }

    5.GetData2(Constants::serverHTTP."admin/SendWxTplMsg?id=".$ret);         //通过GetData2这个方法可调用后台的admin控制器里SendWxTplMsg这个方法, 

    //调用api发送消息
        public function SendWxTplMsgAction()
        {
            $get=I('get.');
            $id=$get['id'];
            $msg=new AdminModel();

            $interval=3;//秒钟 
            $ret=true;
            while($ret){
                $ret=$msg->SendWxTplMsg($id); 
                $id=null;                                                     //为了把以前没发的也发出去
                if ($ret==false) break;
                sleep($interval);
            };
            response($ret, Constants::ERROR_CODE, '列表数据');

        }


    6. 在这个model里面调用微信插件发送模板消息

    public function SendWxTplMsg($id = "")
        {
            try {
                
                $where = [
                    'fdbWx' => 1,
                    'fdiSend' => 0,
                ];
                if ($id) {
                    $where['ID'] = $id;
                }
                sleep(8);       //等待8秒,不然数据没建好
                $data = M('mmsgdetail')->where($where)->field(['ID', 'fdlCardID', 'fdtMsg', 'fdcTplID', 'fdcUrl'])->find();

                if ($data) {
                    M('mmsgdetail')->where(['ID' => $data['ID']])->save(['fdiSend' => 1]);
               $res = wechat()->tplMsg($data['fdlCardID'], json_decode($data['fdtMsg'], true), $data['fdcTplID'], $data['fdcUrl']);            //在这里调用微信插件发送模板消息
                    if ($res['errmsg'] != 'ok') {
                        M('mmsgdetail')->where(['ID' => $data['ID']])->save(['fdiSend' => 2, 'updated_at' => date('Y-m-d H:i:s')]);
                    }
                    $this->MmsgtoBase($data['ID']);
                    return true;
                }else{
                    return false;
                }


            } catch (Exception $e) {
                return true;
                //发送有问题
                M('mmsgdetail')->where(['ID' => $data['ID']])->save(['fdiSend' => 3, 'updated_at' => date('Y-m-d H:i:s')]);
            }


        }



    7. 必须在微信上找微信一个模板消息, 然后在后台对应他才有效 , 先登录公众号 -> 功能 ->模板消息 ->从模板库里面用搜索找 -> 找到合适后点添加 ->然后手动添加到下面这张表



    建表:

        Schema::create('aformat', function (Blueprint $table) {
            $table->BigInteger('ID',true,false)->unique('aformat_PK');
            $table->bigInteger('fdiType')->comment('类型')->default(0);
            $table->bigInteger('fdbWx')->comment('0:平台自身消息  1:微信消息模板')->default(0);
            $table->string('fdcName',100)->comment('微信模板消息名称(对应微信标题)')->nullable();
            $table->string('fdcVar',255)->comment('微信需要替换的内容')->nullable();
            $table->string('fdcFormat',255)->comment('替换模板')->nullable();
            $table->string('fdcTplID',255)->comment('微信消息模板ID')->nullable();
            $table->string('fdcWxNo',20)->comment('微信消息模板编号')->nullable();
            $table->string('fdcWxMsg',200)->comment('微信消息模板详细内容')->nullable();
            $table->timestamps();

        });


        Schema::create('mMsgDetail', function (Blueprint $table) {
                $table->BigInteger('ID',true,false)->unique('mMsgDetail_PK');
                $table->boolean('fdbWx')->comment('是否为微信消息')->default(false); 
                $table->string('fdcTplID',255)->comment('模版ID')->nullable(); 
                $table->integer('fdiType')->comment('消息类型')->default(0);
                $table->string('fdlCardID',255)->comment('用户,0、系统消息')->index('mMsgDetail_idx')->nullable(); 
                $table->string('fdcTitle',255)->comment('消息标题')->nullable(); 
                $table->mediumText('fdtMsg')->comment('系统消息')->nullable(); 
                $table->integer('fdiSend')->comment('消息类型0:未处理 1:发送成功 2:发送失败')->default(0);
                $table->boolean('fdbRead')->comment('是否已读')->default(false); 
                $table->bigInteger('fdlFormatID')->comment('推广设置ID')->default(0);  
                $table->bigInteger('fdlSrcID')->comment('srcid')->default(0); 
                $table->string('fdcUrl',255)->comment('连接url')->nullable(); 
                $table->timestamps();
            });

    展开全文
  • 微信公众号开发之发送模板消息

    万次阅读 多人点赞 2018-11-10 13:06:36
    在我们做微信公众号开发时,发送模板消息往往是必不可少的功能。今天我们就来说说吧! 1、申请模板消息 首先我们应该知道,模板消息是需要申请的。这个申请就其本身来说是很easy的(我前一天晚上申请的,显示需要2...

    在我们做微信公众号开发时,发送模板消息往往是必不可少的功能。今天我们就来说说吧!

    1、申请模板消息

    首先我们应该知道,模板消息是需要申请的。这个申请就其本身来说是很easy的(我前一天晚上申请的,显示需要2--3个工作日,结果第二天早上就发现已经开通了,所以说腾讯官方还是比较给力的哈)。

    但是我们在申请时还是有一些东西要注意,这个在官方的文档有非常详细的说明。

    这个我建议你好好看看。选择行业的时候可要谨慎些,因为这个一个月只可以修改一次。

    那么,我们来看看在哪里申请?

    这里我已经申请过了。

    申请之后就耐心等待,审核通过之后再功能这一栏里就会出现模板消息的菜单。你可以看看我上面的截图,就在第三项。

    2、添加模板消息

    审核通过之后,我们就可以添加模板消息,进行开发了。

    这个很简单:

    我们点击模板消息进入后,直接在模板库中选择你需要的消息模板添加就可以了,添加之后就会在我的模板中。会有一个模板id,这个模板id在我们发送消息的时候会用到。

    3、消息发送功能开发

    接下来我们就看看如何发送模板消息:

    这个是官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

    我呢,也来说说我的实现吧。为了更方便,我会直接将相关代码贴出来。

    文档中我们可以看到接口地址如下:

    http请求方式: POST
    https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

    这里我们首先需要的就是access_token了,这个在这里就不多说了。通过你的appid和secret就可以获取。

    【获取access_token : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

    关于相关参数,我直接就将官方文档贴来了(文档写的很清楚):

    POST数据示例如下:

          {
               "touser":"OPENID",
               "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
               "url":"http://weixin.qq.com/download",  
               "miniprogram":{
                 "appid":"xiaochengxuappid12345",
                 "pagepath":"index?foo=bar"
               },          
               "data":{
                       "first": {
                           "value":"恭喜你购买成功!",
                           "color":"#173177"
                       },
                       "keyword1":{
                           "value":"巧克力",
                           "color":"#173177"
                       },
                       "keyword2": {
                           "value":"39.8元",
                           "color":"#173177"
                       },
                       "keyword3": {
                           "value":"2014年9月22日",
                           "color":"#173177"
                       },
                       "remark":{
                           "value":"欢迎再次购买!",
                           "color":"#173177"
                       }
               }
           }
    

    参数说明

    参数 是否必填 说明
    touser 接收者openid
    template_id 模板ID
    url 模板跳转链接(海外帐号没有跳转能力)
    miniprogram 跳小程序所需数据,不需跳小程序可不用传该数据
    appid 所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
    pagepath 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),暂不支持小游戏
    data 模板数据
    color 模板内容字体颜色,不填默认为黑色

    注:url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。

    返回码说明

    在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

        {
               "errcode":0,
               "errmsg":"ok",
               "msgid":200228332
           }

    相信看完以上文档,基本上没有什么问题了。

    以下是我的部分代码:

    // 获取token
            String token = saveAndFlushAccessTokenUtil.getToken();
    
            String postUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
    
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("touser", "发送到用户的openid");   // openid
            jsonObject.put("template_id", "你的模板id");
            jsonObject.put("url", "http://www.baidu.com");
    
            JSONObject data = new JSONObject();
            JSONObject first = new JSONObject();
            first.put("value", "hello");
            first.put("color", "#173177");
            JSONObject keyword1 = new JSONObject();
            keyword1.put("value", "hello");
            keyword1.put("color", "#173177");
            JSONObject keyword2 = new JSONObject();
            keyword2.put("value", "hello");
            keyword2.put("color", "#173177");
            JSONObject keyword3 = new JSONObject();
            keyword3.put("value", "hello");
            keyword3.put("color", "#173177");
            JSONObject remark = new JSONObject();
            remark.put("value", "hello");
            remark.put("color", "#173177");
            
            data.put("first",first);
            data.put("keyword1",keyword1);
            data.put("keyword2",keyword2);
            data.put("keyword3",keyword3);
            data.put("remark",remark);
    
            jsonObject.put("data", data);
    
            String string = HttpClientUtils.sendPostJsonStr(postUrl, jsonObject.toJSONString());
            JSONObject result = JSON.parseObject(string);
            int errcode = result.getIntValue("errcode");
            if(errcode == 0){
                // 发送成功
                System.out.println("发送成功");
            } else {
                // 发送失败
                System.out.println("发送失败");
            }

    下面是http请求工具类:

    package car.repair.common.util;
    
    import lombok.extern.slf4j.Slf4j;
    import org.apache.http.HttpEntity;
    import org.apache.http.ParseException;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    import java.io.IOException;
    
    /**
     * @author zhuzhe
     * @date 2017/12/11
     * HttpClient工具类
     */
    @Slf4j
    public class HttpClientUtils {
    
        /**
         * 以jsonString形式发送HttpPost的Json请求,String形式返回响应结果
         *
         * @param url
         * @param jsonString
         * @return
         */
        public static String sendPostJsonStr(String url, String jsonString) throws IOException {
            if (jsonString == null || jsonString.isEmpty()) {
                return sendPost(url);
            }
            String resp = "";
            StringEntity entityStr = new StringEntity(jsonString,
                    ContentType.create("text/plain", "UTF-8"));
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(entityStr);
            CloseableHttpResponse response = null;
            try {
                response = httpClient.execute(httpPost);
                HttpEntity entity = response.getEntity();
                resp = EntityUtils.toString(entity, "UTF-8");
                EntityUtils.consume(entity);
            } catch (ClientProtocolException e) {
                log.error(e.getMessage());
            } catch (IOException e) {
                log.error(e.getMessage());
            } finally {
                if (response != null) {
                    try {
                        response.close();
                    } catch (IOException e) {
                        log.error(e.getMessage());
                    }
                }
            }
            if (resp == null || resp.equals("")) {
                return "";
            }
            return resp;
        }
    
        /**
         * 发送不带参数的HttpPost请求
         *
         * @param url
         * @return
         */
        public static String sendPost(String url) throws IOException {
            // 1.获得一个httpclient对象
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 2.生成一个post请求
            HttpPost httppost = new HttpPost(url);
            CloseableHttpResponse response = null;
            try {
                // 3.执行get请求并返回结果
                response = httpclient.execute(httppost);
            } catch (IOException e) {
                log.error(e.getMessage());
            }
            // 4.处理结果,这里将结果返回为字符串
            HttpEntity entity = response.getEntity();
            String result = null;
            try {
                result = EntityUtils.toString(entity);
            } catch (ParseException | IOException e) {
                log.error(e.getMessage());
            }
            return result;
        }
    }
    
    

     

    收到消息,我就不自己弄图了。这里附上官方图片一张:

     

    转载请务必保留此出处(原作者):https://blog.csdn.net/zhuzhezhuzhe1/article/details/83927016

     

    版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

    https://blog.csdn.net/zhuzhezhuzhe1

     

    展开全文
  • 微信消息模板详解

    千次阅读 2018-05-07 15:47:56
    效果:当用户从微信公众号登陆了网站,用户的微信就会收到相关的消息通知前提条件:您的微信公众号(服务号)必须已经成功完成与《163K地方门户系统》的微信登录设置配置流程1、进入微信公众号平台-添加功能插件-...
    效果:当用户从微信公众号登陆了网站,用户的微信就会收到相关的消息通知


    前提条件:
    您的微信公众号(服务号)必须已经成功完成与《163K地方门户系统》的微信登录设置

    配置流程

    1、进入微信公众号平台-添加功能插件-添加“
    模板消息”
     
    2、在模板消息 中 选择行业(务必和下图选择一致!)
     

    3、从模板库中添加模板 
     
    可以直接按名称进行搜索,填写好模板名称,点击后面的放大镜 即可搜索,下面会列出搜索结果
     
    在搜索结果中 点 详情 ,进入模板详情页面,进行添加
     

    4、依次在模板库的搜索下面标题的模板进行添加(务必与下述完全一致)

    审核结果提醒 
    订单外送通知
    订单提交成功通知
    会员评价通
    兑换券消费成功提醒
    外卖单下单成功提醒
    收到新订单通知
    活动报名成功通知
    成为会员通知
    订单状态通知
    购买成功通知
    订单取消通知
    订单配送提醒

    完全添加完成后,我的模板页面 如下图
     

       
    然后在信息通知系统中对应填写上您的微信模板ID
     

    微信模板与信息通知系统项目对应关系:
    添加模板时请搜索 模板标题  下面说明中对应的模板编号仅搜索结果中区分选择哪一个,而不能用于搜索
    审核结果提醒             (微信模板库中按名称搜索结果中的模板编号:OPENTM400144478)           (对应信息通知系统通知项目编号:20  30 33  40  41  42  50  60  83  130 150  160  170  180
    订单外送通知             (微信模板编号:OPENTM401692486)         (对应信息通知系统通知项目编号:71
    订单提交成功通知       (微信模板编号:OPENTM201430842 )         对应信息通知系统通知项目编号:102 70 
    会员评价通                (微信模板编号:OPENTM204739462 )          (对应信息通知系统通知项目编号:61  81  106 
    兑换券消费成功提醒   (微信模板编号:OPENTM201131436 )           对应信息通知系统通知项目编号:107 
    外卖单下单成功提醒   (微信模板编号:OPENTM200781461 )          (对应信息通知系统通知项目编号: 暂无
    收到新订单通知         (微信模板编号:TM00533 )                 (对应信息通知系统通知项目编号:100 
    活动报名成功通知      (微信模板编号:OPENTM201163998 )  (对应信息通知系统通知项目编号: 140
    成为会员通知            (微信模板编号: TM00053)                 (对应信息通知系统通知项目编号:
    订单状态通知            (微信模板编号:TM00857 )                 (对应信息通知系统通知项目编号:73 74  104 
    购买成功通知            (微信模板编号:TM00050 )                 (对应信息通知系统通知项目编号:103 
    订单取消通知            (微信模板编号:OPENTM200833809 )  (对应信息通知系统通知项目编号:78  79 
    订单配送提醒            (微信模板编号:OPENTM201677281 )  (对应信息通知系统通知项目编号: 105  76



    请注意:微信公众平台新规则: 新申请用户 请在公众平台 配置 安全中心 添加IP白名单 ,否则将可能无法收到微信消息通知


    展开全文
  • 微信公众号发送模版消息

    千次阅读 2018-05-28 11:11:54
    在我们购买商品或其他操作的时候,这时候微信公众号会推送相关模版消息。接下来简单介绍开发流程:(本文以订单推送为例)首先在测试号新建模版消息格式如下:{{first.DATA}} 用户名:{{keyword1.DATA}} 订单号:{...
  • 小程序 发送模板消息的功能实现

    万次阅读 热门讨论 2019-07-17 08:40:57
    小程序开发的过程中,绝大多数会满足微信支付 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道友们少踩点坑...
  • 微信公众号模板消息管理

    万次阅读 2017-09-22 08:48:56
    模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。本文主要介绍基于C#开发...
  • 微信公众号开发--模板消息

    万次阅读 2017-03-08 22:03:49
    微信公众号开发,发送模版消息
  • 微信服务号模版消息重复发送或消息接收不到的解决方案问题描述解决思路 问题描述 前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模版并...
  • 微信公众号发送模版消息详细过程

    千次阅读 2018-07-06 11:01:16
    前置条件,具有模版消息权限的公众号(可以直接用测试号),rest测试工具(windows推荐使用火狐浏览器插件RestClient,会翻墙的话可以用谷歌的插件Postman好像)如下1.配置配置模版消息模版消息格式如:{{first.DATA}...
  • 微信公众平台模板消息

    千次阅读 2014-08-28 09:57:10
    关键字:微信公众平台 模版消息 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wechat-template-message.html   在这篇微信公众平台开发教程中,我们将介绍如何开发模版消息,即如何用程序发送模版...
  • 微信模板消息换行

    万次阅读 2018-05-16 21:04:16
    微信模板消息换行,用"\r\n"就可以了,微信公众号模板消息有时候字段不够时就需要添加字段,需要换下行效果如下:
  • 微信模版消息开发

    千次阅读 热门讨论 2016-09-30 18:18:36
    在项目中,用到了微信的模版消息。搜索了一下,发现了很多好玩的东西,这里跟大家分享一下。 一,微信公众平台简介  微信公众平台,可以分为三类。 (1)订阅号:主要偏重于为用户传达资讯,类似于 报纸杂志,...
  • 今天来带大家学习下微信模版消息推送。 先看效果图: 核心代码只有下面几行,即可轻松实现微信模版消息推送 //1,配置 WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage(); wxStorage....
  • C#推送微信公众号模版消息

    千次阅读 2018-08-23 10:58:41
    1. 需要在微信公众号申请模版消息,选择你的行业范围 2.【模版消息】—— 【模版库】  可以搜索你想要的模版,也可以申请需要的模版。 3. 点击详情:添加到我的模板 4. 我的模板 :复制模板ID   5. C#...
  • 用的公司的认证过的服务号,我在后台看了,接口权限都有,模版我也添加了。我做模版消息推送,获取基础的accesstoken获取到了,再调用发送模版的接口返回的是48001错误码,api功能未授权。 哪位大神有经验帮个忙吧!
  • 微信公众号所属行业及其对应的模板消息标题,希望其他有不听行业的公众号的网友帮忙补充……
  • 用友uap nc65开发-输出模版(打印模版)开发介绍 1.重点讲解打印模版,主要内容有:如何建立一个打印模版,将打印模版关联节点,编辑打印模版。 2.如何建立一个打印模版: 一般在向导生成节点过程中,系统会自动生成...
  • 微信公众平台发送模板消息

    千次阅读 2015-02-09 16:01:53
    一、申请模版消息权限 模版消息的申请需账号已经开通微信支付权限。 在微信公众平台的后台,依次进入“功能->添加功能插件->模版消息”,即可申请模版消息。 点击申请 申请时,选择2个和自己相关的行业即可...
1 2 3 4 5 ... 20
收藏数 22,628
精华内容 9,051
关键字:

模版消息