本篇主要講述,如何在微信中打開(kāi)自家頁(yè)面后,彈窗請(qǐng)求用戶授權(quán),以便拿到用戶的微信信息。
首先說(shuō)一下,完成自定義分享信息的,從無(wú)到有的流程:
基礎(chǔ)硬件服務(wù):
需要一個(gè)公網(wǎng)可以訪問(wèn)的有效域名:
擁有自己的服務(wù)器,來(lái)存放自己頁(yè)面項(xiàng)目:
我還是在阿里云購(gòu)買購(gòu)買服務(wù)器,這個(gè)花費(fèi)大,幾百元一年的使用權(quán)。
而且這個(gè)服務(wù)器,本質(zhì)就是一臺(tái)電腦,是電腦就有配置,我目前只是自己學(xué)習(xí)使用,配置幾乎是最低的,而且購(gòu)買的套餐自帶公網(wǎng)ip,這么一來(lái)我連上面購(gòu)買ip的錢也省了。
綜上所述,最終我只購(gòu)買了域名和一個(gè)套餐自帶公網(wǎng)ip的服務(wù)器,服務(wù)器用來(lái)放置前端項(xiàng)目和后臺(tái)項(xiàng)目。
阿里云ECS:https://cn.aliyun.com/product/ecs
微信公眾平臺(tái),開(kāi)發(fā)者認(rèn)證
打開(kāi)微信公眾平臺(tái) https://mp.weixin.qq.com/,使用郵箱注冊(cè),注意,一個(gè)郵箱只能注冊(cè)一個(gè)微信公眾平臺(tái)賬號(hào),一個(gè)賬號(hào)只能選擇一種賬號(hào)分類且不能更改,這里一定要慎重,這里選擇訂閱號(hào)。
可選個(gè)人類型、企業(yè)類型等等,其中,個(gè)人類型是不沒(méi)有分享定制功能的,但企業(yè)類型我又不符合。。。最終我還是選擇的個(gè)人類型,因?yàn)榧词刮业馁~號(hào)沒(méi)有權(quán)限,但微信公眾號(hào)里面,提供一個(gè)功能全開(kāi)的測(cè)試賬號(hào),使用測(cè)試賬號(hào)可以進(jìn)行學(xué)習(xí)和測(cè)試,還是沒(méi)問(wèn)題的。
填寫信息,綁定微信,注冊(cè)完成,登錄進(jìn)去。
為了進(jìn)行開(kāi)發(fā),需要在這里和你的后臺(tái)項(xiàng)目和前端項(xiàng)目進(jìn)行對(duì)應(yīng)的配置,讓微信確認(rèn)后臺(tái)項(xiàng)目和前臺(tái)項(xiàng)目都是你的之后,才會(huì)提供服務(wù)。
有關(guān)服務(wù)器端和后臺(tái)項(xiàng)目的配置:
首先需要說(shuō)明,由于訂閱號(hào)的功能比較少,如果只是進(jìn)行學(xué)習(xí),建議在 開(kāi)發(fā) => 開(kāi)發(fā)者工具中選擇使用公眾平臺(tái)測(cè)試帳號(hào)進(jìn)行學(xué)習(xí)性開(kāi)發(fā),這樣可以使用全功能的微信服務(wù),配置也比較少。
下面的配置步驟均是使用自己的賬號(hào)需要進(jìn)行的配置
有關(guān)前端項(xiàng)目的配置:
設(shè)置 => 公眾號(hào)設(shè)置 => 功能設(shè)置 => JS接口安全域名在此處添加你的要使用微信sdk功能的網(wǎng)站的域名,比如wx.qq.com或者wx.qq.com/user,最多可寫三個(gè),且需要驗(yàn)證。
> 驗(yàn)證的方式,就是將一個(gè)微信提供的txt文件,放在此域名對(duì)應(yīng)的放置于服務(wù)器中的web項(xiàng)目的訪問(wèn)根目錄中,需要和主文件(大部分默認(rèn)為```index.html```)放在同一級(jí),當(dāng)提交的時(shí)候,微信會(huì)進(jìn)行訪問(wèn),來(lái)獲取文件,確認(rèn)此域名是你的。
配置完成后,就可以進(jìn)行開(kāi)發(fā)了。
下面進(jìn)入代碼階段。
證明后臺(tái)項(xiàng)目和前端項(xiàng)目時(shí)我自己的
首先,上面證明服務(wù)是自己的部分,我們需要實(shí)現(xiàn)一個(gè)接口,我用http://wx.my.com/forWx打的比方,那么為了啟用配置,我需要實(shí)現(xiàn)/forWx給微信調(diào)用,下面是代碼:
node的基礎(chǔ)環(huán)境搭建省略,這里只寫接口內(nèi)部方法了,關(guān)鍵是參數(shù)加密拼裝
const crypto = require('crypto') // 引入加密模塊 const config = require('./config') // 引入配置文件 // 提供給微信調(diào)用 server.get('/forWx', function (req, res) { res.header('Access-Control-Allow-Origin', '*') // 1.獲取微信服務(wù)器Get請(qǐng)求的參數(shù) signature、timestamp、nonce、echostr let signature = req.query.signature // 微信加密簽名 let timestamp = req.query.timestamp // 時(shí)間戳 let nonce = req.query.nonce // 隨機(jī)數(shù) let echostr = req.query.echost // 隨機(jī)字符串 // 2.將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序,其中token就是設(shè)置在微信頁(yè)面中的那個(gè)自定義字符串 let array = [config.token, timestamp, nonce] array.sort() // 3.將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密 let tempStr = array.join('') const hashCode = crypto.createHash('sha1') //創(chuàng)建加密類型 let resultCode = hashCode.update(tempStr, 'utf8').digest('hex') //4.開(kāi)發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來(lái)源于微信 if (resultCode === signature) { res.send(echostr) } else { res.send('mismatch') } })
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱:node.js實(shí)現(xiàn)微信開(kāi)發(fā)之獲取用戶授權(quán)-創(chuàng)新互聯(lián)
文章路徑:http://jinyejixie.com/article0/eisoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站營(yíng)銷、企業(yè)建站、全網(wǎng)營(yíng)銷推廣、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容