youwen/exwechat

exwechat 是一个微信公众号平台开发库,这是一个微信公众号开发包。

v2021091601 2021-09-16 08:14 UTC

This package is auto-updated.

Last update: 2024-09-16 15:05:05 UTC


README

重要组成

  • Config 微信公众号配置管理
  • Cache 实现Psr\SimpleCache\CacheInterface PSR协议的缓存包
  • TokenManager 依赖于Config和Cache,从微信API获取access_token,并缓存它。
  • ApiClient,包装GuzzleHttp/Client
  • requests,每个请求都对应微信公众号的API

TokenManager和ApiClient是最重要的两个类。
TokenManager调度cache缓存access_token。另外从微信公众号获取access_token。
ApiClient包装GuzzleHttp/Client、xmlProcessor、jsonProcessor三个类。一部分调用微信公众号接口,另一部分是处理response返回的xml和json内容为array数组。

如何记录接口请求日志

guzzle http middleware可以设置中间件,通过中间件记录日志
推荐

https://github.com/gmponos/guzzle-log-middleware

https://github.com/namshi/cuzzle

已集成的api接口列表

下列表写(否)的接口代码不是微信提供的api接口,而是微信请求我方服务器接口。需要我方根据自身业务进行开发。

需自行开发功能列表

- 微信卡券
- 微信门店
- 微信小店
- 智能接口
- 微信设备功能
- 新版客服功能
- 对话能力(原导购助手)
- 微信“一物一码”
- 微信发票
- 微信非税缴费

DEMO1

$redis = RedisFactory::create();
$redisCache = new RedisCache($redis);
$config = [
    'app_id' => '',
    'secret' => '',
    'redirect_uri' => '',
];

$tokenManager = new TokenManager($config, $redisCache);
$token = $tokenManager->getAccessToken();
$api = new ApiClient();

$ipRequest = (new Ips)->getIps($token);
$response = $api->send($ipRequest);

DEMO2 使用facade

// facade
$redis = RedisFactory::create();
$redisCache = new RedisCache($redis);
$config = [
    'app_id' => '',
    'secret' => '',
    'redirect_uri' => '',
];

$tokenManager = new TokenManager($config, $redisCache);
$token = $tokenManager->getAccessToken();
$api = new ApiClient();

$facade = new WechatFacade($tokenManager, $api);

$ips = $facade->getIps();