阿里雲服務器+微信公衆號配置(Token驗證不通過)

推薦使用CentOS操作系統,本人在使用Ubuntu操作系統時安裝第三方軟件不是很順利,導致在微信公衆號服務器配置的Token驗證失敗不通過上浪費大量時間。

以下是 CentOS 和 Ubuntu的介紹:

拋開內核版本來說,Linux各發行版用的內核都是一樣的,不同的只是安裝的軟件包。
CentOS是RedHat的社區版本,可以兼容RedHat的RPM安裝包,一般用作服務器,預安裝的也都是服務器的內容。除了沒有RedHat服務外(反正要錢的咱也不會買),用起來與RedHat相差不大。包管理一般用rpm或者yum來管理。


Ubuntu是基於Debian發行版和GNOME桌面環境,也有KDE版本,屬於較流行的發行版,它強化了圖形方面的功能,有面向一般用戶的桌面版本,也有服務器版本。因爲其桌面版本比較漂亮,有較多多媒體方面的軟件和ubuntu軟件中心的支持,對一般用戶也還算好用,所以較流行。其服務器版本也就沒什麼好說了,都差不太多。包管理一般用apt-get

 

阿里雲服務器+微信公衆號配置操作如下:

1、購買阿里雲服務器服務https://www.aliyun.com/,從“雲服務器ECS”進入實例

遠程登入服務器,輸入root + 密碼登入(實例,端口系統會默認選好)。

2、CentOS後臺服務器的搭建

以下部分參考來源:https://yq.aliyun.com/articles/708415

安裝NodeJS

首先執行以下命令

sudo su

下載最新的穩定版 v6.10.3 到本地

wget https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-x64.tar.xz

下載完成後, 將其解壓

tar xvJf node-v6.10.3-linux-x64.tar.xz

將解壓的 Node.js 目錄移動到 /usr/local 目錄下

mv node-v6.10.3-linux-x64 /usr/local/node-v6

配置 node 軟鏈接到 /bin 目錄

ln -s /usr/local/node-v6/bin/node /bin/node

配置 NPM

NPM 是 Node.js 的包管理和分發工具。它可以讓 Node.js 開發者能夠更加輕鬆的共享代碼和共用代碼片段

下載 node 的壓縮包中已經包含了 npm , 我們只需要將其軟鏈接到 bin 目錄下即可

ln -s /usr/local/node-v6/bin/npm /bin/npm

配置環境變量

將 /usr/local/node-v6/bin 目錄添加到 $PATH 環境變量中可以方便地使用通過 npm 全局安裝的第三方工具

echo 'export PATH=/usr/local/node-v6/bin:$PATH' >> /etc/profile

生效環境變量

source /etc/profile

安裝 Express

安裝 Express 應用腳手架:

npm install express-generator -g

創建新的項目

執行

cd /data/
express yourApp

這時候會在 /data 生成應用目錄 /yourApp,繼續執行以下命令

cd yourApp
npm install
npm start

配置服務器信息,進入開發者模式

微信平臺會去驗證你填寫的服務器的有效性,所以配置服務器前要先編寫服務器有效性驗證的代碼。

在終端使用 Ctrl + C 終止剛纔啓動的服務,然後執行以下命令安裝依賴的文件:

npm install xml2js sha1 querystring

編輯 app.js,參考下面的代碼:
示例代碼:/data/yourApp/app.js

var express = require('express');
var app = express();
var http = require('http');
var sha1 = require('sha1');
var xml2js = require('xml2js');
var querystring  = require('querystring');

process.env.PORT = '80';
function checkSignature(req) {
  // 獲取校驗參數
  var signature = req.query.signature;
  var timestamp = req.query.timestamp;
  var nonce = req.query.nonce;

  // 此處爲實驗分配了一個 token,也可以修改爲自己的 token
  var token = 'Password';

  // 按照字典排序
  var params = [token, timestamp, nonce];
  params.sort();

  // 連接
  var str = sha1(params.join(""));

  // 返回簽名是否一致
  return str == signature;
}

// 接入驗證
app.get('/', function(req, res) {
  // 簽名成功
  if (checkSignature(req)) {
    res.send(200, req.query.echostr);
  } else {
    res.send(200, 'fail');
  }
});

module.exports = app;

啓動服務:

npm start

3、微信公衆號配置

登錄微信公衆號平臺,然後拉到頁面的最下面左側“開發”,點擊基本配置菜單。獲取AppID,AppSecret,填寫IP白名單(把阿里雲服務器的IP地址填寫進去)

接着點擊上圖,服務器配置,修改配置:

填寫以下信息:  

  • 服務器地址(URL):填寫 您的雲服務器 IP 地址
  • 令牌(Token):填寫上面代碼中使用到的 Token,如無修改,直接使用 Password(阿里雲服務器上的Token要和微信公衆號Token設置爲一模一樣
  • 消息加解密密鑰(EncodingAESKey):隨機字符串。可以讓平臺生成。
  • 消息加解密方式:選擇明文方式

配置完畢後點擊提交,提交成功後,在基本配置菜單頁面點擊啓用

此時,微信用戶給公衆號發送的信息,會由微信平臺轉發給您的服務器,然後您的服務器進行處理後返回給用戶。

最後點擊提交,檢查是否可以提交成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章