微信服务器向公众号推送消息或事件后,开发者5秒内没有返回

问题

Appid: xxxxx
昵称: xxxxx
时间: xxxxxxx
内容: 微信服务器向公众号推送消息或事件后,开发者5秒内没有返回
次数: 5分钟 80次
错误样例: [OpenID=xxxxxx][Stamp=1616565412][3rdUrl=https://xxxxxx/wechat][IP=114.80.187.67][Event=Template Send Job Finish]
报警排查指引,请见: https://mmbizurl.cn/s/MpkaZb8yg

出现原因

官方:

微信服务器向开发者服务器推送消息或事件,开发者5秒内没有返回。请求超时时,报警消息会提供第一次出现请求超时的时间,开发者IP和消息类型。请开发者确认:

a)该IP是否有误 b)该IP是否接收到报警消息给出的该消息类型的请求 c)该请求是否处理时间过长

传送门:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Warning_Message_Troubleshooting_Guide.html

自我排查:
用户反馈也无消息通知————> 排查数据消息通知是否产生(是)————>是否正常发送(否)
提示:reach max api daily quota limit

官方:
开发者可以登录微信公众平台,在帐号后台开发者中心接口权限模板查看帐号各接口当前的日调用上限和实时调用量,对于认证帐号可以对实时调用量清零,说明如下:

1、由于指标计算方法或统计时间差异,实时调用量数据可能会出现误差,一般在1%以内。

2、每个帐号每月共10次清零操作机会,清零生效一次即用掉一次机会(10次包括了平台上的清零和调用接口API的清零)。

3、第三方帮助公众号调用时,实际上是在消耗公众号自身的quota。

4、每个有接口调用限额的接口都可以进行清零操作。

解决

重置通知次数(解决警告通知)

修改返回数据格式
修改前返回值为"success",按官方格式修改:

在模版消息发送任务完成后,微信服务器会将是否送达成功作为通知,发送到开发者中心中填写的服务器配置地址中。

送达成功时,推送的XML如下:

       <xml>
       <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>
       <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>
       <CreateTime>1395658920</CreateTime>
       <MsgType><![CDATA[event]]></MsgType>
       <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
       <MsgID>200163836</MsgID>
       <Status><![CDATA[success]]></Status>
       </xml>

参数说明

参数 说明
ToUserName 公众号微信号
FromUserName 接收模板消息的用户的openid
CreateTime 创建时间
MsgType 消息类型是事件
Event 事件为模板消息发送结束
MsgID 消息id
Status 发送状态为成功

传送门:http://caibaojian.com/wxwiki/0a1f4584cc40643e833a7d9f73d6e056cd9bef45.html

「当你在凝视深渊的时候,深渊也正在凝视着你」

Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein.

参考资料:
微信官方文档
https://developers.weixin.qq.com/doc/

在Java中,向微信公众号推送消息通常涉及到以下几个步骤: 1. 注册并获取API权限:首先,你需要在微信公众平台开发者中心注册一个公众号,并获得AppID、AppSecret等必要的授权信息。 2. 安装官方SDK:微信提供了Java版的微信开放平台API SDK(Wechat Open Platform API),可以从其官网下载通过Maven引入。 3. 配置OAuth2.0授权:通过SDK实现OAuth2.0授权流程,用户点击授权后,会将授权码带回你的服务器,换取access_token用于后续的请求。 4. 发送消息:利用access_token,你可以调用微信的API来发送不同类型的消息,如文本、图文(markdown格式)、语音、视频等。常用的方法包括`WeixinApi.sendTextMessage()``WeixinApi.sendNewsMessage()`。 5. 请求验证:确保每次请求都携带合法的签名和时间戳,以防止数据被篡改。可以使用微信提供的工具对参数进行加密校验。 6. 异常处理:处理可能出现的各种错误,比如网络问题、认证失败、消息格式错误等,并提供适当的错误反馈给用户。 以下是简化的伪代码示例: ```java // 假设已导入微信SDK包 WeixinApi wechatApi = new WeixinApi(appId, appSecret); String accessToken = getAccessToken(); // 获取access_token try { Map<String, String> params = createMessageParams(); // 创建消息参数 wechatApi.sendMessage(accessToken, params); // 发送消息 } catch (WeixinApiException e) { handleException(e); // 处理异常 } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三省同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值