• 微信公众平台--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接口

  • 相关阅读:
    iframe跨域访问
    Discuz教程:X3.1-x3.2后台admin.php防止直接恶意访问
    JS打开新窗口的2种方式
    怎么让alert弹出框的内容可以换行?
    php判断IE浏览器
    一个表单的多按钮提交
    document.form.command.value
    如何区分处理两个提交按钮
    javascript window.confirm确认 取消对话框实现代码小结
    asp.net mvc 在View中获取Url参数的值
  • 原文地址:https://www.cnblogs.com/wyzs/p/5163049.html
Copyright © 2020-2023  润新知