微信公众号模板消息

目前项目中需要有一个除短信外其他方式通知或提醒用户业务操作的功能,

故采用了微信的模板消息,把自己使用模板消息的过程和要点简要的记录一下。

一 、运营规则及使用规则

1.关于运营规则,注意:

解释一下:就是得与用户有交互的情况下,才能主动发给用户消息,而且消息得使用微信提供的模板,不能是营销类型的,也不能推送频率过大。最好使用前先看一下规则,是否跟自己的业务相符合。运营规则

模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。

2.关于使用规则,请注意:

(1)所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
(2)需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
在所选择行业的模板库中选用已有的模板进行调用;
(3)每个账号可以同时使用25个模板。
(4)当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。

二、公众号设置

1.添加模板消息功能

点新的功能,从未开通-广告与服务中找模板消息,进行开通操作,因为我已经开通,所以模板消息到已开通中了。需要选择行业,选的时候慎重点,一个月只能改一次,审核大概1-2工作日。

2.寻找符合业务的消息模板

审核通过后,就可以在广告与服务中找到模板消息功能了

 从模板库中寻找符合的模板,添加到我的模板中,就会出现模板Id,下面进行推送的时候需要使用。

进详情,查看内容进行添加操作。

添加之后,出现模板id

三、项目中开发

1.通过微信关注公众号获取用户openid

开启服务器配置,通过服务器地址接收用户关注事件中得到用户openid

处理代码如下:

class WxPush
{/*** 微信事件处理* @param $xmlStr* @return bool|string*/public function getResponse($xmlStr){if (empty($xmlStr)) {return '';}// 解析该xml字符串,利用simpleXMLlibxml_disable_entity_loader(true);//禁止xml实体解析,防止xml注入$xml = simplexml_load_string($xmlStr, 'SimpleXMLElement', LIBXML_NOCDATA);//判断该消息的类型,通过元素MsgTypeswitch ($xml->MsgType) {case 'event': // 事件处理if ($xml->Event == 'subscribe') { // 关注return $this->subscribeEvent($xml);}break;default:return '';break;}return '';}/*** 关注订阅处理* @param $xml* @return string*/protected function subscribeEvent($xml){$fromUserName = $xml->FromUserName;// fromUserName 就是关注用户的openid 记录到数据库中$content = "欢迎关注索服\r\n索服始终以企业利益为根本,致力于为传统硬服企业提供高效、可靠、安全的在线交易平台。服务企业、赋能企业!";return $this->commonTextMsg($xml, $content);}/*** 公共文本消息回复* @param $xml* @param $content* @return string*/protected function commonTextMsg($xml, $content){$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content>
</xml>";$fromUserName = $xml->FromUserName;$toUserName = $xml->ToUserName;$time = time();return sprintf($textTpl, $fromUserName, $toUserName, $time, $content);}
}

2.发送相关消息到用户

注意:

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

代码如下:

<?phpclass WeChat
{/*** 微信公众平台appid* @var string*/protected static $appId = '你的appid';/*** 微信公众平台app secret* @var string*/protected static $appSecret = '你的appSecret';/*** 获取微信access token* @return array*/public function getAccessToken(){$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . self::$appId . '&secret=' . self::$appSecret;$result = $this->linkCurl($url, 'GET', array());$res = json_decode($result, true);if (isset($res['errcode']) && $res['errcode']) {return ['status' => 0, 'msg' => $res['errmsg'], 'data' => []];}return ['status' => 1, 'msg' => 'success', 'data' => $res['access_token']];}/*** 确认订单微信提示* @param $data* @return array*/public function confirmOrderMsg($data){$res = $this->getAccessToken();if ($res['status'] != 1) return $res;$url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $res['data'];$openId = $data['openId'];$companyName = $data['companyName'];   // 企业名称$orderNum = $data['orderNum'];         // 订单编号$endtime = $data['endtime'];           // 截止日期$totalPrice = $data['totalPrice'];     // 订单金额$param = ['touser' => $openId,'template_id' => 'K15UY4vvLF_z5ji91T13ALXYPNfzkaf8HbxnSOPYbXQ','url' => 'https://www.xxxxxx.com/share/detail.html?orderNum=' . $orderNum,'data' => ['first' => ['value' => "您好,{$companyName}发来一个订单!",'color' => '#173177'],'keyword1' => ['value' => $orderNum,'color' => '#173177'],'keyword2' => ['value' => $endtime,'color' => '#173177'],'keyword3' => ['value' => $totalPrice . '元','color' => '#173177'],'keyword4' => ['value' => '待确认采购订单,请尽快确认!','color' => '#173177'],'remark' => ['value' => '点击查看订单信息和进行订单确认!','color' => '#173177'],]];$result = $this->linkCurl($url, 'POST', json_encode($param));$res = json_decode($result, true);if (isset($res['errcode']) && $res['errcode']) {$res['function'] = '确认订单微信提示';$res['addtime'] = date('Y-m-d H:i:s');return ['status' => 0, 'msg' => $res['errmsg'], 'data' => $res];}return ['status' => 1, 'msg' => 'success'];}/*** 请求接口返回内容* @param $url :请求的URL地址* @param $method :请求方式POST|GET* @param $params :请求的参数* @param $header : 请求头* @return bool|string*/protected function linkCurl($url, $method, $params = array(), $header = array()){$ch = curl_init();curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);curl_setopt($ch, CURLOPT_FAILONERROR, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);if (strpos("$" . $url, "https://") == 1) {curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);}curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);curl_setopt($ch, CURLOPT_TIMEOUT, 60);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);if ($method == "POST") {curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $params);} else if ($params) {curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));}$response = curl_exec($ch);if ($response === false) {return false;}curl_close($ch);return $response;}
}// 调用
$weChat = new WeChat();
$msgData = ['openId' => '用户openid','companyName' => '测试企业名称','orderNum' => '2021081747587485748','endtime' => date('Y-m-d H:i', time() + 86400),'totalPrice' => '200.00'
];
$weChat->confirmOrderMsg($msgData);

返回码:

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

效果如下:

 至于发送后,如果接收不成功的处理,这里暂没有处理。有需要的可以查看微信官方文章中事件推送说明,进行实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46081.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将微信公众号中的图文制成PPT的方法

微信公众号里就经常可以看到一些好的文章、研究报告&#xff0c;如果想要保存下来有小小一点难度&#xff0c;如果要将其中的图片制作成PPT文档比较费时&#xff0c;现在我介绍一种“较”快捷的方法。一共四个步骤&#xff0c;熟练工一次需要3分钟。 步骤一&#xff1a;以微信…

马斯克带头和数千名科技大佬呼吁:叫停超强AI研发6个月!

点击“开发者技术前线”&#xff0c;选择“星标” 让一部分开发者看到未来 来自&#xff1a;AI前线 数千名科技大佬认为&#xff0c;我们已经有了 GPT-4&#xff0c;现在应该先缓一缓&#xff0c;别急着搞出比它更强大的新型 AI 系统。 3 月 22 日&#xff0c;生命未来研究所&…

chatgpt赋能python:Python绘图:如何填色

Python绘图&#xff1a;如何填色 Python是一种强大而灵活的编程语言&#xff0c;具有许多用途。其中之一是可视化数据和图形。在这篇文章中&#xff0c;我们将讨论如何使用Python绘制图形并填充颜色。这对于许多不同的项目和应用程序都是有意义的&#xff0c;包括数据分析、科…

chatgpt赋能python:方波绘制Python:从基础到实战

方波绘制Python&#xff1a;从基础到实战 Python在科学计算和数据分析领域广泛应用&#xff0c;其中绘图被认为是Python的强项之一。本文将介绍如何使用Python绘制方波图形&#xff0c;并展示一些基础和实战应用。 方波绘制的基础知识 引入绘图库 为了绘制方波图形&#xf…

chatgpt赋能python:Python绘制轨迹的完整指南:从初学者到高手

Python绘制轨迹的完整指南&#xff1a;从初学者到高手 介绍 Python是一种多功能编程语言&#xff0c;它经常用于各种应用程序和数据分析工具。另外&#xff0c;它使用方便&#xff0c;因此很受欢迎。Python的一个强大功能是能够画图&#xff0c;而绘制轨迹是画图中的一个常见…

chatgpt赋能python:PythonContour应用教程——在线绘制和分析等高线

Python Contour应用教程——在线绘制和分析等高线 Python是一种易学且十分流行的开源编程语言&#xff0c;它可以轻松地实现图像处理、科学计算和机器学习等很多领域的应用。Contour是Python中很重要的一个模块之一&#xff0c;可以用来在线绘制和分析等高线。这篇文章将会介绍…

chatgpt赋能python:Python在图片上特定区域涂色

Python在图片上特定区域涂色 引言 利用Python程序在图片上特定区域涂色是一项非常有用和实际应用的技术&#xff0c;它可以帮助我们同时提升美术效果和图像识别的效率。在本文中&#xff0c;我们将讨论如何使用Python在图片上特定区域涂色&#xff0c;并探讨这项技术的一些实…

简历图标资源分享

关注公众号《小杨的python之路》回复“简历图标” 关注公众号《小杨的python之路》回复“简历图标”

英文简历常用词

http://www.china.org.cn/learning_english/node_7076062.htm 英文简历常用词汇&#xff08;个人资料&#xff09; name 姓名 alias 别名 pen name 笔名 date of birth 出生日期 birth date 出生日期 born 出生于 birth place 出生地点 age 年龄 native place 籍贯 province 省…

分享75个个人简历PPT模板,总有一款适合你

下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 链接&#xff1a;https://pan.baidu.com/s/1I9yb9SuH7Fg5av-OIVuzzg 提取码&#xff1a;tltd 清新蓝粉个人简历PPT模板 酷黑文艺范个人简历PPT模…

英文简历如何选择字体?

撰文 | 陈秋香 专栏 | 九章算法 The Writing Guru &#xff08;职业简历写作&#xff09;创始人&#xff0c;Wendi Weiner 认为在HR看简历的几秒钟里&#xff0c;美观的字体能够快速吸引他们的注意力。因此&#xff0c; 一份好的简历&#xff0c;好的内容固然是必要条件&#x…

设计师求职简历PPT模板

模板介绍 一份高质量的PPT模板&#xff0c;可以让你在日常的工作中展示自我、脱颖而出、去赢得更多机会&#xff0c;今天小编分享一份精美的设计师求职简历PPT模板 PPT模板名称&#xff1a;设计师求职简历PPT模板&#xff0c;模板编号&#xff1a;P39356&#xff0c;大小10MB&…

latex制作中英文简历(含模板代码)

1. 英文简历&#xff1a; 1&#xff09; 网上较好的英文简历模板 2&#xff09;较简洁的英文简历模板 自己主要根据第2&#xff09;个模板制作了一个更为简洁的英文简历&#xff0c; 效果如下图: 2. 中文简历&#xff1a; 中文简历是根据一个师兄的简历改变的&#xff0c;效果图…

校招大学生简历制作模板(ps:程序员简历)

本文献给准备春招秋招的小伙伴们~ I hope everyone with good expectations can find their ideal job~ 文章目录 一. 基本信息-学习经历-&#xff08;求职岗位&#xff09;二. 个人技能&#xff08;技术体系&#xff09;三. 奖项荣誉四. 项目经历五. 实习经历六. 自我评价七. …

程序员的英文简历编写参考

最近在看远程工作的机会&#xff0c;有家国外的公司喊我发一份英文简历过去&#xff0c;于是昨天看了下英文简历的书写规范&#xff0c;整理了一些资料&#xff0c;下面说说一些简历规范&#xff0c;可能对于想去外企的同学会有些帮助。 如果你懒得自己一点点修改可以直接下载…

WPS简历模板的图标怎么修改_最新8000套设计师面试作品集:模板+插画+海报+图标+简历...

我们无论是自学完成PS、AI、CDR、AE、PR、C4D、DW等&#xff0c;还是在校园里学完的这些&#xff0c;无外乎就三个选择&#xff1a;一、自己开工作室做设计&#xff1b;二、业余时间搞设计&#xff1b;三、就是常见的找工作面试了。 最新8000套设计师2020年面试作品集免费拿走&…

英文简历模板

英文简历模板1&#xff08;毕业生&#xff09; Room 212 Building 343 Tsinghua University, Beijing 100084 (010) 62771234 Email:goodtsinghua.edu.com Zheng Yan -------------------------------------------------------------------------------- Objective To obtain a…

Android 界面设计 简约个人求职简历表格

LinearLayout布局 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"wrap_content"android:background"drawable/line_border"android:divider&…

实时聊天对客户服务和销售推力有多大?(一)

实时聊天对于跨境电商客户服务来说&#xff0c;已经是不可或缺的存在。那么&#xff0c;他对于跨境电商增加销售量&#xff0c;改进客户服务有什么好处呢&#xff1f;接着往下看。 实时聊天对客户服务的好处 1.实时聊天可让您提供令人愉快的支持 将实时聊天作为客户支持产品…

马斯克要告微软 拒绝AI训练“白嫖”数据

“现在是诉讼时间。”4月20日&#xff0c;推特被微软踢出其数字营销平台后&#xff0c;新掌门人马斯克立马发推回击称&#xff0c;微软用推特的数据做“非法训练”。这一怼&#xff0c;直接揭开了AI大模型开发商与数据源的利益之争。 此前&#xff0c;在线社区论坛Reddit与程序…