微信接口開發(fā) php微信開放接口的調(diào)用需要經(jīng)過授權(quán)甚至攜帶小程序的私密信息php微信支付接口開發(fā)
2022-11-02
第二種接口的調(diào)用需要授權(quán),甚至攜帶小程序的私有信息(如 、 等)來完成。這些信息不能放在小程序端,而必須在服務(wù)器端進行管理,否則泄露的風(fēng)險極高。也就是說,就像02中提到的登錄功能一樣,需要自己的服務(wù)器調(diào)用第二個接口。我們將此服務(wù)器稱為開發(fā)人員服務(wù)器。
開發(fā)者服務(wù)器的工作是向 auth 發(fā)起一個授權(quán)請求。微信服務(wù)器界面。這個請求需要攜帶小程序的總和。這兩個隱私信息可以從微信公眾平臺的小程序管理后臺獲取。授權(quán)請求成功后,會得到一個調(diào)用微信開放數(shù)據(jù)接口的臨時證書,稍后在調(diào)用微信開放接口時將其作為參數(shù)傳遞給微信服務(wù)器。
整個過程可以簡單概括為下圖:
雖然過程看似簡單,但需要掌握很多開發(fā)細節(jié),比如過期管理。
這是一個臨時憑證,目前只有兩個小時有效。過期后,就不能再通過它調(diào)用微信的開放接口了。因此,調(diào)用微信開放接口時,一定要保證在有效期內(nèi)。**如何達到這個要求?**每次調(diào)用微信開放接口前調(diào)用auth。從界面獲取最新的就夠了嗎?當(dāng)然不是!這樣做有幾個問題:
所以通常的做法是:開發(fā)者服務(wù)器通過緩存來維護(這也是微信官方推薦的做法)。開發(fā)者服務(wù)器從微信服務(wù)器獲取后,將其保存在緩存中,并記錄下此刻的時間戳。然后,在后續(xù)每次調(diào)用微信開放接口之前,判斷當(dāng)前時間與時間戳的差值是否超過有效期。如下所示:
這樣就可以在有效期內(nèi)重復(fù)使用,避免了每次調(diào)用微信開放接口都需要獲取,縮短了請求的鏈接,解決了以上三個問題。
以上就是微信開放接口的傳統(tǒng)調(diào)用方式。是不是有點麻煩?至少需要一臺服務(wù)器和必要的緩存管理邏輯,這對你前端開發(fā)來說不是一件容易的事。那么接下來,我就帶大家學(xué)習(xí)另一種更高效的調(diào)用方式:免認證云調(diào)用。
免認證云調(diào)用方式
在傳統(tǒng)的調(diào)用過程中,獲取到的行為相當(dāng)于在使用前獲得了微信的授權(quán)。即授權(quán)證書然后調(diào)用開放接口,這是一個典型的認證過程。
也可以看到在這個過程中有很多事情要做微信接口開發(fā) php,而且使用云調(diào)用不需要關(guān)注認證問題,也不需要開發(fā)者服務(wù)器和維護緩存。整個過程簡化為下圖:
從圖片中,我們找到了“云功能”二字。什么是云調(diào)用和云函數(shù)?
一句話概括云調(diào)用:云調(diào)用是云開發(fā)提供的,基于云函數(shù)無需認證即可調(diào)用小程序開放接口的能力。
第4單元我會帶大家系統(tǒng)的學(xué)習(xí)云開發(fā)的知識,大家可以暫時把云開發(fā)理解為一系列的云服務(wù),包括一些原子的能力,比如云功能、云存儲、云數(shù)據(jù)庫,還有一些能力與微信生態(tài)系統(tǒng)集成,例如云通話。
如您所見,云功能是云開發(fā)的原子能力之一,是在云中運行的一段服務(wù)器代碼。它可以在傳統(tǒng)的調(diào)用方式中扮演開發(fā)者服務(wù)器的角色。云功能的代碼可以直接在微信IDE中編寫。代碼寫好后,使用微信IDE將云功能部署到云端,然后在小程序端調(diào)用該功能。這是小程序中使用云功能的基本流程。
我要強調(diào)的是,云功能雖然可以充當(dāng)開發(fā)者服務(wù)器,但它的能力不僅僅是一個普通的服務(wù),而是一個無需認證就可以調(diào)用微信的開放接口。請看下圖:
現(xiàn)在大家應(yīng)該對云調(diào)用的概念和使用過程有了一定的了解。接下來,我將向您展示為什么云調(diào)用可以提高研發(fā)效率?
最明顯的是免認證。與傳統(tǒng)的調(diào)用方式相比,云端調(diào)用不需要開發(fā)者服務(wù)器和緩存維護工作,可以直接調(diào)用微信的開放接口seo優(yōu)化,大大提高了研發(fā)效率。
然后是云功能。剛才提到,有了云功能微信接口開發(fā) php,你就不需要搭建開發(fā)者服務(wù)器,也就是說你不需要花錢購買或租用服務(wù)器,節(jié)省了成本。如果你不關(guān)注騰云網(wǎng)絡(luò)花了多少錢,更關(guān)注技術(shù),那么你應(yīng)該知道,雖然作為開發(fā)者,我們不經(jīng)常寫服務(wù)器端代碼,但維護一個服務(wù)器的成本也是非常高的,如負載均衡、容災(zāi)、服務(wù)器監(jiān)控、數(shù)據(jù)庫冷備份和熱備份等。
另外,云功能將服務(wù)器保護的工作(主要是運維工程師負責(zé),現(xiàn)實中后端工程師也需要負責(zé)一部分工作)到云平臺,讓開發(fā)者只專注于代碼本身。也就是說,開發(fā)者有更多的精力投入到業(yè)務(wù)開發(fā)上,整體迭代速度加快,效率提升。
綜上所述,云調(diào)用不僅節(jié)省了搭建開發(fā)者服務(wù)器的成本,還節(jié)省了管理邏輯代碼編寫工作,在經(jīng)濟性和效率上都優(yōu)于傳統(tǒng)模式。
總結(jié)
云調(diào)用無需認證即可調(diào)用微信開放接口,幫助您在小程序中更快捷、更輕松地集成微信生態(tài)。了解了云調(diào)用之后網(wǎng)站開發(fā),你應(yīng)該可以隱約提出一個問題:既然不需要構(gòu)建開發(fā)者服務(wù)和管理,那留給后端工程師的是什么?我會回答你:你不再需要它們了。您可以自行在云端函數(shù)中實現(xiàn)之前的后端邏輯。這時候,你就相當(dāng)于完成了小程序前后端的所有開發(fā)工作。這是云開發(fā)想要為開發(fā)者提供的理想狀態(tài)。
此外,您不必擔(dān)心云通話的安全性。免認證不代表不認證,但云開發(fā)會為您完成認證工作。這個過程會在微信和云開發(fā)之間完成。
今天的功課需要你自己動手:請使用傳統(tǒng)方式和云調(diào)用在服務(wù)器端實現(xiàn)獲取小程序二維碼的功能。你可以參考官方文檔。相信完成本次作業(yè)后,您將能夠更深入地體會到云調(diào)用的便捷。