问题描述:

在进行微信服务号开发时,通过微信后台成功设置了自己服务器的地址,但是发现在微信一发送消息马上返回“该公众号暂时无法提供服务,请稍后再试”,而一开始是可以的,而且PHP入口文件居然没有被执行。。。

这个问题怪异之处在于,一开始微信号还是正常返回消息的。但是后来看到的表象是微信总是返回“该公众号暂时无法提供服务,请稍后再试”,而查看nginx下的access.log是可以看到有请求过来的。

140.207.54.79 - - [08/Jan/2015:20:46:58 +0800] "POST /?signature=843506c7d2451087bf7&timestamp=1420721218&nonce=1521817541 HTTP/1.0" 499 0 "-" "Mozilla/4.0"

排查过程:

PHP代码问题?

一开始以为是PHP代码出错,或者是有异常,但是看了nginx下的error.log并无纪录,因此排除。

PHP环境问题?

有出现上面问题前,最近的操作是对php.ini文件进行了配置的更改,但是查看了一下PHP的相关进程,运行正常。而且,用脚本来模拟微信的请求也是可以得到正确的预期的返回。因此排除。

相关的脚本如下:

#!/usr/bin/env php

/**

* 微信服务号辅助脚本

*

* 模拟向服务器发送微信文本消息

*

* @author dogstar 2015-01-08

*/

if ($argc

echo "Usage: $argv[0]  \n\n";

die();

}

$host = $argv[1];

$content = $argv[2];

$ch = curl_init();

$xml= '

1419757723

6097812988731466682

';

$header[]="Content-Type: text/xml; charset=utf-8";

$header[]="Content-Length: ".strlen($xml);

curl_setopt($ch, CURLOPT_URL, $host);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

curl_setopt($ch, CURLOPT_HEADER, 0);

$res = curl_exec($ch);

echo $res, "\n\n";

调用和结果如下:

$ ./send_wechat_text.php http://XXX.com.cn/ demo

1420723897

0

Nginx环境问题?

在尝试使用tcpdump来抓包的同时,忽然意识到可以看下Nginx返回的状态码,果然不是200,而是499!网上稍微查了一下,499的两种原因是:客户端放弃了请求或服务器断开了请求。但显然是服务器没有超时不会自己断开连接,也没超过微信规定的5秒内响应。那到底是什么原因致使客户端放弃了请求呢?!!

域名解析问题!

最后发现(通过一位在上海的同学),绑定的域名在广东 内访问是正常的,但在上海访问却提示需要做备案。而且对应 的返回也是499。提示如下:

最终解决:

通过重新绑定域名,问题得以解决。

499服务器响应,微信服务号开发 - Nginx请求返回499 - 问题排查与解决相关推荐

  1. 微信服务号开发的完整人性化版攻略

    前言: 本次要讲述的是一个本人完整微信服务号开发的经验分享,微信服务号的作品:请搜索微信号:zjaisino,名称:爱信诺Aisino一站式服务平台.(这里声明,这不是打广告,只是为了方便各位开花攻城 ...

  2. 【微信服务号开发】01.接入指南

    前言 当作为小白,来开发微信的时候,只依据官方文档来开发是很痛苦的,怎么配置,怎么编写代码文件,怎么让映射到外网访问,问题很多,比较痛苦. 下面内容来解决这些痛点,有不懂的问题,可以在下面留言评论哦. ...

  3. 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...

  4. 微信服务号开发时获取授权遇到的问题

    1.问题 (遇到的问题)微信服务号开发时获取授权遇到的问题 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint: [59FKq ...

  5. Springmvc集成jfinal微信 微信服务号开发

    最近研究微信服务号开发,发现jfinal家封装的SDK还是不错的,于是就定下来用它了. 那么问题来了:git上有demo,那么如何集成到自己的项目中呢?研究研究呗.我们框架使用的是springmvc, ...

  6. 微信服务号开发-整合微信支付

    最近的项目在对接微信支付,所以抽出一些时间,将方法总结一下: 欢迎加群交流:724225958 官方开发文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi. ...

  7. 微信公众号导入失败服务器错误代码,微信公众号开发之上传素材文件errcode:41005错误...

    前言 前段时间,因为腾讯云的服务器需要重装呐,原以为本地有一份微信公众号开发的代码,然后就没有备份直接重装了服务器,WTF,结果发现本地并没有备份.(给自己的蠢死了!!) "errcode& ...

  8. 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码

    因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...

  9. 微信服务号开发----创建个性化菜单

    官方链接http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html 1.目的:让公众号的不同用户群体看到不一样的自定义菜单 ...

  10. 企业微信服务号,安装应用提示 该应用已下线 已解决

    企业微信服务号,安装应用提示 该应用已下线 解决方案 最近学习微信服务商开发应用,在调试接口阶段都很顺利,但是到了生成安装授权地址的时候出现了问题,在浏览打开地址的时候,提示"该应用已下线& ...

最新文章

  1. 全新WiFi技术问世 更适合智能家庭和物联网
  2. Spring切点表达式常用写法
  3. 部署DNS服务和管理DNS
  4. 段式存储、页式存储。
  5. 利用Fiddler模拟POST请求
  6. 团队软件库_新环节!新设备!新软件! ——天津市物流大赛创新大揭秘!
  7. CSS基础(part9)--CSS背景
  8. python学习第19天
  9. 计算机知识问答一站到底,一站到底的答题规则是什么
  10. 在Hadoop上安装HBase
  11. windows10 搜索桌面搜索功能失效的解决
  12. application/x-www-form-urlencoded接口响应报文中文乱码
  13. CentOS下安装两个或多个Tomcat7
  14. 69期-Java SE-004_循环、数组-001-002
  15. [转] Java之ACM速成
  16. Atitit.跨语言系统服务管理器api兼容设计
  17. 硬件设计规范化 - 原理图和 PCB 的版本号命名规则
  18. html界面嵌入网易云,使用flex进行网易云音乐界面构建和布局解析(1)
  19. 蓝牙耳机测试软件apk_蓝牙5.0手机如何测试检测分辨?这款免费APP帮大忙
  20. JavaScript跨域请求

热门文章

  1. ABO血型系统遗传规律表
  2. 故障:ID29 的 KDC 警告日志
  3. Leetcode实战:121.买卖股票的最佳时机
  4. 【微信公众号】微信公众号授权出现的常见问题解决方案
  5. 一文读懂随机森林的解释和实现
  6. 金武彩印机械设备有限公司仓储管理系统设计与实现
  7. 集成学习方法之Bagging,Boosting,Stacking
  8. 如何使用Navicat将psc备份导入到MySQL
  9. 网络爬虫技术是什么,网络爬虫的基本工作流程是什么?
  10. 链家二手房采集数据分析