xmsjdev / wechat
easywechat for hyperf
Installs: 15
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/xmsjdev/wechat
Requires
- php: >=8.1
- hyperf/guzzle: ^3.1
- hyperf/super-globals: ^3.1
- w7corp/easywechat: ^6.19
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10.0
- swoole/ide-helper: dev-master
This package is auto-updated.
Last update: 2025-12-19 03:01:48 UTC
README
微信 SDK for Hyperf, 基于 w7corp/wechat
注意:组件依赖
Context中的Request
安装
composer require xmsjdev/hyperf-wechat
配置
- 发布配置文件
php ./bin/hyperf.php vendor:publish xmsjdev/hyperf-wechat
- 修改应用根目录下的
config/autoload/wechat.php中对应的参数即可。 - 每个模块基本都支持多账号,默认为
default。
使用
下面以接收普通消息为例写一个例子:
假设您的域名为
nxx.cloud那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为:http://nxx.cloud/wechat。
路由:
Router::addRoute(['GET', 'POST', 'HEAD'], '/wechat', 'App\Controller\WeChatController@serve');
注意:一定是
Router::addRoute, 因为微信服务端认证的时候是GET, 接收用户消息时是POST!
然后创建控制器 WeChatController:
<?php declare(strict_types=1); namespace App\Controller; use EasyWeChat\Kernel\Exceptions\BadRequestException; use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; use EasyWeChat\Kernel\Exceptions\InvalidConfigException; use Xmsjdev\HyperfWechat\EasyWechat; use ReflectionException;use Xmsjdev\Wechat\Wechat; class WeChatController extends AbstractController { /** * 处理微信的请求消息 * * @return string * @throws BadRequestException * @throws InvalidArgumentException * @throws InvalidConfigException * @throws ReflectionException */ public function serve() { $app = Wechat::officialAccount(); // 监听事件 $app->getServer()->addEventListener(); // 监听消息 $app->getServer()->addMessageListener(); return $app->getServer()->serve(); } }
上面例子里的 在return的时候必须调用
Xmsjdev\HyperfWechat\Helper::Response去转换,否则会报错。
我们有以下方式获取 SDK 的服务实例
使用外观
use Xmsjdev\Wechat\Wechat; $officialAccount = Wechat::officialAccount(); // 公众号 $work = Wechat::work(); // 企业微信 $pay = Wechat::pay(); // 微信支付 $openPlatform = Wechat::openPlatform(); // 开放平台 $miniApp = Wechat::miniApp(); // 小程序 // 均支持传入配置账号名称以及配置 Wechat::officialAccount('foo',[]); // `foo` 为配置文件中的名称,默认为 `default`。`[]` 可覆盖账号配置 //...
更多 SDK 的具体使用请参考:https://easywechat.com
License
MIT