youwen/exwechat

exwechat is a Weixin Official Accounts Platform develop library, 这是一个微信公众号开发包。

v2021091601 2021-09-16 08:14 UTC

This package is auto-updated.

Last update: 2024-04-16 14:14:41 UTC


README

重要组成

  • Config 微信公众号配置管理
  • Cache 实现Psr\SimpleCache\CacheInterface PSR协议的缓存包
  • TokenManager 依赖Config和Cache, 从微信api获得access_token,缓存它。
  • ApiClient, 包装GuzzleHttp/Client
  • requests, 每一个request都对应微信公众号的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();