微信公众平台--1.开发者接入

微信开通服务号,并且申请成为开发者,获取到appid和appsecret后,需要配置接入。

填写服务器配置

1. URL(服务器地址)

2. Token(令牌)

3. EncodingAESKey(消息加解密密钥)

4. 消息加解密方式:

  明文模式(不使用消息加解密功能)

  兼容模式(明文、密文共存,方便开发者调试和维护)

  安全模式(消息包为纯密文,需要开发者加密和解密,安全系数高)

验证服务器地址的有效性(URL)

开发者提交消息后,微信服务器将发送GET请求到填写的服务器地址URL

开发者通过检验signature对请求进行校验(校验方式在此不做描述)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

private function checkSignature()//检验signature的PHP示例代码
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];	
        		
	$token = TOKEN;
	$tmpArr = array($token, $timestamp, $nonce);
	sort($tmpArr, SORT_STRING);
	$tmpStr = implode( $tmpArr );
	$tmpStr = sha1( $tmpStr );
	
	if( $tmpStr == $signature ){
		return true;
	}else{
		return false;
	}
}

第一次填写验证时候url里面包含的参数是这样的:

?signature=855683526c67568fea8bca2b9a3ca76a04626784&echostr=405235951829235694&timestamp=1457659914&nonce=1534656649

之后推送事件的时候接受的参数是这样的:

?signature=648f902f65c63fe8c1ddf38ccd70fa00ca2e6103&timestamp=1457659741&nonce=796965601

通过对比上面url里面的参数,将验证和处理事件推送区分开就ok了。

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

用户每次向公众号发送消息或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应。

用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID

微信公众号接口只支持80接口

原文地址:https://www.cnblogs.com/wyzs/p/5163049.html