微信小程序模板消息推送详细介绍及代码实现

本文地址:http://www.rrusf.com.cn/news/4215.html
文章摘要:微信小程序模板消息推送详细介绍及代码实现,实业投资村夫野老帕丽斯,国台办之力针叶树。

发表日期:2018-03-17 10:50:04作者来源:方维网络浏览次数:315 标签: 北京赛车助赢软件    

  在如今科技发达的年代,大家每天都在接收大量的信息,如电话、短信、APP消息推送、邮件、微信消息、微信服务通知、朋友圈消息、微博消息等等,这些不乏大量的推广信息。面对大量的垃圾信息,我们会报告垃圾短信、屏蔽垃圾电话、屏蔽垃圾邮件、屏蔽某人朋友圈等等,这也导致了大部分消息推送方式的失效或者效果打折。那么,今天方维网络谈的是,效果非常好的微信服务通知,因为这里推送的都是有效信息,屏蔽的人非常少,微信不允许你把它当做推广工具,所以都有调用次数等规则限制,但我们可以好好利用以保持应用的用户粘性。

小程序的模板消息推送,体现在微信-服务通知,如下图。

模板消息推送
点击模板消息,可直接进入小程序某个页面,利用好可以保持应用和用户的粘性,效果非常好。

是不是什么消息都可以发送?模板消息推送有什么条件?
为了防止垃圾信息推送,微信做了很多的规范和限制,如下
  1. 只能发送微信提供的模板信息,不能自定义消息内容,想发什么就发什么;
  2. 有推送条件限制,即用户本人在微信体系内与页面有交互行为后触发。当用户在小程序内完成过支付行为,可在7天内推送3条模板消息或者当用户在小程序内有提交表单行为,可7天内推送1条模板消息。
  3. 有各种标题、关键词规范,防止发送垃圾信息,违者封接口。

具体推送步骤如下

第一步、到小程序管理后台申请推送模板。如下图,已申请了2个模板,最多可申请25个模板消息,模板库目前有160个模板,适合各行各业。

模板消息列表
比较重要的是记住模板ID和模板关键词,在实际推送过程中需要用到,如下图

模板消息详细
 

第二步、收集用户formid

用户支付产生的prepay_id和提交表单时产生的formid(表单属性report-submit="true")
 
小程序前端代码

消息推送前端代码

小程序JS后台代码

小程序JS代码

后台程序接收代码并保持到数据库

数据库如下

CREATE TABLE `xxx_formid` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自动ID',
  `member_id` int(11) DEFAULT NULL COMMENT '会员ID',
  `form_id` varchar(50) DEFAULT NULL COMMENT '收集到的form_id',
  `time_create` int(11) DEFAULT NULL COMMENT '收集时间',
  `time_expire` int(11) DEFAULT NULL COMMENT '过期时间',
  `can_use_times` int(2) DEFAULT NULL COMMENT '可使用次数',
  `used_times` int(2) DEFAULT NULL COMMENT '已使用次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='小程序收集的用于推送消息的form_id表';

THINKPHP推送代码如下

 /**
     * 发送模板消息
     * @param type $ctype 模板消息类型
     * @param type $member_id 会员ID
     * @param type $template_id 模板ID
     * @param type $url 模板消息跳转地址
     * @param type $data 模板消息数据
     * @return int 是否成功
     */
    function do_send($ctype,$member_id, $template_id, $url, $data)
    {
        //获得access_token
        $AccessTokenObj = new AccessTokenModel();
        $access_token = $AccessTokenObj->get_token();
        
        //获得用户open_id
        $MemberObj = new MemberModel();
        $openid = $MemberObj->get_openid($member_id);
        
        //获得form_id
        $FormidObj = new FormidModel();
        $form_id = $FormidObj->get_form_id($member_id);
        
        $template = array(
            'touser' => $openid,
            'form_id' => $form_id,
            'template_id' => $template_id,
            'page' => $url,
            'data' => $data  
        );
        
        if(empty($openid)) {
            $this->add_record($ctype, $member_id, $openid, $form_id,$template_id, json_encode($data),$url, 0, "没有可用openid");
            return 2;//没有可用的openid
        }
        
        if(empty($form_id)) {
            $this->add_record($ctype, $member_id, $openid, $form_id,$template_id, json_encode($data),$url, 0, "没有可用formid");
            return 3;//没有可发送的form_id
        }
        
        $json_template = json_encode($template);
        $url_send = "http://www.rrusf.com.cn//cgi-bin/message/wxopen/template/send?access_token=" . $access_token;
        $json_result = sendCmd($url_send,$json_template);
        $result = json_decode($json_result,true);
        
        $is_success = 0;
        $err_msg = '';
        if($result['errcode'] == 0) {
            $FormidObj->update_state_form_id($form_id);
            $is_success = 1;
        } else {  
            $err_msg = $result['errcode'];
        }
        $this->add_record($ctype, $member_id, $openid, $form_id, $template_id, json_encode($data), $url, $is_success, $err_msg);
        return $is_success;
    }
    
其中需要用到PHP发送请求函数

/**
 * 发起请求
 * @param  string $url  请求地址
 * @param  string $data 请求数据包
 * @return   string      请求返回数据
 */
function sendCmd($url,$data)
{
    $curl = curl_init(); // 启动一个CURL会话      
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                  
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在      
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交     
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转      
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer      
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求      
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包      
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循     
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容      
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 
           
    $tmpInfo = curl_exec($curl); // 执行操作      
    if (curl_errno($curl)) {      
       echo 'Errno'.curl_error($curl);      
    }      
    curl_close($curl); // 关键CURL会话      
    return $tmpInfo; // 返回数据      
}

微信小程序的模板消息推送和服务号的模板消息推送还是不一样的

小程序发送需要formid,而且有7天的时间限制,而服务号是不需要的,但是一个服务号每天有消息总条数限制。

下面附带小程序的一些规则

审核说明
1.标题

1.1标题不能存在相同

1.2标题意思不能存在过度相似

1.3标题必须以“提醒”或“通知”结尾

1.4标题不能带特殊符号、个性化字词等没有行业通用性的内容

1.5标题必须能体现具体服务场景

1.6标题不能涉及营销相关内容,包括不限于:

消费优惠类、购物返利类、商品更新类、优惠券类、代金券类、红包类、会员卡类、积分类、活动类等营销倾向通知

2.关键词

2.1同一标题下,关键词不能存在相同

2.2同一标题下,关键词不能存在过度相似

2.3关键词不能带特殊符号、个性化字词等没有行业通用性的内容

2.4关键词内容示例必须与关键词对应匹配

2.5关键词不能太过宽泛,需要具有限制性,例如:“内容”这个就太宽泛,不能审核通过

违规说明

除不能违反运营规范外,还不能违反以下规则,包括但不限于:

不允许恶意诱导用户进行触发操作,以达到可向用户下发模板目的
不允许恶意骚扰,下发对用户造成骚扰的模板
不允许恶意营销,下发营销目的模板

处罚说明

根据违规情况给予相应梯度的处罚,一般处罚规则如下:

第一次违规,删除违规模板以示警告,

第二次违规,封禁接口7天,

第三次违规,封禁接口30天,

第四次违规,永久封禁接口

处罚结果及原因以站内信形式告知

方维网络专注于微信小程序定制开发,欢迎有需要的客户咨询我们的服务热线400-800-9385,或者加我们的客服QQ97798819

 
如没特殊注明,北京赛车助赢软件:文章均为方维网络原创,转载请注明来自http://www.rrusf.com.cn/news/4215.html

相关网站设计案例

相关推荐新闻

指定周期执行函数setInter...

大家都知道JS的setInterval指定周期执行函数,就是每隔一段时间执...

日期:2018-03-17 浏览次数:36

小程序开发swiper如何实现...

swiper是微信小程序自带的一个图片轮播组件,跟我们做网站用的图片...

日期:2018-03-17 浏览次数:82

方维网络:微信小程序的...

对于深圳几十万的中小企业来说,面对互联网或者移动互联网,它们最大...

日期:2018-03-17 浏览次数:72

方维网络:小程序目前的“冷...

深圳方维网络是一家专门从事网络方案提供的公司,公司的核心业务之...

日期:2018-03-17 浏览次数:79

谈谈微信小程序开发中遇到...

微信小程序从去年开始推出到现在,呈现爆发式的增长,而且还推出了小...

日期:2018-03-17 浏览次数:97

微信小程序用户登录授权开...

有很多小程序应用免不了使用会员与获取用户位置,这就需要使用微信...

日期:2018-03-17 浏览次数:150

微信小程序:制作星星评...

不管是商城、O2O等类型的小程序都需要用到评价,而星星评价是最常...

日期:2018-03-17 浏览次数:115

方维网络:有了APP、商城 为...

方维网络是一家位于深圳的、提供专业互联网解决方案的公司,从事AP...

日期:2018-03-17 浏览次数:89

微信小程序button组件运用...

微信小程序中的 button 组件在开发过程中经常用到,并且会被赋予各...

日期:2018-03-17 浏览次数:157

微信小程序大潮下的实体...

微信小程序的出现悄然而又惊人,李克强总理也提出了“互联网+”的...

日期:2018-03-17 浏览次数:110

微信小程序如何运营推广 ...

很多人开发出了微信小程序后不知道怎么推广运营?其实微信小程序...

日期:2018-03-17 浏览次数:351

微信小程序如何使用swiper...

大家使用过的APP,如果是安装后第一次打开,百分之八十都有引导页,主...

日期:2018-03-17 浏览次数:445

相关标签
微信小程序小程序小程序商城商城小程序微信小程序制作福田网站建设公司
网站建设解决方案
集团上市公司网站建设解决方案响应式网站建设方案企业网站解决方案