ACCESS微信支付(准备干活简版)

1.备选干活

1.1 首先须要一个url地址,用来收纳相关的数码
1.2 注册开发者账号举办开发(可用公众平台测试账号)

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

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

1.3 需要access_token,access_token是群众号的大局唯一票据,公众号调用各接口时都需采纳access_token。access_token的囤积至少要保存511个字符空间。access_token的有效期为1个钟头,需定时刷新,重复获取将导致上次取得的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]></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秒重试二回,总共重试一次,正是15秒,有限接济起见写20秒)。

4.拿走当前音讯体的音信类型,并依照_queue判断当前新闻是不是早已呼吁了。要是是事件则赶回空字符串。如若是熟视无睹新闻则保存MsgFlag。

 

相关文章