1. HttpEndpoint接收不到消息怎么办?如何进行快速调试?
- 强烈建议使用辅助开发工具进行调试,可确定是否是HttpEndpoint接收消息的逻辑有问题。使用辅助开发工具可分别针对鉴权逻辑以及处理消息的逻辑进行调试。
- 如果通过辅助开发工具确认HttpEndpoint可以正常接收推送请求,但仍然无法接收线上服务的推送消息,建议使用日志管理功能,能够获取消息服务接收发布的消息以及推送消息所有相关的日志,可通过日志查看消息服务的推送过程以及结果。也可通过加入MNS旺旺客户技术支持群(51222373),专业的技术人员会给您提供帮助。
2. 如何确认推送请求中x-mns-signing-cert-url所标识的证书地址是MNS官方给出的?
3. HttpEndpoint端验权时每次远程请求公钥证书会比较耗时,如果提高性能?
4. HttpEndpoint签名认证失败,如何调查?
这里列举遇到过的一些问题:
- 用户HttpEndpoint使用了某些HttpServer框架,对HttpHeader的Key进行了格式转化,导致用户在签名认证的时候拿到的MNS自定义的HttpHeader的Key已经发生了变化(注:MNS自定义的Header的Key是全小写的),最常见的是变成了首字母大写。针对这种情况,只需要在认证之前,将HttpHeader的Key全部转为小写就可以了。比如:
5. 订阅成功后,没有收到消息,并且日志中也查不到相关记录,怎么查?
这里列举下可能的一些问题:
- 确认下在订阅时,是否制定了FilterTag,如果制定了,在PublsihMessage时,不指定MessageTag的话,该消息是会被过滤掉的,从而不会被推送(消息日志中也查不到该记录)。
6. 使用PHP编写HttpEndpoint时接收不到消息体,怎么玩?
确认下您的处理逻辑中,是否是直接使用 $POST 来获取HttpBody的,如果是的话,需要改成这种方式: