承接 vzina/wechat 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vzina/wechat

Composer 安装命令:

composer require vzina/wechat

包简介

微信SDK

README 文档

README

EasyWeChat

Requirement

  1. PHP >= 7.2
  2. Composer
  3. openssl 拓展
  4. fileinfo 拓展(素材管理模块需要用到)

Installation

$ composer require "vzina/wechat:~2.0" -vvv

Usage

基本使用(以服务端为例):

<?php

use EasyWeChat\Factory;

$options = [
    'app_id'    => 'wx3cf0f39249eb0exxx',
    'secret'    => 'f1c242f4f28f735d4687abb469072xxx',
    'token'     => 'easywechat',
    'log' => [
        'level' => 'debug',
        'file'  => '/tmp/easywechat.log',
    ],
    // ...
];

$app = Factory::officialAccount($options);

$server = $app->server;
$user = $app->user;

$server->push(function($message) use ($user) {
    $fromUser = $user->get($message['FromUserName']);

    return "{$fromUser->nickname} 您好!欢迎关注 overtrue!";
});

$server->serve()->send();

hyperf(2.2以上版本)框架使用:

<?php
declare (strict_types=1);

namespace Yef\WeChat;

use EasyWeChat\Kernel\Events\AccessTokenRefreshed;
use EasyWeChat\Kernel\Events\ApplicationInitialized;
use EasyWeChat\Kernel\Events\HttpResponseCreated;
use EasyWeChat\Kernel\Events\ServerGuardResponseCreated;
use Hyperf\Cache\CacheManager;
use Hyperf\Context\Context;
use Hyperf\Utils\ApplicationContext;
use Hyperf\Utils\Arr;
use Hyperf\Utils\Str;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\Http\Message\ServerRequestInterface;
use Symfony\Component\HttpFoundation\Request;

/**
 * Class Factory
 *
 * @inheritDoc
 */
class Factory extends \EasyWeChat\Factory
{
    /**
     * @param string $name
     * @return \EasyWeChat\Kernel\ServiceContainer
     */
    public static function make($name, array $config = [])
    {
        $adapter = Str::snake((string)$name);
        $contextKey = 'hy.wechat.' . ($config['app_id'] ?? $adapter);

        return Context::getOrSet($contextKey, function () use ($adapter, $config) {
            $container = ApplicationContext::getContainer();

            $config = $config ?: (array)config('wechat.' . $adapter);

            $prepends = [
                // 设置hy缓存对象
                'cache' => fn() => $container->get(CacheManager::class)
                    ->getDriver($config['cache_name'] ?? 'wechat_redis_cache'),
                // 设置hy请求对象
                'request' => function () use ($container) {
                    $request = $container->get(ServerRequestInterface::class);
                    if (empty($request)) {
                        return Request::createFromGlobals();
                    }

                    return Request::create(
                        (string)$request->getUri(),
                        $request->getMethod(),
                        $request->getQueryParams(),
                        $request->getCookieParams(),
                        $request->getUploadedFiles(),
                        $request->getServerParams(),
                        (string)$request->getBody()->getContents()
                    );
                },
            ];

            // 设置hy监听事件
            $listener = fn($event) => $container->get(EventDispatcherInterface::class)->dispatch($event);
            Arr::set($config, 'events.listen', [
                AccessTokenRefreshed::class => [$listener],
                ApplicationInitialized::class => [$listener],
                HttpResponseCreated::class => [$listener],
                ServerGuardResponseCreated::class => [$listener],
            ]);

            $namespace = Str::studly($adapter);
            $application = "\\EasyWeChat\\{$namespace}\\Application";

            $app = new $application($config, $prepends);

            return $app;
        });
    }

    public static function __callStatic($name, $arguments)
    {
        return static::make($name, ...$arguments);
    }
}

更多请参考 https://www.easywechat.com/

Documentation

官网 · 教程 · 讨论 · 微信公众平台 · WeChat Official

License

MIT

vzina/wechat 适用场景与选型建议

vzina/wechat 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 23 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 12 月 01 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「sdk」 「wechat」 「weixin」 「weixin-sdk」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 vzina/wechat 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 vzina/wechat 我们能提供哪些服务?
定制开发 / 二次开发

基于 vzina/wechat 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 23
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 2389
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-12-01