当前位置:首页 > 服务器 > 正文

微信服务器设计(微信服务器设计图)

今天给各位分享微信服务器设计的知识,其中也会对微信服务器设计图进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

关于微信公众账号平台的服务器

你好.不知道现在的访问数据只是你的预算.还是说已经达到这么大的访问量.同时十到二十万的在线访问量.不是一台服务器能够支撑的了.需要你有多台服务器做集群.如果这个访问量现在只是你的预算.那么就没必要太担心. 网站从新上线到这么大规模是需要时间的.至少网站前期没有这么大的访问量.用一台双至强配置.8G内存的服务器即可.线路选择方面.结合网站的访问来源确定.若是网站面向南方用户的话用电信.面向北方用户用网通.面向全国用户的话用双线机房.根据你所选择机房线路的不同.租用这样一台服务器一般是五六千到近万元每年.

希望我的建议对你有帮助.若还有需要帮忙的也可以直接来找我

微信公众平台里的服务器配置设置是干什么用的

微信公众平台的入口,用电脑登录微信官网, 然后再导航里面就可以看到公众平台的链接。或者是百度直接搜索微信公众平台!也能找到地址!微信公众平台账号和你的微信账号是不一样的, 如果有公众平台账号的可以进入公众平台官网直接登录!!木有的点击右上角的注册按钮!!注册需要用到邮箱! 填写好邮箱之后进入邮箱。打开微信给你发的邮件, 然后点击里面的激活账号的链接。。接下来就是认证啦, 如果是企业的, 点击企业的选项卡,需要提供企业的营业执照,和法人代表的身份证照片, 需要本人手持身份证拍照(感觉介个好麻烦)。 个人的就少了一个营业执照的认证。 也是需要手持身份证拍照!! 注册申请通过之后就可以进入微信公众平台啦。。进入之后你可以先把自己的微信二维码保存出来, 这样别人关注你的公众账号就会方便的很多!! 二维码在设置里面 ,进入设置之后在最下面就可以看到微信二维码。微信公众平台发布消息, 关注你的人都是可以看到的。用过微信的都知道的, 每次开启微信就有很多公众用户发布的信息。 这个我们自己发布就是在群发消息里面。不过这里编辑的图文都只是一些图文展示, 如果想要发布可以带链接的图文,这个就需要在素材管理里面来添加了!! 进入素材管理, 点击添加多图文消息。进入之后首先需要设置一个封面图片和标题, 我们看别人发布的微信也是会有一个长图的,上传上面指定大小的图片。 然后输入标题和内容即可!!接下来就是内容了, 推荐是可以添加三条内容, 在大图的下面开始会有一个标题和缩略图,鼠标移动上去就可以编辑。 我们可以点击下面的增加一条!!添加三条就可以了!!大图下面的标题会比较关键, 标题和缩略图要选择好。 然后内容的话可以加一些文章的前一段都可以。关键是编辑内容下面可以加入文章的链接。 这样微信用户点击标题就可以进入你指定的网站了。发布刚刚编辑的图文需要进入到群发消息, 然后选择图文消息, 然后再选择你刚刚编辑的图文, 点击勾上之后确定即可。 一天可以发布一条群消息。如果不知道怎么编辑, 给大家上一个发布过的信息大家就一目了然啦。 因为自己的公众平台的账号发布过消息。

Tiny微信框架是怎样设计的

您好!很高兴能为您解答,    

第一层次:通信处理

微信的服务主要是基于HTTP协议,安全通过访问令牌(access_token)保证;少数业务场景使用HTTPS加密协议,甚至涉及安全证书,例如微信商户的支付接口。

Tiny微信框架的通讯处理由WeiXinConnector总调度,接口定义如下:

public interface WeiXinConnector {

/**

* 默认的bean配置名称

*/

public static final String DEFAULT_BEAN_NAME="weiXinConnector";

public static final String ACCESS_TOKEN="ACCESS_TOKEN";

/**

* 获取当前的管理号客户端信息

* @return

*/

Client getClient();

/**

* 获得微信消息发送者,负责往微信服务器发送消息

* @return

*/

WeiXinSender getWeiXinSender();

/**

* 获得微信消息接收者,负责解析微信服务器推送过来的消息

* @return

*/

WeiXinReceiver getWeiXinReceiver();

/**

* 获取微信的会话管理者

* @return

*/

WeiXinSessionManager getWeiXinSessionManager();

/**

* 获取微信验证令牌

* @return

*/

AccessToken getAccessToken();

/**

* 获得微信的JS访问票据

* @return

*/

JsApiTicket getJsApiTicket();

/**

* 发送微信消息

* @param message

*/

void send(ToServerMessage message);

/**

* 上传微信文件

* @param upload

*/

void upload(WeiXinHttpUpload upload);

/**

* 接收微信消息

* @param request

* @param response

*/

void receive(HttpServletRequest request,HttpServletResponse response);

}

具体到底层的HTTP和HTTPS协议通讯,org.tinygroup.weixinhttp工程提供了业务接口WeiXinHttpConnector实现具体的协议通讯。

public interface WeiXinHttpConnector {

/**

* 默认的bean配置名称

*/

public static final String DEFAULT_BEAN_NAME="weiXinHttpConnector";

/**

* 用get方式访问微信URL

*

* @param url 要访问的微信URL

* @return 请求结果

*/

String getUrl(String url);

/**

* 用post方式访问微信URL

*

* @param url 要访问的微信URL

* @param content

* @param cert

* @return 请求结果

*/

String postUrl(String url, String content,WeiXinCert cert);

/**

* 上传文件

* @param url

* @param upload

* @return

*/

String upload(String url,WeiXinHttpUpload upload);

}

目前微信框架实现了HttpClient3.1和HttpClient4.5.1两个版本的底层通讯方案,对开发人员而言只需要配置不同的依赖,而无需关心具体通讯代码。

第二层次:报文解析

本人一直对微信的报文设计颇有微词,从整体上看微信报文缺乏统一规范,XML、JSON格式混用,字段命名也不规范。Tiny微信提供WeiXinConvert接口负责报文与对象之间的转换,目前XML报文通过Xsteam转换,JSON报文通过fastjson转换。接口定义如下:

public interface WeiXinConvert extends ComparableWeiXinConvert {

/**

* 获得优先级

* @return

*/

int getPriority();

/**

* 设置优先级

* @param priority

*/

void setPriority(int priority);

/**

* 获得报文的状态

* @return

*/

WeiXinConvertMode getWeiXinConvertMode();

/**

* 获得结果类型

* @return

*/

Class? getCalssType();

/**

* 判断转换接口能否处理输入信息(微信报文会出现不同类型报文字段一致的情况,需要根据上下文判断)

* @param INPUT

* @param input

* @param context

* @return

*/

INPUT boolean isMatch(INPUT input,WeiXinContext context);

/**

* 转换消息(微信报文会出现不同类型报文字段一致的情况,需要根据上下文判断)

* @param input

* @return

*/

OUTPUT,INPUT OUTPUT convert(INPUT input,WeiXinContext context);

}

对开发人员而言,无需思考如何构建复杂的报文,只需依赖对应微信业务模块的子工程,构建不同的消息对象,而底层的报文解析与转换甚至通讯都由tiny框架处理。

第三层次:报文模拟发送

微信发送报文调试最麻烦的地方就是访问令牌(access_token),这个是根据用户应用动态生成的,而且只保持两个小时有效。Tiny微信框架提供了模拟测试页面,只需要bean配置页面设置相关appId和APP秘钥等参数,开发人员在页面就无需手动输入访问令牌。测试页面如下:

第四层次:报文模拟接收

接收报文通常是用来模拟手机端的发送消息,特别是一些复杂交互场景:如命令行菜单,如果每次都通过手机端调试。效率非常低。而通过本测试页面,直接输入模拟的手机报文直接就可以得到报文结果,准确并且快速。模拟页面如图:

第五层次:报文处理框架

前面在介绍微信核心接口时提到过WeiXinReceiver和WeiXinSender,分别处理微信推送消息与主动发送消息。但是用户的业务是复杂多变的,Tiny是如何保证微信框架的可扩展性呢?其实WeiXinReceiver和WeiXinSender是由一组有序WeiXinHandler组成,而每一个WeiXinHandler都可以处理一类消息,接口定义如下:

public interface WeiXinHandler extends ComparableWeiXinHandler {

int getPriority();

void setPriority(int priority);

WeiXinHandlerMode getWeiXinHandlerMode();

/**

* 是否匹配对象和上下文

* @param T

* @param message

* @return

*/

T boolean isMatch(T message,WeiXinContext context);

/**

* 处理对象

* @param T

* @param message

* @param context

*/

T void process(T message,WeiXinContext context);

}

简单举个例子,比如开发一个图片消息处理器ImageMessageHandler,用来处理微信客户端的图片类消息,代码如下:

public class ImageMessageHandler extends AbstractWeiXinHandler{

public WeiXinHandlerMode getWeiXinHandlerMode() {

return WeiXinHandlerMode.RECEIVE;

}

public T boolean isMatch(T message, WeiXinContext context) {

return message instanceof ImageMessage;

}

//具体业务处理

public T void process(T message, WeiXinContext context) {

ImageMessage mess = (ImageMessage) message;

//逻辑处理

TextReplyMessage replyMessage= new TextReplyMessage();

replyMessage.setContent("回复图片消息["+mess.getPicUrl()+"]");

replyMessage.setToUserName(mess.getFromUserName());

replyMessage.setFromUserName(mess.getToUserName());

replyMessage.setCreateTime((int)(System.currentTimeMillis()/1000));

context.setOutput(replyMessage);

}

}

用户主要是编写isMatch和process这两个函数,前者决定这个业务类能处理哪些微信消息和事件,后者是真正的业务处理类。微信消息的包装和转换由微信框架提供,用户应该关心业务处理逻辑,原则上一个Handler只建议处理一类消息。编写完毕后,需要将Handler配置成bean文件,微信框架就能调用了。

ImageMessageHandler的作用是接收微信客户端发送的图片类消息,并返回图片地址给用户,效果如下:

第六层次:上下文保持

微信是有上下文概念的,比如微信应用的小游戏:猜数字。用户输入一个数字,而服务器告诉用户比目标值偏大还是偏小,直到用户猜中为止。游戏很简单,但是这就涉及到上下文会话,Tiny微信框架提供WeiXinSession接口作为上下文统一接口,而WeiXinSessionManager作为上下文的管理接口存在。

WeiXinSession接口定义如下:

public interface WeiXinSession extends Serializable{

/**

* 会话Id

* @return

*/

String getSessionId();

/**

* 是否包含某元素

* @param name

* @return

*/

boolean contains(String name);

/**

* 返回指定name的序列化对象

* @param T

* @param name

* @return

*/

T extends Serializable T getParameter(String name);

/**

* 设置序列化的参数对象

* @param T

* @param name

* @param value

*/

T extends Serializable void setParameter(String name,T value);

/**

* 取得session的创建时间。

*

* @return 创建时间戮

*/

long getCreationTime();

/**

* 取得最近访问时间。

*

* @return 最近访问时间戮

*/

long getLastAccessedTime();

/**

* 取得session的最大不活动期限,超过此时间,session就会失效。

*

* @return 不活动期限的秒数,0表示永不过期

*/

int getMaxInactiveInterval();

/**

* 设置session的最大不活动期限,单位秒

* @param maxInactiveInterval

*/

void setMaxInactiveInterval(int maxInactiveInterval);

/**

* 判断session有没有过期。

*

* @return 如果过期了,则返回codetrue/code

*/

boolean isExpired();

/**

* 更新session

*/

void update();

}

WeiXinSessionManager管理接口主要提供创建、删除、查询上下文会话的操作API,接口定义如下:

public interface WeiXinSessionManager {

/**

* 默认的bean配置名称

*/

public static final String DEFAULT_BEAN_NAME="weiXinSessionManager";

/**

* 创建会话

* @param sessionId

* @return

*/

WeiXinSession createWeiXinSession(String sessionId);

/**

* 查询会话

* @param sessionId

* @return

*/

WeiXinSession getWeiXinSession(String sessionId);

/**

* 添加会话

* @param session

*/

void addWeiXinSession(WeiXinSession session);

/**

* 手动删除会话

* @param sessionId

* @return

*/

void removeWeiXinSession(String sessionId);

/**

* 遍历会话

* @return

*/

WeiXinSession[] getWeiXinSessions();

/**

* 清理会话过期的Session

*/

void expireWeiXinSessions();

/**

* 清理全部Session

*/

void clear();

/**

* Session最大过期时间设置,单位s,默认0

* @return

*/

int getMaxInactiveInterval();

/**

* Session清理线程首次延迟时间,单位s,默认值60

* @return

*/

int getExpireTimerDelay();

/**

* Session清理线程运行周期,单位s,默认值300

* @return

*/

int getExpireTimePeriod();

}

当然Tiny微信框架提供了上下文相关接口,不代表每一类消息强制进行会话管理,比如简单文本消息,微信客户端的位置消息,完全可以请求-响应这种模式进行处理。

第七层次:处理的水平扩展能力

前文讲过Tiny微信框架的具体业务是由WeiXinHandler接口完成的,而WeiXinHandler接口是不依赖WeiXinConnector等委托对象,因此通过扩展WeiXinHandler接口完全可以实现处理能力的水平扩展,比如Tiny框架本身有服务中心,支持分布式服务,那么我们可以在WeiXinHandler接口包装服务中心,从而实现分布式服务。

第八层次:命令处理框架

实际上一个微信公众号,许多的时候都是通过使用者用文字(语音识别也归到用文字)的方式与平台进行交互,这个时候,其实就是一个命令行的处理。Tiny微信框架通过org.tinygroup.menucommand实现相关需求,开发人员只需要配置XML就可完成复杂的命令行处理。目前支持两种模式:

简单模式。用户不需要动态数据,仅需要配置即可。类似电话黄页,支持逐级递归,针对这种模式,Tiny支持配置方式,用户无需编码。

动态模式。用户除了静态数据,还涉及动态交互,无法通过配置解决。Tiny框架提供了MenuCommandHandler接口,然后在配置中指定具体类或bean,框架就能解决。

第九层次:模板语言的引入

第十层次:模块化

微信公众账号服务器怎么搭建

1、

启用消息接口

登陆微信公众平台,选择:高级功能,

可以看到页面上有‘编辑模式’和‘开发模式’两个选择。默认开启‘编辑模式’。

进入编辑模式并关闭。

进入开发模式,点击成为开发者进入页面:

特别注意是URL是你在‘2准备服务器’中自己服务器的访问路径(即接收微信服务器发送信息的url地址),必须以http://开头,且为80端口。

Token

可以自定义。

填好后点击提交,这会有下面这些结果

(1)你的服务器没有正确响应Token验证,请阅读消息接口使用指南

这样回头检查一下各项配置是否正确。如果确定配置没有问题,请按下面的方法检查

(2)请求URL超时(超过5s)

你的服务器在国外,或者服务器网速不给力,一般多试几次就可以了。

如果经常这样,就需要考虑更换服务器

(3)提交成功

1、

功能测试:

(1)

使用普通账号关注我们的公众账号。

(2)

发送消息‘1’给公众账号。

(3)

如果公众账号返回‘1你好’。

则测试成功。

如何使用pagekite搭建微信网络服务器

微信公众平台

1).注册微信公众平台

首先你要注册自己的一个订阅号,实名,需要审核期的。

2).登录公众平台

注册完成后,可以登录到公众平台。

3).基础功能

默认已经提供了两个基础的功能,在非开发者模式下可以使用。

要添加其它的功能插件的时候,其实是需要微信认证的,所以没认证也用不了。

SAE创建应用

创建应用的时候,在下面选择“微信公众平台PHP SDK”,创建应用就可以了。注意右侧的说明,需要用到。

微信公众平台 PHP SDK使用说明

简单的微信公众平台 PHP SDK ,通过调用相应的接口,使你可以轻松地开发微信 App 。

测试方法如下:

1). Clone 或下载项目源码,上传至服务器。

2).进入微信公众平台,高级功能,开启开发模式,并设置接口配置信息。

修改 URL 为example目录下server.php 的实际位置,

修改 Token 为 weixin (可自行在 example目录下server.php 中更改)。

3).发送消息测试。

下载应用源码到本地

1).复制应用SVN地址

创建完成后,进入应用页面,选择“代码管理”,把页面最下面的该应用的SVN仓库地址复制出来。

2).下载代码

用TortoiseSVN软件中的“Check out…”把代码全部下载到本地。使用SVN的时候,需要输入用户名和密码就是SAE注册时候的安全邮箱和安全密码。

设置公众平台接口配置信息

1).查看token

打开example目录下的server.php文件,翻到文件最下面的这个,就是Token了。

2).在公众平台上填写配置信息

点击“开发者中心”-“修改配置”,

填写URL为你的源码中server.php文件的路径,Token,这个是用来验证的,当然,你可以修改一个自己的,英文或数字,3-32字符。

EncodingAESKey,点击随机生成就行。好了点击“提交”。

完成后,点击“启用”。开启服务器,就可以了。

测试向微信公众号发送消息

关注后发送信息测试下。可以查看代码,对应的返回消息设置都在代码里。

这样,我们就可以通过修改应用中的相关代码,来开发这个公众号的一些其它功能。

微信如何搭建自己的服务器资源

第一步:申请帐号

1创建新浪云计算应用

我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。使用新浪微博账号可以直接登录SAE,登录后SAE将赠送500个免费云豆。

第二步:创建新应用22

1登录后点击顶部【我的首页】

2点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。

3选择一个未使用的appid,如果老是已经被使用不知道该什么好,就填写你的QQ号或者手机号吧。

填写二级域名AppID、应用名称、验证码,开发语言选择PHP,应用类型选择web应用。然后点击创建应用

4应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的CCTV-7

第三步:创建新版本33

1选择CCTV-7右侧的应用管理下面的代码管理,

2跳转到代码管理

3点击右侧的“创建一个新版本”

4版本号默认为1,点击创建,成功后如下图所示:

5到这里,就成功创建了一个域名应用了

第四步:上传代码44

将以下代码复制下来,另存为index.php。必须使用专业的开发编辑软件操作,例如Notepad++,不要使用Windows自带的记事本等。

然后将index.php文件压缩成ZIP格式,注意不能用RAR格式

这样会生成一个index.zip的文件。

在代码管理界面中,选择操作按钮。

选择上传代码包。

点击上传文件,选择刚才压缩好的index.zip文件,点击上传,上传成功后如下所示,如果上传有问题,请在Chrome浏览器下重试一下。

点击操作按钮下的代码编辑,

有时候需要输入自己的安全密码,如果不记得了就点击“找回密码”。

安全验证成功后继续之前的操作。

我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码

8新浪云应用的创建就成功了。

参考资料:

关于微信服务器设计和微信服务器设计图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

取消
扫码支持 支付码