微信SDK EasySwoole WeChat 2.x - 開(kāi)放平臺(tái)
EasySwoole WeChat
是一個(gè)基于 Swoole 4.x
全協(xié)程支持的微信 SDK 庫(kù)
,告別同步阻塞,輕松編寫(xiě)高性能的微信公眾號(hào)/小程序/開(kāi)放平臺(tái)/企業(yè)微信業(yè)務(wù)接口。用戶如果想要使用關(guān)于微信支付業(yè)務(wù)的使用可以查看 EasySwoole Pay 組件。
該組件庫(kù)是仿照 easywechat API
實(shí)現(xiàn)的協(xié)程安全的 wechat sdk
庫(kù)。
用戶可以在一切支持 Swoole
協(xié)程環(huán)境的框架(EasySwoole
、Hyperf
、Swoft
等)中使用,安裝和使用方法請(qǐng)看下文。
注意:
2.0.0
版。
舊版組件兼容說(shuō)明
說(shuō)明
首先感謝 easywechat
作者們創(chuàng)造的優(yōu)秀項(xiàng)目,但由于在協(xié)程環(huán)境下使用會(huì)有潛在的跨協(xié)程問(wèn)題,故有了此項(xiàng)目。考慮到大多數(shù)用戶的習(xí)慣,我們保留了絕大多數(shù) API
的命名和風(fēng)格習(xí)慣,以便用戶更好地上手使用;但在部分可能存在潛在風(fēng)險(xiǎn)的地方, 我們則進(jìn)行了重新設(shè)計(jì),以保障協(xié)程環(huán)境下的運(yùn)行安全。
組件要求
- php >= 7.2
- ext-swoole: ^4.4.19 (推薦使用 Swoole 4.4.23)
- ext-openssl: *
- ext-json: *
- ext-libxml: *
- ext-simplexml: *
- ext-openssl: *
- psr/log: ^1.1
- psr/http-message: ^1.0
- psr/simple-cache: ^1.0
- pimple/pimple: ^3.0
- easyswoole/utility: ^1.1
注意:在編譯安裝
Swoole
擴(kuò)展時(shí),請(qǐng)務(wù)必把編譯參數(shù)--enable-openssl
加上,以啟用SSL
支持
安裝方法
$ composer require easyswoole/wechat
倉(cāng)庫(kù)地址
常見(jiàn)問(wèn)題匯總
為了讓用戶在微信公眾平臺(tái)開(kāi)發(fā)的道路上少掉坑,我們?cè)谶@里將使用此組件進(jìn)行開(kāi)發(fā)時(shí)遇到的各種問(wèn)題進(jìn)行匯總,并給出對(duì)應(yīng)的解決辦法。這樣用戶就可以更效地進(jìn)行開(kāi)發(fā)了。
時(shí)區(qū)不對(duì)
- 報(bào)錯(cuò)情形如下:
Setting The Correct Timezone In CentOS And Ubuntu Servers With NTP
。 - 解決方法:使用命令
date
可以在服務(wù)器上查看當(dāng)前時(shí)間,如果發(fā)現(xiàn)時(shí)區(qū)不對(duì)則需要修改時(shí)區(qū)。
redirect_url 參數(shù)錯(cuò)誤
-
出現(xiàn)原因:這是由于程序使用了 網(wǎng)頁(yè)授權(quán) 而公眾號(hào)沒(méi)有正確配置 【網(wǎng)頁(yè)授權(quán)域名】 所致。此時(shí)你需要登錄微信公眾平臺(tái),在 【開(kāi)發(fā)】 -> 【接口權(quán)限】 頁(yè)面找到 網(wǎng)頁(yè)授權(quán)獲取用戶基本信息 進(jìn)行配置并保存。
-
解決方法:
- 網(wǎng)頁(yè)授權(quán)域名應(yīng)該為通過(guò)
ICP
備案的有效域名,否則保存時(shí)無(wú)法通過(guò)安全監(jiān)測(cè)。 - 網(wǎng)頁(yè)授權(quán)域名即程序完成授權(quán)獲得授權(quán)
code
后跳轉(zhuǎn)到的頁(yè)面的域名,一般情況下為你的業(yè)務(wù)域名。 - 網(wǎng)頁(yè)授權(quán)域名配置成功后會(huì)立即生效。
- 公眾號(hào)的網(wǎng)頁(yè)授權(quán)域名只可配置一個(gè),請(qǐng)合理規(guī)劃你的業(yè)務(wù),否則你會(huì)發(fā)現(xiàn) …… 授權(quán)域名不夠用哈。
- 網(wǎng)頁(yè)授權(quán)域名應(yīng)該為通過(guò)
JSAPI config: invalid url domain
- 出現(xiàn)原因:在使用
JS-SDK
進(jìn)行開(kāi)發(fā)時(shí),每個(gè)頁(yè)面都需要調(diào)用wx.config()
方法配置JSPAI
參數(shù)。如果沒(méi)有正確配置JSAPI
安全域名并且開(kāi)啟了調(diào)試模式,此時(shí)就報(bào)此錯(cuò)誤。 - 解決方法:遇到這個(gè)問(wèn)題時(shí),開(kāi)發(fā)者需要登錄微信公眾平臺(tái),進(jìn)入 【公眾號(hào)設(shè)置】->【功能設(shè)置】 頁(yè)面,將項(xiàng)目所使用的域名添加至 【JSAPI 安全域名】 列表中。
- 注意事項(xiàng)說(shuō)明:
- 一個(gè)公眾號(hào)同時(shí)最多可綁定三個(gè)安全域名,并且這些域名必須為通過(guò)
ICP
備案的一級(jí)或一級(jí)以上的有效域名。 -
JSAPI
安全域名每個(gè)月限修改三次,修改任何一個(gè)都算,所以,請(qǐng)謹(jǐn)慎操作。
- 一個(gè)公眾號(hào)同時(shí)最多可綁定三個(gè)安全域名,并且這些域名必須為通過(guò)