微信开发 收不到消息_微信开发 收不到文本消息 - CSDN
  • 最近做了一个微信客服的后台(基于Springboot),需要自动回复用户的消息,但是,其中遇到有些坑,这里稍微讲一下(前提你已经在小程序的后台配置了相关的参数,如图1) 图1 后台接口 1.获取access_token ...

    前言

    最近做了一个微信客服的后台(基于Springboot),需要自动回复用户的消息,但是,其中遇到有些坑,这里稍微讲一下(前提你已经在小程序的后台配置了相关的参数,如图1)

                                                                           图1

    后台接口

    1.获取access_token

    根据微信后台文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/getAccessToken.html

    文档里说,不能经常获取,否则就要出错,因此,这里设置定时任务,每一个小时去获取一次。在Springboot中可以使用@Scheduled(fixedDelay = 60 * 60 * 1000)这个注解来实现定时任务,这里代码就略过了

    2.接口

    这里其实配置两个接口来和微信进行通信,1,验证你的服务器地址URL,就是需要在图1,请求方式是GET,具体的可以看微信的文档;2,接收用户发来的消息,其实地址也是图1中的URL是一样的,只是这个请求方式是POST,见代码

    /**
     * @author helang
     */
    @RestController
    public class WxTestController {
    
        /**
         * 接收微信后台发来的用户消息
         * @return
         */
        @RequestMapping(value = "wx/message", method = RequestMethod.POST)
        @ResponseBody
        public String receiveMessage(@RequestBody Map<String, Object> msg) {
            //token
            sendMsToCustomer("token",msg.get("FromUserName").toString());
            return "success";
        }
    
        /**
         * 微信校验后台服务器
         * 需要做一些sha1等判断后,如果相同的话,直接返回echostr,
         * 这里代码略过,直接返回echostr
         * @return
         */
        @RequestMapping(value = "wx/message", method = RequestMethod.GET)
        @ResponseBody
        public String checkValid(String signature, long timestamp, String nonce, String echostr) {
    
            return echostr;
        }
    
        /**
         * 发送消息给用户
         * @param fromUserName 用户的openId
         */
        private void sendMsToCustomer(String access_token, String fromUserName) {
    
            RestTemplate restTemplate = new RestTemplate();
            String messageJson = "";//
            //access_token
            String result = restTemplate.postForEntity("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=xxxxxx",
                    messageJson, String.class).getBody();
        }
    }

     

    问题

    如上图的接收消息的接口receiveMessage(),当我使用@RequestBody  Bean的时候,始终无法接收到消息,微信后台配置的是JSON格式的交互啊,难道我哪里错了?由于配置的是线上服务器,我这边抓包是很困难的,一直无法查清楚微信给发来的http请求的内容是什么,导致困扰了一两天。功夫不负有心人,我多方尝试,那个参数类型,将它从Bean改为map后,终于可以收到微信发来的消息内容了

    总结

    这个微信后台开发,只要按照微信官方文档来做,其实是很简单的。遇到这个参数问题,能够抓包看,就抓包,当不能抓包的时候,多多尝试其他方法

     

     

     

     

    展开全文
  • 问题描述:微信公众号开发之点击菜单按钮,有的菜单获取不到推送消息,有的可以,每个菜单获取推送消息代码都是一样的,因此排除推送消息代码错误。 解决方案:待更新。。。 问题在于 获取素材列表每次有数量限制,...

    问题描述:微信公众号开发之点击菜单按钮,有的菜单获取不到推送消息,有的可以,每个菜单获取推送消息代码都是一样的,因此排除推送消息代码错误。
    解决方案:待更新。。。
    问题在于 获取素材列表每次有数量限制,没有获取完。应该循环获取,直到获取完毕。

    展开全文
  • 当我们成为开发者之后,用户向公众账号发送消息或者用户的一些操作,微信服务器会推送XML数据包开发者填写的URL上。这些数据主要分为两类: ①消息 用户在发送消息后,微信就会推送一个xml数据包给开发者,主要...

    当我们成为开发者之后,用户向公众账号发送消息或者用户的一些操作,微信服务器会推送XML数据包到开发者填写的URL上。这些数据主要分为两类:

    ①消息

    用户在发送消息后,微信就会推送一个xml数据包给开发者,主要分为文本、图片、语音、视频、小视频、地理位置、链接,具体结构可以查看微信官方文档。我们可以在接收到这个这个数据包之后,对它做一个处理转变成

    我们可以使用的数据。

    注:1.$_GLOBALS["HTTP_RAW_POST_DATA"]用来获取微信post过来的数据,主要因为$_POST只能接收php能识别的数据,所以用这个方法获取到的是原始的POST数据。

      2.simplexml_load_string将xml载入一个对象中,方便以后调用。

      3.获取到这些数据后,可以做出对应的逻辑处理。但是请在5秒内处理并回复,否则就会发起新的请求进行重试,如果不回复或者回复异常数据就会报错“该公众号暂时无法提供服务,请稍后再试”。所以如果不能在

       5秒内回复可以直接选择回复success或者空字符串。

    ②事件

    事件的推送和消息推送基本相似,但是事件加了一个关键的节点用以和消息区分,就是event。在消息中MsgType是text而在事件中则是event,并且会用一个event节点来显示是什么事件,我们可以根据事件的类型来做出

    对应的逻辑处理,事件的具体结构可以查看微信官方文档。

     

    转载于:https://www.cnblogs.com/lina520/p/6137116.html

    展开全文
  • 微信服务号模版消息重复发送或消息接收不到的解决方案问题描述解决思路 问题描述 前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模版并...

    微信服务号模版消息重复发送或消息接收不到的解决方案

    问题描述

    前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模版并开发上线。
    我们平台是做线上教育的,有直播功能,每次直播前会向学员推送模版消息提醒用户直播时间和链接。
    但是前几天发现一个问题,因为要推送的学员量较大,调用微信接口推送模版消息时,会出现部分学员重复发送,部分学员接收不到的问题(开始的时候微信向我推送过警告,我没在意)。
    看到网上其他同行也遇到类似的问题,因此,针对该问题,我的解决思路我做一个总结。

    解决思路

    原本做这个功能我用到两个表,一个是user,存放用户信息,其中openid 用来向微信推送模版消息,其他字段暂且不提。另一个表是用来存放微信模版的,拿到openid和模版消息,调用微信模版消息接口,即能推送成功。但是短时间内推送过多的消息,微信会报警,具体的报警信息我忘记了,然后就会出现一部分学员收到多条消息,一部分学员收不到消息。
    解决这个问题我的思路是减少单位时间内向微信推送消息的频率,每推送一条消息,sleep(500)毫秒(根据个人需要设定时间),再推送下一条。要实现这个功能,需要一个中间表去存储已推送和未推送的user及相应的状态。
    表结构如下:
    id:主键id
    user_id: 用户id,因为要用到其他用户信息,故这里存放id,也可以直接存放openid
    msg_id:模版消息的id,根据该id去模版消息表中取相应的数据
    status:状态,分为成功、失败、未推送、发送中(可选)
    写一个定时任务,每次根据状态,取出第一条未推送的,调用微信接口,然后根据返回状态去update这张表,把状态更新掉即可。
    注1:status设置发送中的状态是因为如果一个消息正在发送,下一个定时任务就开始执行了,检测出有发送中状态的,可以直接返回,等待下次定时任务的执行。也可以不设置发送中的状态,那就需要在定时任务上设置锁了,如果如果检测到上一个定时任务没有执行,下一个就不能开始。
    粘上我的定时任务作为参考,具体的设置可自行百度。

    */1 * * * *  flock -xn /tmp/sendmessage.lock -c '/usr/local/php/bin/php  /项目目录/artisan SendMessage >>/tmp/sendTemp.log 2>&1'
    

    注2:这个表如果担心后期过大,可以定期清理数据。如果不需要处理发送失败的学员,发送完毕后可立刻清空该表。
    –the end–
    有不明白的或者有更好解决方案的欢迎留言讨论

    展开全文
  • 微信公众号开发--接收与回复消息(Java)

    万次阅读 多人点赞 2016-12-27 11:43:59
    最近公司在开发微信项目,所以自己也试着申请了个人的订阅服务号,实现了通过微信接收信息转发至Java后台解析并回复的消息的简单功能,在还没忘记的时候记录一下,以便日后查阅,并且贡献出代码希望能给大家一个参考...
  • 微信公众号开发之接收与发送消息

    万次阅读 2019-08-29 12:05:43
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! ... 一丶概论 公众号接收与发送消息 ...如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证...
  • 微信公众号开发接收不到xml数据

    千次阅读 2018-05-22 18:35:03
    $GLOBALS['HTTP_RAW_POST_DATA']一直接收不到微信发过来的XML数据改用file_get_contents('php://input')即可接收
  • 微信企业号开发:接收消息和事件

    千次阅读 2015-08-04 13:51:00
    接收消息和事件,其实都是微信post我们配置的URL的消息。接收普通消息就是用户给公众号发送的消息,事件是由于用户的特定操作,微信post给我们的消息。被动响应消息是我们收到微信post过来的普通消息或者是...
  • 配置微信公众号当普通微信用户向公众号发送消息或者与微信公众号进行互动触发某些事件时,微信服务器将会把这些消息或者事件以XML数据包格式POST开发者在微信公众号管理平台中配置的服务器地址URL上。
  • 微信企业号接收消息(使用SpringMVC)

    万次阅读 2014-10-19 21:29:00
    微信企业号接收消息(使用SpringMVC) 将应用设置在回调模式时,企业可以通过回调URL接收员工回复的消息,以及员工关注、点击菜单、上报地理位置等事件。 在接收事件后,企业可以发送被动响应消息,实现员工与企业...
  • python微信公众号接收回复用户消息

    千次阅读 2019-08-06 15:28:04
    首先,微信用户发送消息给公众号, 消息是先是发送到微信服务器, 后面再由微信服务器转发公众号, 同理, 当公众号收到微信用户消息进行回复时, 也是先发送到微信服务器, 再由微信服务器转发给指定微信用户...
  • Java微信公众平台开发收不到设备消息,可能的原因是什么?设备事件接收没问题,设备消息以前也能收到过。
  • 作者:陈惠,叩丁狼教育高级讲师。原创文章,转载请注明出处。上一篇文章我们已经实现了...文档中已经告诉我们,当普通微信用户向公众账号发送消息时,微信服务器会把该消息封装成XML数据包通过POST的方式发送开...
  • 微信开发 POST接收不到数据

    千次阅读 2014-07-18 10:00:02
    微信公众平台上自定义菜单的事件推送,文档上说会POST这些个数据 xml> ToUserName>ToUserName> FromUserName>FromUserName> CreateTime>123456789CreateTime> MsgType>MsgType> Event>Event> EventKey>EventKey> ...
  • 近日在给一个客户开发一个微信服务号时,碰到了一个问题:在微信公众平台的【基本配置】中设置好URL等参数据,点【提交】验证提示通过,但是在之后却死活接收到微信用户关注的事件数据,也接收不到用户发送的消息...
  • 微信开发(接受普通消息

    千次阅读 2016-10-04 15:23:54
    2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-...
  • 官方文档给出的api中有那么几个重要信息,第一个微信是将手机发送给微信服务号的消息,以Xml 的形式又以Post 的请求方式下发给我的自己填写的URL上。 画个图好理解一下 那么有了这几个内容,我们就很容易获取...
  • 接收普通消息主要包括:文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。XML数据包结构和相关参数如下: 1、文本消息 1348831860 1234567890123456 参数
  • [037] 微信公众帐号开发教程第13篇-图文消息全攻略

    万次阅读 多人点赞 2013-07-25 22:35:13
    已经有几位读者抱怨“柳峰只用文本消息作为示例,从来提图文消息,都知道图文消息该如何使用”,好吧,我错了,原本以为把基础API封装完、框架搭建好,再给出一个文本消息的使用示例,大家就能够照猫画虎的,...
  • 微信开发之发送消息接口

    万次阅读 2016-12-25 21:36:18
    发送消息,是指用户公众号向用户发送相应形式的消息。根据微信开发文档,由以下四种形式:被动回复,群发接口,客服消息接口以及模板消息接口。本文将基于Java语言以及个人微信测试号,说明被动回复、客服消息接口...
1 2 3 4 5 ... 20
收藏数 72,528
精华内容 29,011
关键字:

微信开发 收不到消息