PHP微信公众平台开发:配置、微信api接入验证

微信公众平台基础开发步骤主要有三步:

1、填写服务器

2、验证服务器地址的有效性

3、依据接口文档实现业务逻辑

    第一步大家应该都不陌生,其实就是在开启开发者模式后需要配置的自己程序所在服务器的路径(必须得是可以公网访问的域名或ip地址),例如http://www.abc.com/weixin/index.php,配置这个其实就是告诉微信服务器,每次微信端发送过来的处理以后就经过你自己的程序去运行,之后反馈处理结果,而不是像以前统统是交给微信服务器做处理。在填写好了相关配置后,就到了第二步的服务器地址有效性验证。

第二步是,当我们提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,我们通过自己程序的处理,返回给微信服务器所需要的验证信息,当验证通过时,接入微信api则生效。微信服务器发送出GET请求有4个参数,signature微信加密签名、echostr随机字符串、timestamp时间戳、nonce随机数,我们在我们自己的代码中需首先获取到这四个参数,然后根据相关要求对这些数据做出处理,流程如下:

校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 获得加密后的字符串可与signature对比,标识该请求来源于微信
比如说我们的项目入口文件是index.php的index方法,在这里我们就需要按要求写出处理逻辑

//微信api接入验证 
public function index()
{
	//获得几个参数
	$token     = 'YourTokenString';//此处填写之前开发者配置的token
	$nonce     = $_GET['nonce'];
	$timestamp = $_GET['timestamp'];
	$echostr   = $_GET['echostr'];
	$signature = $_GET['signature'];
	//参数字典序排序
	$array = array();
	$array = array($nonce, $timestamp, $token);
	sort($array);
	//验证
	$str = sha1( implode( $array ) );//sha1加密
	//对比验证处理好的str与signature,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
	if( $str  == $signature && $echostr ){
		//第一次接入微信api有echostr这个参数,之后就没有了
		echo  $echostr;			
	}
	else{
		//接入成功后的其他处理
		code...
	}
}
代码填写完成后,回到第一步的配置信息填写,所有信息填写完毕点击提交,微信服务器就会根据我们写的url路径去验证微信api是否接入成功,接入成功就会提示token验证成功,这时候咱们的基础配置就算完成啦!

还有很重要的一点,微信公众号提供的api接口只支持80端口,这就需要我们在配置自己的服务器的时候要么关闭防火墙,要么在防火请中配置打开80端口,同时保证像php、mysql、nginx或者apache这些其它进程不会占用80端口。初始就是这些,如果在配置方面还有其他问题,也欢迎大家留言和我讨论,我也会尽自己最大的努力和大家一起解决遇到的问题的。

你可能感兴趣的:(php,CI框架,项目心得,微信公众平台开发)