微信开发(准备工作简版)

1.准备工作

1.1 首先需要一个url地址,用来接收相关的数据
1.2 注册开发者账号进行开发(可用公众平台测试账号)

1.3 appid,第三方用户唯一凭证(你的AppID)

1.4 secret,第三方用户唯一凭证密钥,即Appsecret

1.3 需要access_token,access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。access_token的存储至少要保留512个字符空间。access_token的有效期为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
2.获取相关数据、配置、验证状态
  2.1获取access_token:通过

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的AppID&secret=你的Appsecret 来获取

2.2 验证服务器地址的有效性(确保信息来源为微信服务器)

2.2.1将token、timestamp、nonce进行字典序排序

2.2.2将三个参数拼成一个字符串,并进行sha1加密

2.2.3开发者获得加密后的字符串可与signature对比,进行验证该请求来源于微信,如果验证结果为相等,则请返回echostr字符串、

3.相关的下载地址

3.1多媒体文件下载地址

http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID

1)ACCESS_TOKE:你获取的access_token

2)MEDIA_ID:媒体文件ID

4.开始开发——用户通过post请求发送XMl数据包到Url地址

通用XML参数:


参数


描述


ToUserName


开发者微信号


FromUserName


发送方帐号(一个OpenID)


CreateTime


消息创建时间 (整型)


MsgType


消息类型(text、image、voice)


MsgId


消息id,64位整型

4.1获取文本信息

XML格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1348831860</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[this is a test]]></Content>

<MsgId>1234567890123456</MsgId>

</xml>


参数


描述


MsgType


text


Content


为用户所发送的消息

4.2获取图片信息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1348831860</CreateTime>

<MsgType><![CDATA[image]]></MsgType>

<PicUrl><![CDATA[this is a url]]></PicUrl>

<MediaId><![CDATA[media_id]]></MediaId>

<MsgId>1234567890123456</MsgId>

</xml>


参数


描述


MsgType


image


PicUrl


可根据该图片地址查看该图片


MediaId


图片消息媒体id,可以调用多媒体文件下载接口拉取数据。

4.3获取语音消息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[voice]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<Format><![CDATA[Format]]></Format>

<MsgId>1234567890123456</MsgId>

</xml>


参数


描述


MsgType


语音为voice


MediaId


语音消息媒体id,可以调用多媒体文件下载接口拉取数据。


Format


语音格式,如amr,speex等

4.4获取视频消息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[video]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

<MsgId>1234567890123456</MsgId>

</xml>


参数


描述


MsgType


语音为video


MediaId


视频消息媒体id,可以调用多媒体文件下载接口拉取数据。


ThumbMediaId


视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据.

4.5获取小视频的消息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[shortvideo]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

<MsgId>1234567890123456</MsgId>

</xml>


参数


描述


MsgType


小视频为shortvideo,


MediaId


视频消息媒体id,可以调用多媒体文件下载接口拉取数据。


ThumbMediaId


视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。

4.6获取地理位置消息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1351776360</CreateTime>

<MsgType><![CDATA[location]]></MsgType>

<Location_X>23.134521</Location_X>

<Location_Y>113.358803</Location_Y>

<Scale>20</Scale>

<Label><![CDATA[位置信息]]></Label>

<MsgId>1234567890123456</MsgId>

</xml>

 


参数


描述


MsgType


location


Location_X


地理位置维度


Location_Y


地理位置经度


Scale


地图缩放大小


Label


地理位置信息

4.7获取连接消息

XML数据格式:

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1351776360</CreateTime>

<MsgType><![CDATA[link]]></MsgType>

<Title><![CDATA[公众平台官网链接]]></Title>

<Description><![CDATA[公众平台官网链接]]></Description>

<Url><![CDATA[url]]></Url>

<MsgId>1234567890123456</MsgId>

</xml>

 


参数


描述


MsgType


消息类型,link


Title


消息标题


Description


消息描述


Url


消息链接

5.消息排重(响应微信服务器)

微信在转发消息到我们后台服务的时候,如果5秒钟之内没有返回数据,微信就会立即重新转发消息,如此三次。如果三次过后仍然没有返回数据,则微信公众号会出现“该公众号暂时无法提供服务,请稍后再试的错误”,为了避免微信重复发起消息,也为了避免数据重复导致数据混乱,对微信转发的消息进行排重处理:

1.新建类BaseMsg,有三个属性分别是FromUser,MsgFlag,CreateTime。

2.创建个静态列表_queue,用来存储消息列表,列表的类型是List<BaseMsg>.

3.在处理微信消息体前,首先判断列表是否实例化,如果没有实例化则实例化,否则判断列表的长度是否大于或等于50(这个可以自定义,用处就是微信并发的消息量),如果大于或等于50,则保留20秒内未响应的消息(5秒重试一次,总共重试3次,就是15秒,保险起见写20秒)。

4.获取当前消息体的消息类型,并根据_queue判断当前消息是否已经请求了。如果是事件则返回空字符串。如果是普通消息则保存MsgFlag。

时间: 2024-11-10 13:01:11

微信开发(准备工作简版)的相关文章

名师带你学微信开发(Java版)

======================================================= 长期更新IT编程视频教程,资料收集整理不易,需要一点费用 有意者加QQ:2773400,非诚勿扰! 藏经阁技术资料分享群二维码 原文地址:https://www.cnblogs.com/wangsongbai/p/9120042.html

移动应用微信图像接口开发指南 (iOS版)

使用说明 本文档主要介绍微信图像SDK(iOS版)使用方法,利用SDK可以准确搜索到用户上传的图像. 本文属于入门级文档,旨在帮助开发者快速学习iOS SDK的使用并应用到自身开发工作.具体 API 可到"资源下载 "页下载<微信图像SDK(iOS版)开发手册>进行查询. 准备工作 第一步 创建移动应用 请到"管理中心"创建移动应用,点击"创建移动应用",填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发. 注册完毕,

学习node js 之微信公众帐号接口开发 准备工作

绪:因工作需要,最近开始学习Node js,之前隐隐约约听到过node js 但没有实际见到过,只好google了:至于什么是node js,能做些什么,有多么好,或者有哪些弊端我这里就不多说了,因为我也说不来. 注:因工作系统平台是windows环境,所以这一系列开发测试都以windows系统.(win7)系统: 一.准备工作: node js 安装 1. 进入node js官网,选择INSERTALL 会下载 xxxxx 86.msi 版本的:这个版本会把node js 和npm都安装好:

学习node js 之微信公众帐号接口开发 准备工作之三

app.js文件介绍,由于也是初学,下面的内容是个人的理解,有些不对的地方请评论中指证:以注解的形式说明. //依赖组件[模块]导入 var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var

第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本次的内容: 实现:分享到朋友圈,qq,qq空间,微信朋友的功能. 基础接口 判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: ['chooseImage'], // 需要检测的JS接

手机版_仿微信 陌陌 安卓版(android)/苹果版(iPhone ios),移动社交APP系统源码,企业即时通讯APP程序源码,手机聊天软件源码,移动聊天APP开发

一:系统背景 根据国际电信联盟发布的<衡量信息社会发展报告>中显示:2014年全球手机用户已超过70亿人,全球互联网用户已超过30亿人,世界上移动通信设备用户总数已超过世界总人口数(还在稳定增长中).根据工业和信息化部发布的数据显示:目前我国移动电话用户规模将近13亿,移动互联网用户规模接近9亿,占总网民数的八成多(我国已是全球移动互联网第一大国).4G/5G时代的开启以及移动终端设备的凸显为移动互联网的发展注入巨大的能量,中国移动互联网产业即将迎来前所未有的飞跃. 二:编写目的 事实证明我国

安全技能树简版(转)

Expand - Collapse 安全技能树简版 说明 V1 By @余弦 201706 联系我:[email protected] 更新动态关注微信公众号:懒人在思考 工欲善其事必先利其器 世界之大总有一款利器适合你 https://github.com/Hack-with-Github/Awesome-Hacking  这份技能树最适合走向安全工程化之路的人 高效习惯 正则表达式 调试工具 Kodos RegexBuddy https://regexper.com/ 正则表达式30分钟入门

开放源码的微微信.NET 0.8 版发布了

微微信.NET 0.8 版发布了     A.源码应用范围:         未认证的和经过认证的微信订阅号.微信服务号均可使用,本源码的每一个模块都提供完全的 ASP.NET C#源代码,绝对不含封装的DLL , 我们提供的是一套不断更新的源码,需要用户有一些.NET的基础.     B.微信方面功能     01  欢迎消息:微信被关注后用户消息自动回复欢迎消息:     02  关键词回复:微信用户关键字的自动文本.图文.音乐形式回复设置:     03  签到积分:微信的用户每日签到和积

微信开发python+django两个月的成功经历,django是个好框架!

时间:大三 上学期没有用微信内置浏览器而纯对话开发,坑了自己好一下. 下学期选错bottle框架,以为轻量好,谁知开发中什么都自己来很痛苦. 选对了框架django,终于在大三最后的个把月里写出了里程碑式的现在这个微信端,自己都感动到,作为我大三一年web开发的终结吧. 亮点1:自带后台管理 亮点2:后台权限管理 亮点3:微信回复规则设置去代码化,图形界面. 亮点4:一平台多网店 技巧:微信规则不匹配时不能回复吗?不是,规则包含空字符总能匹配任意文本,请看下面的微信规则截图. 后台 选择botl