zoukankan      html  css  js  c++  java
  • 微信开发(1)–开发模式

    一、填写服务器配置

    进入微信后台,进入开发-基本配置-修改配置
    fasdf
    W(_38]I``S)_3H)$FT`113V

    之后就填写自己服务器地址url 和自己的token
    _7`(8X7X)FZ5P]0HALWKDGH

    二、验证消息来自微信服务器

    我们配置好上面的步骤提交后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示gei

    那么 我们检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

    1)将token、timestamp、nonce三个参数进行字典序排序

    2)将三个参数字符串拼接成一个字符串进行sha1加密

    3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

    好了,以上是服务器接入微信的流程,下面我们开始上代码。

     1 public function index(){
     2 
     3 define("TOKEN", "weixin");
     4 
     5 if (isset($_GET['echostr'])) {
     6 $this->valid();
     7 }else{
     8 $this->responseMsg();
     9 }
    10 
    11 }
    12 
    13 public function valid()
    14 {
    15 $echoStr = $_GET["echostr"];
    16 if($this->checkSignature()){
    17 header('content-type:text');
    18 echo $echoStr;
    19 exit;
    20 }
    21 }
    22 
    23 private function checkSignature()
    24 {
    25 $signature = $_GET["signature"];
    26 $timestamp = $_GET["timestamp"];
    27 $nonce = $_GET["nonce"];
    28 
    29 $token = TOKEN;
    30 $tmpArr = array($token, $timestamp, $nonce);
    31 sort($tmpArr, SORT_STRING);
    32 $tmpStr = implode( $tmpArr );
    33 $tmpStr = sha1( $tmpStr );
    34 
    35 if( $tmpStr == $signature ){
    36 return true;
    37 }else{
    38 return false;
    39 }
    40 }
  • 相关阅读:
    Database normalization
    字符串匹配算法之AhoCorasick
    Riak Compared to Neo4j
    Redis Proxy
    望江南
    How To Use The New Multivalue Field In Access 2007/2010 Sunday, June 19th, 2011
    FlockDB: Twitter's distributed, faulttolerant graph database
    Any 'pretty' data visualization libraries for Python?
    50 Great Examples of Data Visualization50 Great Examples of Data Visualization
    字符串匹配算法之AhoCorasick
  • 原文地址:https://www.cnblogs.com/jjffeng-/p/7581809.html
Copyright © 2011-2022 走看看