微信開發(1)–開發模式

1、填寫服務器配置服務器

進入微信後臺,進入開發-基本配置-修改配置
fasdf
W(_38]I``S)_3H)$FT`113V微信

以後就填寫本身服務器地址url 和本身的token
_7`(8X7X)FZ5P]0HALWKDGHthis

 

2、驗證消息來自微信服務器加密

咱們配置好上面的步驟提交後,微信服務器將發送GET請求到填寫的服務器地址URL上,GET請求攜帶參數以下表所示geiurl

那麼 咱們檢驗signature對請求進行校驗(下面有校驗方式)。若確認這次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成爲開發者成功,不然接入失敗。加密/校驗流程以下:spa

1)將token、timestamp、nonce三個參數進行字典序排序code

2)將三個參數字符串拼接成一個字符串進行sha1加密blog

3)開發者得到加密後的字符串可與signature對比,標識該請求來源於微信排序

好了,以上是服務器接入微信的流程,下面咱們開始上代碼。token

 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 }
相關文章
相關標籤/搜索