精华内容
下载资源
问答
  • 模板消息

    2017-11-03 14:32:00
    微信开发,模板消息的使用

    在需要发送模板消息的地方引用以下方法
    模板消息公共代码

    <?php
    define('IN_ECTOUCH', true);
    require(dirname(__FILE__) . '/include/init.php');
    
            $access_token = access_token($db);
            $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$access_token;
            //opid要传进来
            $opid = 'oAtaowa-dG87exgCAFpgTqhdaQNc';//oAtaowfDaiSi29xOlMEWxDw-kB04,oAtaowa-dG87exgCAFpgTqhdaQNc
            //公众号里拿到模板ID,如果是测试号,要登录测试号添加模板
            $model = 'N67dHaQEl6UV4B7pUNIGzNtq1XxXICXUFN_-l8zHNOQ';
            $nickname = $db->getOne("select nickname from wxch_user where wxid = '".$opid."'");
    
            $msg['touser'] = $opid;
            $msg['template_id'] = $model;
            //跳转链接,可以为空
            $msg['url'] = '';//url链接
            $msg['topcolor'] = '#FF0000';
    
            $msg['data']['first'] = array('value' => '','color' => '#FF0000',);
    
            //keyword 是模板消息动态的字段
            $msg['data']['keyword1'] = array('value' => '广西','color' => '#FF0000',);
            $msg['data']['keyword2'] = array('value' => '太空','color' => '#FF0000',);
            $msg['data']['keyword3'] = array('value' => date("Y-m-d H:i"),'color' => '#FF0000',);
            $msg['data']['keyword4'] = array('value' => $nickname,'color' => '#FF0000',);
    
    
            $msg['data']['remark'] = array('value' => '','color' => '',);//提示信息
            $json = json_encode($msg);
            $ret_json = post($url, $json);
            print_r($ret_json);exit;
    
    function access_token($db) {
        $ret = $db->getRow("SELECT * FROM `wxch_config` WHERE `id` = 1");
        $appid = $ret['appid'];
        $appsecret = $ret['appsecret'];
        $access_token = $ret['access_token'];
        $dateline = $ret['dateline'];
        $time = time();
        if(($time - $dateline) >= 7200) {
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
            $ret_json = curl_get_contents($url);
            $ret = json_decode($ret_json);
            if($ret->access_token){
                $db->query("UPDATE `wxch_config` SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `id` =1;");
                return $ret->access_token;
            }
        }
        elseif(empty($access_token)) {
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
            $ret_json = curl_get_contents($url);
            $ret = json_decode($ret_json);
            if($ret->access_token){
                $db->query("UPDATE `wxch_config` SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `id` =1;");
                return $ret->access_token;
            }
        }
        else {  return $access_token;}
    }
    function get_token(){
        $ch = curl_init();
        $url = '';
    }
    function post($url,$data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $r = curl_exec($ch);
        curl_close($ch);
        return $r;
    }
    
    function curl_get_contents($url) 
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $r = curl_exec($ch);
        curl_close($ch);
        return $r;
    }
    
    ?>
    
    展开全文
  • 微信模板消息开发

    2018-04-24 14:16:29
    微信、小程序、微信接口、模板消息、微信模板消息, 微信、小程序、微信接口、模板消息、微信模板消息
  • 模板消息是微信一种没有发送限制的消息,使用模板消息群发可以帮认证服务号突破发送次数的限制。发送的模板消息里可添加任意超链接或者小程序,粉丝点击可以直接跳转。推荐大家使用业内发送速度最快最稳定的工具——...

    add6dd252b01e33add6e2e05ff447d54.png

    模板消息是微信一种没有发送限制的消息,使用模板消息群发可以帮认证服务号突破发送次数的限制。发送的模板消息里可添加任意超链接或者小程序,粉丝点击可以直接跳转。推荐大家使用业内发送速度最快最稳定的工具——群发宝,超过3万公众号正在用的群发软件,即买即用无需开发!

    8034d88dba5119381b5a7877802a1c54.png

    afb7c1a55f643573bb547c5cc00ecfd2.png

    群发宝的常见问题

    群发宝有什么用?

    群发宝可以突破微信群发的限制,精准针对粉丝实现消息推送,帮助公众号推广H5或小程序。

    群发宝支持的发送类型?

    发送的类型支持模板消息及客服消息,模板消息没有发送限制,所有粉丝均能收到,但是展示样式无法自定义;客服消息仅能送达48小时内与公众号有互动的粉丝,但是展现形式可以自行定义。

    群发宝的费用?

    群发宝目前提供2种付费模式:按月购买及按年购买,使用支付宝在线支付完成开通。

    每日群发数量有限制么

    模板消息默认是每日10万条,客服消息每日是50万条。账号粉丝量越大,可群发的条数就越多,具体可发送数量可登录微信公众平台查看。

    群发支持定向发送么?

    目前支持三种方式的发送:1对1的发送,按微信粉丝标签的发送和发送给所有粉丝。

    群发推广的内容有限制么?

    没有限制,任何链接均可以直接推广。如果是推广微信小程序,则需要先与对应公众号关联。

    使用群发宝有风险么?

    滥用模板消息可能会遭到粉丝的投诉,微信会临时禁用对应模板,发送客服消息则没有风险。

    如何统计群发的效果?

    为推广的链接增加统计参数,或者转换为可统计的短链接,都可以统计群发宝的发送效果。

    更多问题,请访问模板群发专家——群发宝官网

    群发宝 - 模板消息发送工具wx-data.com
    展开全文
  • 微信模板消息代码

    2018-11-21 18:27:12
    Java版本微信模板消息推送后台代码。适合初学者。小程序模板消息推送开发
  • Java 实现微信公众号模板消息推送,demo
  • 主要介绍了小程序新版订阅消息模板消息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 资源包含:1、生成 微信Accesstoken 服务;2、WechatAuth类 封装了 微信消息及二维码类...3、微信模板消息类 几行代码轻松搞定微信模板消息 使用教程参考:https://blog.csdn.net/qq_16024861/article/details/81510679
  • 微信模板消息

    2019-07-08 01:13:46
    近期项目用到了微信的模板消息,今天想写一个demo总结下微信模板消息开发的流程和相关注意事项 一,相关配置和申请流程 1.获得微信模板消息ID 通过微信公众平台的开发文档阅读可知,申请微信模板消息ID比较方便的...

    近期项目用到了微信的模板消息,今天想写一个demo总结下微信模板消息开发的流程和相关注意事项

    一,相关配置和申请流程

    1.获得微信模板消息ID

    通过微信公众平台的开发文档阅读可知,申请微信模板消息ID比较方便的方式还是直接
    手动配置获取模板消息ID

    主要步骤:

    • 选取模板
    • 编辑模板
    • 添加模板
    • 复制id

    在这里插入图片描述

    2.调用接口完成模板消息发送

    请求地址:

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

    请求参数:

    在这里插入图片描述

    返回参数:

    在这里插入图片描述

    errcode合法值:

    在这里插入图片描述

    请求参数示例:

    {
      "touser": "OPENID",
      "template_id": "TEMPLATE_ID",
      "page": "index",
      "form_id": "FORMID",
      "data": {
          "keyword1": {
              "value": "339208499"
          },
          "keyword2": {
              "value": "2015年01月05日 12:30"
          },
          "keyword3": {
              "value": "腾讯微信总部"
          } ,
          "keyword4": {
              "value": "广州市海珠区新港中路397号"
          }
      },
      "emphasis_keyword": "keyword1.DATA"
    }
    

    注意:

    • data即模板消息内容实体,注意申请模板消息时keyword对应的选项

    3.代码实现

    封装消息实体

    根据上边的请求示例来编写消息实体

    消息抽象

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class BaseMessage {
    
        /**
         * accessToken: 接口调用凭证
         * openId:接受者 openId
         * templateId: 模板消息id
         * page: 要跳转的页面
         * formId: submit提交的formId
         * data: 模板内容
         */
    //请求示例:-----------------------------------------------
    //    {
    //        "touser": "OPENID",
    //            "template_id": "TEMPLATE_ID",
    //            "page": "index",
    //            "form_id": "FORMID",
    //            "data": {
    //        "keyword1": {
    //            "value": "339208499"
    //        },
    //        "keyword2": {
    //            "value": "2015年01月05日 12:30"
    //        },
    //        "keyword3": {
    //            "value": "腾讯微信总部"
    //        } ,
    //        "keyword4": {
    //            "value": "广州市海珠区新港中路397号"
    //        }
    //    },
    //        "emphasis_keyword": "keyword1.DATA"
    //    }
    //---------------------------------------------------------
    
        @JSONField(name = "touser")
        private String openId;
    
        @JSONField(name = "template_id")
        private String template_id;
    
        @JSONField(name = "page")
        private String page;
    
        @JSONField(name = "form_id")
        private String form_id;
    
        private BaseContent data;
    
        @JSONField(name = "emphasis_keyword")
        private String emphasis_keyword;
    }
    

    消息内容实体就是

    public class BaseContent {
    }
    

    根据要发送的具体消息继承该类,自定义编写

    eg:

    public class TestMessage extends BaseContent {
    
        /**
         * TestMessage:
         *
         * <li>主要用来封装消息实体</li>
         * <li>相当于请求参数中的data</li>
         */
    
        @JSONField(name = "keyword1")
        private Keyword tips;
    
        @JSONField(name = "keyword2")
        private Keyword pointInfo;
    
        @JSONField(name = "keyword3")
        private Keyword name;
    
        @JSONField(name = "keyword4")
        private Keyword phone;
    }
    

    根据示例中还封装了keyword

    @Slf4j
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Keyword {
    
        private String value;
    }
    

    利用枚举存放刚刚获取到的消息id

    public enum TemplateIdEnum {
    
        /**
         * TemplateIdEnum
         * <li>存放模板消息ID</li>
         */
    
        TEXTMSG_ID("");
    
        private String TEMPLATE_ID;
    
        TemplateIdEnum(String TEMPLATE_ID){
            this.TEMPLATE_ID = TEMPLATE_ID;
        }
    
        public static String getTemplateId(TemplateIdEnum type){
            return type.TEMPLATE_ID;
        }
    
    }
    

    请求接口

    
    /**
     * @Description:    微信模板消息工具类
     * @Author:         Kevin
     * @CreateDate:     2019/7/8 0:52
     * @UpdateUser:     Kevin
     * @UpdateDate:     2019/7/8 0:52
     * @UpdateRemark:   修改内容
     * @Version: 1.0
     */
    @Component
    @Slf4j
    public class WxMessageUtils {
    
        public void sendTemplateMessage(BaseMessage baseMessage){
            //封装参数
            Map<String,String> params = new HashMap<>();
            params.put("access_token",WxAccountServiceImpl.getAccessToken());
            JSONObject jsonObject = JSONObject.parseObject(params.toString());
            //请求模板消息接口
            String resultJson = HttpClientUtils.doPostJson(WxConfig.TEMPLATEMESSAGE_URL,jsonObject.toJSONString());
            log.info("----------->"+resultJson);
            //判断是否请求成功
            checkSuccess(JSONObject.parseObject(resultJson),
                    "Wechat return error:" + resultJson);
    
        }
    
        /**
         * 检查请求是否成功
         * @param bodyJSON
         * @param message
         */
        private static void checkSuccess(JSONObject bodyJSON, String message) {
            if (!isSuccess(bodyJSON)) {
                log.warn(message);
                throw new MessageException(bodyJSON.get("errmsg").toString());
            }
        }
    
        /**
         * 检查请求接口是否成功
         * @param bodyJSON
         * @return
         */
        private static boolean isSuccess(JSONObject bodyJSON) {
            if (bodyJSON.containsKey("errcode") && bodyJSON.containsKey("errmsg")) {
                if ((int) bodyJSON.get("errcode") != 0 && "ok".equals(bodyJSON.get("errmsg"))) {
                    return false;
                }
            }
            return true;
        }
    }
    

    具体项目地址:

    github

    展开全文
  • 如果用完了,还可以使用模板消息群发对全部粉丝推送,仅限服务号使用。订阅号依然每天只能用群发1次,开发公众号高级群发接口,不会开发的人员可以直接使用微号帮平台功能。不仅仅这一个功能使用,所有功能均可试用7...

    下周就是国庆节,不知道你公众号的群发次数用完了吗?如果用完了,还可以使用模板消息群发对全部粉丝推送,仅限服务号使用。订阅号依然每天只能用群发1次,开发公众号高级群发接口,不会开发的人员可以直接使用微号帮平台功能。不仅仅这一个功能使用,所有功能均可试用7天。

    1、模板消息群发功能

    模板消息可以跳转外链和小程序,功能仅服务号可以使用,订阅号无法使用。模板消息支持修改文本颜色、换行等。

    2、模板消息任务添加

    模板消息是按固定模板的消息,没有封面,每次群发为1条信息,添加多条模板消息,则群发多条信息,可以定时未来1个月内的时间点。

    3、模板消息内容编辑

    模板消息支持跳转外链、小程序,外链可以使用素材永久链接、网站链接等,使用小程序需要与公众号关联才能正常跳转。文本颜色也可以修改,换行等。

    4、模板消息添加模板库

    模板库在公众号后台添加,然后点击获取模板数据,每个公众号能使用两个行业的模板,每个月能修改一次行业。

    展开全文
  • 支持模板消息

    2021-01-02 16:06:33
    <div><p>请问,现在的提供的API里有发送模板消息的功能吗?</p><p>该提问来源于开源项目:lanrion/weixin_authorize</p></div>
  • canal搭建消息发送平台发送微信模板消息 canal搭建消息发送平台发送微信模板消息
  • 发送模板消息

    2021-01-07 04:13:43
    <div><p>Hi, 我看到现有的代码支持设置所属行业</code>&#...但是不支持发送模板消息</code>,不知道为什么,还是我没有找对地方?</p><p>该提问来源于开源项目:wechatpy/wechatpy</p></div>
  • 模板消息.zip

    2019-08-11 19:49:00
    ---------- 基于小程序云开发实现的无限发送模板消息的代码 ----------
  • 微信小程序推送模板消息

    万次阅读 多人点赞 2018-07-24 18:08:34
    今天KingYiFan给大家分享一下小程序模板消息推送: 根据微信小程序最新机制:2019年10月份微信发布了最新模板消息整改公告,由模板消息更改为订阅消息,模板消息将于2020年1月10日下线,下线后这篇文章将失效。最新...
  • 比如下面这张图:用户进行了一些操作之后,服务号能够返回特定的消息----这就是模板消息。要实现模板消息的回复,你的公众号必须是经过微信认证的,如果是个人的订阅号,暂时不支持微信认证。不过也不影响做测试----...
  • 当下,公众平台无法实现模板消息群发,仅支持添加模板,修改所在行业,如果想要实现模板消息群发,可以使用微号帮平台的模板消息群发功能实现,也可使用公众平台的接口开发实现功能,均能实现微信公众号模板消息群发...
  • php实现发送微信模板消息的方法,php信模板消息本文实例讲述了php实现发送微信模板消息的方法。分享给大家供大家参考。具体如下:该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下:复制代码 代码如下:...
  • 模板消息接口

    千次阅读 2018-11-28 10:27:48
    模板消息接口 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 关于使用...
  • 主要介绍了PHP微信模板消息操作方法,结合实例形式分析了php模板消息的定义与调用方法,需要的朋友可以参考下
  • 本文通过一段代码实例给大家介绍基于python实现微信模板消息的相关资料,对python模板消息感兴趣的朋友一起学习吧
  • 公众号模板消息的使用场景: 如下图所示,主要包括报名成功提醒、登陆提醒、支付凭证、订单签收/派送通知……,还有公众号在做裂变活动时,也需要通过模板消息来发送实时进度。 公众号裂变活动模板消息 所以...
  • 微信小程序开发交流qq群 173683895 承接微信小程序开发。...发送模板消息(服务通知)效果图: 前端 wxml <form bindsubmit="submitForm" report-submit > <button form-type="subm...
  • 这篇文章主要为大家详细介绍了PHP微信...比如下面这张图:用户进行了一些操作之后,服务号能够返回特定的消息----这就是模板消息。要实现模板消息的回复,你的公众号必须是经过微信认证的,如果是个人的订阅号,暂...
  • 了解微信公众号运营的小伙伴都知道公众平台没有模板消息发送的功能,公众平台仅提供添加模板和修改所在行业,如果想要实现功能效果,只能通过公众平台的开发接口实现,或者通过微号帮平台上的模板消息群发功能实现,...
  • 以下为开发步骤:1.微信公众号为服务号且开通微信认证(其他类型账号不能发送)2.ip白...发送模板消息ip白名单网页授权开通模板消息并选用模板获取openid1.用户同意授权,获取codeappid:公众号appid基础设置里有(必填)...
  • 如何使用微信公众号模板消息?概述模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰...
  • 本文实例为大家分享了php微信模板消息推送的具体代码,供大家参考,具体内容如下1.微信公众号模板消息配置2.PHP代码/*** 发送模板消息*/ public function send_notice(){ //获取access_token if ($_COOKIE["access_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,898
精华内容 3,159
关键字:

模板消息