微信SDK EasySwoole WeChat 2.x - 企業微信
EasySwoole WeChat
是一個基于 Swoole 4.x
全協程支持的微信 SDK 庫
,告別同步阻塞,輕松編寫高性能的微信公眾號/小程序/開放平臺/企業微信業務接口。用戶如果想要使用關于微信支付業務的使用可以查看 EasySwoole Pay 組件。
該組件庫是仿照 easywechat API
實現的協程安全的 wechat sdk
庫。
用戶可以在一切支持 Swoole
協程環境的框架(EasySwoole
、Hyperf
、Swoft
等)中使用,安裝和使用方法請看下文。
說明
首先感謝 easywechat
作者們創造的優秀項目,但由于在協程環境下使用會有潛在的跨協程問題,故有了此項目??紤]到大多數用戶的習慣,我們保留了絕大多數 API
的命名和風格習慣,以便用戶更好地上手使用;但在部分可能存在潛在風險的地方, 我們則進行了重新設計,以保障協程環境下的運行安全。
組件要求
- 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
擴展時,請務必把編譯參數--enable-openssl
加上,以啟用SSL
支持
安裝方法
$ composer require easyswoole/wechat
倉庫地址
常見問題匯總
為了讓用戶在微信公眾平臺開發的道路上少掉坑,我們在這里將使用此組件進行開發時遇到的各種問題進行匯總,并給出對應的解決辦法。這樣用戶就可以更效地進行開發了。
時區不對
- 報錯情形如下:
Setting The Correct Timezone In CentOS And Ubuntu Servers With NTP
。 - 解決方法:使用命令
date
可以在服務器上查看當前時間,如果發現時區不對則需要修改時區。
redirect_url 參數錯誤
-
出現原因:這是由于程序使用了 網頁授權 而公眾號沒有正確配置 【網頁授權域名】 所致。此時你需要登錄微信公眾平臺,在 【開發】 -> 【接口權限】 頁面找到 網頁授權獲取用戶基本信息 進行配置并保存。
-
解決方法:
- 網頁授權域名應該為通過
ICP
備案的有效域名,否則保存時無法通過安全監測。 - 網頁授權域名即程序完成授權獲得授權
code
后跳轉到的頁面的域名,一般情況下為你的業務域名。 - 網頁授權域名配置成功后會立即生效。
- 公眾號的網頁授權域名只可配置一個,請合理規劃你的業務,否則你會發現 …… 授權域名不夠用哈。
- 網頁授權域名應該為通過
JSAPI config: invalid url domain
- 出現原因:在使用
JS-SDK
進行開發時,每個頁面都需要調用wx.config()
方法配置JSPAI
參數。如果沒有正確配置JSAPI
安全域名并且開啟了調試模式,此時就報此錯誤。 - 解決方法:遇到這個問題時,開發者需要登錄微信公眾平臺,進入 【公眾號設置】->【功能設置】 頁面,將項目所使用的域名添加至 【JSAPI 安全域名】 列表中。
- 注意事項說明:
- 一個公眾號同時最多可綁定三個安全域名,并且這些域名必須為通過
ICP
備案的一級或一級以上的有效域名。 -
JSAPI
安全域名每個月限修改三次,修改任何一個都算,所以,請謹慎操作。
- 一個公眾號同時最多可綁定三個安全域名,并且這些域名必須為通過