微信开通服务号,并且申请成为开发者,获取到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将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应。
用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID
微信公众号接口只支持80接口