微信公众号开发以及订阅号

342 阅读8分钟

了解详情

对于企业和商家而言,想要利用微信来做营销和推广,微信公众号是一个必不可少的工具。但是微信公众号的基本功能都非常简单,通常无法满足企业的营销推广需求。所以很多企业就要对公众号进行二次开发。

公众号包括服务号订阅号(订阅号每天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,然后就可以看到自己的服务器域名了

在公众平台测试账号中填写域名+token

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