日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php微信墙开发,Node.js如何开发微信墙

發布時間:2025/3/20 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php微信墙开发,Node.js如何开发微信墙 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次給大家帶來Node.js如何開發微信墻,Node.js開發微信墻的注意事項有哪些,下面就是實戰案例,一起來看一下。

驗證服務器有效性

接收用戶通過微信訂閱號發給服務器的消息

解析收到的XML文本消息格式為JSON

用模板構造應答用戶的XML文本消息

將接收到的消息通過WebSocket服務廣播

獲取消息發送人的用戶基本信息(名字和頭像)

微信服務大體上分為兩類,一類是消息服務,一類是數據服務。

消息服務是由用戶在微信服務號中發送消息,然后微信服務講消息推送給開發者服務器,因此它是由微信主動發起,開發者服務器被動接收的。

消息服務的數據體格式是XML,微信服務與開發者服務器之間通過約定token保證數據傳輸的真實和有效性。//verify.jsvar PORT = 9529;var http = require('http');var qs = require('qs');var TOKEN = 'yuntu';function c

heckSignature(params, token){ //1. 將token、timestamp、nonce三個參數進行字典序排序

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

//3. 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信var key = [token, params.timestamp, params.nonce].sort().join(''); var sha1 = require('crypto').createHash('sha1');

sha1.update(key);

return sha1.digest('hex') == params.signature;

}var server = http.createServer(function (request, response) {

//解析URL中的query部分,用qs模塊(npm install qs)將query解析成json

var query = require('url').parse(request.url).query; var params = qs.parse(query); console.log(params); console.log("token-->", TOKEN);

if(checkSignature(params, TOKEN)){

response.end(params.echostr);

}else{

response.end('signature fail');

}

});

server.listen(PORT);console.log("Server runing at port: " + PORT + ".");

事實上,token驗證僅用來給開發者服務器驗證消息來源確實是微信,而不是偽造的(因為別人不知道具體的token),作為消息發起方的微信并不要求必須驗證,也就是說,開發者也可以偷懶不做驗證(后果是別人可以模仿微信給服務post請求)。//noverify.js/**

TOKEN 校驗是保證請求的真實有效,微信自己并不校驗TOKEN,

開發者服務器也可以不校驗直接返回echostr,

但是這樣的話意味著第三方也可以很容易偽造請求假裝成微信發送給開發者服務器*/var PORT = 9529;var http = require('http');var qs = require('qs');var server = http.createServer(function (request, response) { var query = require('url').parse(request.url).query; var params = qs.parse(query);

response.end(params.echostr);

});

server.listen(PORT);console.log("Server runing at port: " + PORT + ".");

將微信服務號的服務器配置為開發服務器的URL,就可以接收到微信服務號的消息了

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

總結

以上是生活随笔為你收集整理的php微信墙开发,Node.js如何开发微信墙的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。