微信二次开发之微信文本消息接口实现

C小海      2022-02-11     518

关键词:

1、微信文本消息接口-理解

1)接受消息的理解

微信服务器(自有的服务器)接收来自普通微信用户发往微信公众号的消息。

2)发送消息的理解

微信服务器(自有服务器)发往普通微信用户的消息。

3)消息处理的三种模式

  明文模式、兼容模式、安全模式。明文就是微信服务器和微信用户之间的发送消息是明文,安全模式就是发送和接收需要经过加密和解密算法来实现,

兼容模式接收和发送,一者是明文,另一个是密文的方式。

4)微信服务出现异常的情况

按照目前的情况,微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试3次。假如服务器无法保证在5秒内处理回复,

可以直接回复空字串,微信服务器不做任何处理。

2、微信文本消息接口-处理过程

1)接收消息

  微信用户请求资源 --> 微信服务器接收用户的发来信息 --> 由微信服务器中转给我们自己的微信服务器(例如自己买的阿里云、

腾讯云等其他配置的web服务器,配置成自己微信服务器)。

2)发送消息(响应消息)

  我们自己的微信服务器发送消息 --> 经过微信服务器 --> 由微信服务器中转给微信用户。

3)对普通文本消息类型的处理流程

  普通微信用户发送文本消息到微信服务器,微信服务器将发送post请求到我们自己的服务器(带上signature,timestamp,nonce三个参数),

部署在我们服务器的程序,首先要获得用户发过来消息的参数(FromUserName、ToUserName、MsgType、CreateTime、Content),

然后将要响应的消息打包(TextMessage对象,这个对象就是响应消息的一些参数),并将TextMessage对象的数据转为符合要求的xml数据进行响应即可。

 

3、微信文本消息接口-代码实现

注意:这里的代码是第四节的开发者模式与请求验证的代码基础上进行编写。

1)在ValidationServlet这个servlet类中重写doPost方法,主要是获取signature、timestamp、nonce这三个字段,掉用之前请求验证方法checkSignature是否通过,通过则进行解析普通用户请求的参数到微信服务器,经微信服务器中转到自己的微信服务器的数据进行解析 。重点看doPost方法:

 

package com.aixunma.wechat;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.aixunma.wechat.util.ValidationTool;
/**
 * 用来请求微信服务器请求验证
 * <p>类的描述:</p>
 * <p>@Description: TODO</p>
 * <p>@author 小海</p>
 * <p>@time:2017年4月27日 下午10:14:10</p>
 * <p>@Vesion: 1.0</p>
 */
public class ValidationServlet extends HttpServlet{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    
    /**
     * 微信基本配置请求验证
     * 当开发者通过微信公众

微信二次开发sdk使用教程--手机微信上回复好友的聊天消息通知服务端(代码片段)

微信二次开发sdk使用教程--手机微信上回复好友的聊天消息通知服务端caseWeChatTalkToFriendNotice://手机上回复好友的聊天消息log.debug("socket:msgtype=WeChatTalkToFriendNotice");weChatTalkToFriendNoticeHandler.handleMsg(ctx,msgVo);break; 查看详情

微信二次分享图片不显示

1、微信服务号2、安全域名 3、签名4、微信JS接口签名校验工具 查看详情

微信二次开发菜单扫扫码事件的事件推送用java怎么实现

参考技术A创建一个二维码的ticket,关于一些参数可参数官网上的文档,这里直接上代码吧defget_ticketwx_mp_userappid=wx_mp_user.app_id#公众号app_idsecret=w 参考技术B是公众号开发吗?推荐去看看jfinal-weixin,这个做公众号开发极其简单。... 查看详情

.net之微信企业号开发回调模式的接口开发

一、前言  微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息。为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微... 查看详情

php之微信公众号发送模板消息

讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0)。先看一下效果,如图:就是类似于这样的,下面讲一下实现过程:第一步:微信公众号申请模板消息权限:立即申请:申请过程就不说了,提交并且... 查看详情

消息推送之微信模板消息

参考技术A微服务中消息推送模块,一般消息推送分为微信模板消息、阿里云短信、APP消息推送,APP消息推送选择个推,本文主要介绍微信消息模板WxTemplateData.java微信消息的服务实现类WxTemplateDataController.java微信模板的建立可以... 查看详情

springboot项目之微信支付功能实现详细介绍

对接微信支付功能主要有以下几个步骤,而其第一个关键点就是获取OpenID,在这里介绍两种获取方式:   一、微信授权微信网页授权如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获... 查看详情

微信二次开发与微信小程序有区别吗?

自从微信推出小程序以来,很多人除了对小程序功能的期待之外,也在疑惑着这个小程序跟我们一直以来使用的微信公众号到底有什么区别,以下是仕航软件对于这个问题做出的一些整理。微信公众号的二次开发,相比原生app来... 查看详情

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

绪:因工作须要,近期開始学习Nodejs,之前隐隐约约听到过nodejs但没有实际见到过,仅仅好google了;至于什么是nodejs,能做些什么,有多么好。或者有哪些弊端我这里就不多说了,由于我也说不来。注:因工作系统平台是windows环... 查看详情

微信公众号怎么二次开发

微信二次开发首先要说的是,微信开发者工具,它不是我们写代码的IDE,它的作用只是一个调试工具,供我们调试,查看,我们程序中调用微信本身提供的js-sdk时候产生的信息或者错误提示。如何把代码放到微信开发工具中查看。有两种... 查看详情

带你装逼带你飞之微信群聊匿名消息

带你装逼带你飞之微信群聊匿名消息     记得八月份网上有个IOS版的微信匿名消息插件,可是2天后被封了。。。废话不说,其实封的是插件,不是原理~       九月份,UWP微信出来了(... 查看详情

java微信公众平台开发--文本及图文消息回复的实现(代码片段)

上篇我们说到回复消息可以根据是否需要上传文件到微信服务器可划分为【普通消息】和【多媒体消息】,这里我们来讲述普通消息的回复实现,在消息回复中存在一个关键字段【openid】,它是微信用户对于公众号的唯一标识,... 查看详情

nodejs微信消息收发接口的实现

参考技术A1.首先需要在公众号的开发者中心启用服务器配置2.如果有用户发送消息给公众号,微信服务器就会发送一个post请求到服务器配置里的URL,只要接收post过来的xml内容再以xml格式返回就可以实现消息的接收和回复 查看详情

微信公众号开发系列-发送客服消息

下面是做微信公众号开发用到最多的两个客服消息发送类型,文本信息和图文信息。1、发送文本消息{"touser":"OPENID","msgtype":"text","text":{"content":"HelloWorld"}}參数是否必须说明access_token是调用接口凭证touser是普通用户openidmsgtype是消... 查看详情

wex5开发基础之微信支付

一、企业开通微信支付条件      微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。微信支付以绑定银行卡的快捷支付为基础,向用户提供安全、快捷、高效的支付服务。 ... 查看详情

android之微信登录

参考技术A1.获取appId和secret2.通过appId和secret调微信接口获取code3.通过code和getAccessToken()方法再获取accessToken和openId。(通过unionId即可区分微信用户实现登录)4.当然也可以通过unionId与用户手机号进行绑定。5.通过access_token和openid... 查看详情

.net之微信企业号开发企业号人员身份认证与开发

...名密码进行登录的。。。2333但是,这样所就完全失去了微信企业号的意义,本来进入微信企业号的时候,就已经对人员身份进行认证了,你这里再让别人登录,不是显得多余么?于是,需要考虑的是,如何获取微信企业号中用... 查看详情

如何在微信公众平台上实现支付功能/微信支付

微信公众平台,简称weChat。曾命名为“官号平台”和“媒体平台”,最终定位为“公众平台”,这个新的平台增加更优质的内容,创造更好的粘性,形成一个不一样的生态循环,是平台发展初期更重要的方向。利用公众账号平台... 查看详情