问题点一:用户点击菜单推送图片。过几天后发现点击菜单时,提示“微信服务号无法提供服务”?
原因:之前是通过微信调试工具里面的上传媒体文件接口上传图片,然后获得MediaId。
这里是临时素材的上传接口,素材上传成功后只能在服务器存放三天,三天后就提示“微信服务号无法提供服务”。
解决办法:通过微信后台的素材管理网站上传永久素材,然后使用获得永久素材列表接口获取mediaId。
注:获得永久素材mediaId后,去console后台配置,发现仍然无法提供服务。检查很久后发现,原来是后台配置MediaId时,多加了一个换行,导致微信识别不出来。
问题点二:发版后发现微信服务号无法使用,点击提示“微信服务号无法提供服务,请稍后再试”?
通过查看日志后发现问题为每次解密的时候就会对微信提供的随机戳进行校验,若随机戳不等于43位,就会报上面的错误。
原因:console后台存放在redis中和数据库中的随机戳都是加密的,初步怀疑的原因是重启后微信在解密时,从redis中拿的随机戳没有解密,依然是加密的。
解决方法:第一次碰到这个问题后,通过重启dubbo解决了。结果第二天发版,又出现同样的问题。
第二次解决方式为直接将console后台的加密随机戳改成明文了,并且在微信解密从redis中拿取随机戳的时候加入一个“判断是否加密,如果加密则解密”的过程。
问题三:微信服务号推送文本消息或者模板消息,里面只支持<a href></a>标签,不支持<br>、<p>和 \n等标签,换行直接按enter就行。需要注意一下。
注意:由于emoji图标表情代码的编码版本问题,可能存在苹果IOS系统下会无法显示的情况;
emoji图标表情代码大全