对于企业和商家而言,想要利用微信来做营销和推广,微信公众号是一个必不可少的工具。但是微信公众号的基本功能都非常简单,通常无法满足企业的营销推广需求。所以很多企业就要对公众号进行二次开发。
公众号包括服务号和订阅号(订阅号每天1次,服务号每月4次)
服务号:给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众的服务平台。
**订阅号:**为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式。
**小程序:**一种新的开发能力,可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
企业微信:企业的专业办公管理工具。与微信一致的沟通体验,提供丰富免费的办公应用,并与微信消息,小程序,微信支付等互通,助力企业高效办公和管理。
微信公众平台企业平台与个人平台有什么区别
企业比个人呢多了服务器号的选择,个人只能使用订阅号。而且公众平台的新功能,
一般都先提供给认证成功的服务器。
个人认证免费,企业认证收费,但是比个人的简单。
(一).微信公众号是如何进行开发的
1.做好定位
在开发工作开始之前,一定要做好公众号的定位工作。在此期间,需要考虑做公众号的目的是什么,是为了展示,还是为了营销。然后还要考虑目标人群以及这些人群的特征是什么,这样才能做好定位工作。
2.确定开发方式
公众号,可以自己开发,也可以交给专业的开发公司来帮助开发。这是一项必不可少的工作,若选择自己开发,那就要准备招募开发团队,如果选择与第三方合作,让专业的开发团队来帮助你开发,就需要准备对所选择的公司进行考察。
需要提醒大家的是,现在市面上的公众号开发公司有很多,质量参差不齐,所以在选择的时候,一定要多考虑,从案例、技术团队、口碑等等方面去考察。如果是像上海数字商圈这种,有过大型企业开发案例,多种行业经验的,就可以考虑与其合作。
3.准备开发资料
无论是自己开发还是找第三方帮助开发,在开发工作开始之前,都应当做一份公众号的设计需求文档,其中应当包括:功能,页面,结构,表格表单,栏目,链接,等等,以便和开发人员沟通。
4、确定UI设计风格
将公众号的UI交付美工设计,并与美工人员保持良好的沟通,按照文案和沟通内容进行界面设计。在设计完成后,应当对设计稿做审核,看看有没有需要修改的细节,如果有,就要与美工做好沟通工作。
5、测试
在公众号开发工作完成之后,应当进行不同环境的测试,例如表单功能、电话功能,下单功能等等,以及公众号的后台测试,以确保没有BUG,以免在上线后再进行修改。
(二)更上一层开发
1.access_token是微信公众号的全局唯一接口调用凭证,公众号在调用各个接口时都需要使用access_token
在我们调用各个接口前,需要先使用公众号的appid和appsecret信息(这两个值可以从微信公众号的网页上查看)向服务器请求获取access_token,然后带着这个值去调用微信公众平台提供的接口,实现相应的功能
2.微信网页开发
网页开发就是指编写一系列的HTML5页面,并在微信公众号中引导用户打开我们开发的页面,从而实现相关的业务逻辑,这一功能使得公众号可以像一个内嵌在微信当中的应用一样,能够实现非常复杂的交互逻辑,而且相比于通常的应用来说更加小巧。
**************************************
(三)公众号(订阅号)开发
html+css+js 必须会 初级
vue react 小程序 最少会一个 中级
微信开发 混编app 服务器运维 加分项 高级
###微信开发 公众号开发
* 傻瓜模式 (文字小编)
* 天神下凡:
消息回复
自定义菜单
### 消息回复
wx自己玩
1.用户在公众号 输入信息 发送到微信的服务器
2.微信服务器内部验证匹配规则
3.将匹配到的结果发送给用户
开发者参与
1.用户在公众号 输入信息 发送到微信的服务器
2.微信服务器将信息转发到开发者服务器
3.开发者服务器内部做逻辑处理
4.将结果发送给wx服务器
5.wx服务器将结果发松给客户端
wx 官方提供的消息回复功能 是固定写死的,无法添加一些业务逻辑
内网穿透网站 注册并登录 可以免费使用一个域名
1.下载natapp插件
2.在我的隧道中查看authtoken
3.start natapp -authtoken=xxxx
4,然后就可以看到自己的服务器域名了
5.购买隧道
这里可以购买免费的,但是又一个致命的缺点就是域名和端口号会不定期改变,这让人很受不了,但是如果仅仅是为了先体验一下的可以的,我这里就购买了一个VIP-1型的隧道,付费的好处是不会变域名了
有一点,付费的这个隧道还需要购买一个二级域名才能使用,因为这个给你分配的大域名你是用不了的,所以你需要去注册一个二级域名,也需要付费的。
在开发者工具里:公众平台测试账号(除了支付权限没有,其他基本都有,如果要做上线,还得做微信认证)
/******************开启服务*************/
const express=require('express')// crypto模块的目的是为了提供通用的加密和哈希算法。
const crypto = require('crypto');
const app=express()
const token='nz1911';//token
/** *
1)将token,timestamp,nonce三个参数进行字典序排序 *
2)将三个参数字符串拼成一个字符串进行sha1加密 *
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
*/
app.get('/nz1911',(req,res)=>{
console.log(req.query)
let {signature,timestamp,nonce,echostr}=req.query // 字典排序
let string=[token,timestamp,nonce].sort().join('') // 进行sha1 加密
let result=crypto.createHash('sha1').update(string).digest('hex')
console.log(result)
if(result===signature){
res.send(echostr)
}
res.send('yier')})
app.listen(80,()=>{
console.log('server start')
})
3.安装xml插件
npm install express body-parser body-parser-xml //安装插件
####确定接受公众号消息的服务器 (验证服务器的安全性)
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
1.填写服务器信息
2.开发者提交信息后,微信服务器将发送GET请求到填写的服务器URL上,GET请求携带参数如下表所示
*创建本地服务器
*进行内网穿透 在本地服务器接受微信发送的消息
3.第三方服务器进行配置验证
*将token,timestamp,nonce三个参数进行字典序排序
*将三个参数字符串拼接成一个字符串进行sha1加密
*开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
####接受公众号发送的消息
当普通微信用户向公众账号发消息时,微信服务器将(POST)消息的(XML)数据包到开发者填写的(URL)上
1.接受普通的消息 文本 语音 图片。。。
2.事件消息 关注事件 取消关注
3.菜单栏的点击事件
#####回复消息
回复xml 数据格式 文本音乐图片
###调用微信公众号提供的功能接口
(1)获取调用接口的唯一凭证 access_token
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
*网络请求 get方法
*参数 appid appsecret
(2)创建自定义菜单
http请求方式:POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
*服务器端请求 post方法
*需要一个叫ACCESS_TOKEN
*自定义菜单的数据包
(四)微信网页开发
一)基于微信的h5网页开发
与正常的网页开发相比,微信网页可以调用微信功能
1.扫码
2.录音
3.分享到朋友圈
4.摇一摇
...
2)问题
1.网页能不能扫码 不能
2.网页能不能调用摄像头 可以 网页的视频会议
3)通过模板引擎 实现服务端渲染
下载ejs npm install ejs
指定模板目录 app.set(path.join(_dirname,'./views','views')
使用ejs模板引擎 app.set('view engine','ejs')
渲染模板 res.render('hehe',{})
使用服务端渲染的目的就是将后端产生的数据注入到h5页面上
4)渲染模式
渲染一个表格
1.发起ajax 获取数据 浏览器进行渲染 客户端渲染
2.服务器将数据处理好 直接将完整的页面发给你 服务端渲染
5)获取ticker
用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,
开发者必须在自己的服务全局缓存jsapi_ticket):
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi