This repository is Taro, a large-scale cross-platform application framework that compiles a single React/Vue/Solid codebase to multiple targets: WeChat/Alipay/Baidu/ByteDance/QQ/JD mini-programs, H5 web applications, React Native, and HarmonyOS. It is a monorepo containing over 100 packages coordinated via pnpm workspaces. The architecture spans CLI tooling (`@tarojs/cli`), build runners (Webpack5 and Vite with platform-specific loaders), a runtime layer that simulates DOM/BOM for non-browser targets (`@tarojs/runtime`), platform adapters that map component and API specifications for each target (e.g., `@tarojs/platform-weapp`, `@tarojs/platform-harmony`), and Rust-based SWC plugins for compile-time JSX optimization (`crates/swc_plugin_compile_mode`). The project is actively maintained with a large community (over 37K stars), frequent commits, and thorough testing across packages, including unit, integration, snapshot, and e2e tests. However, some platform-specific stubs (e.g., `temporarilyNotSupport` for Harmony) and multiple parallel Harmony implementations indicate medium technical drift in certain areas.
WxJava is a comprehensive Java SDK for the WeChat ecosystem, providing client libraries for Official Accounts (MP), Mini Programs (MiniApp), Enterprise WeChat (CP), WeChat Pay, Open Platform, Video Channels, and more. It is designed as a multi-module library to be embedded in Java applications, with first-class support for Spring Boot and Solon frameworks via auto-configuration starters. The SDK abstracts HTTP client backends (Apache, OkHttp, Jodd, HttpComponents), provides Redis-based config storage for distributed token management, and implements multi-tenant patterns for managing multiple WeChat accounts. It handles the full lifecycle of WeChat API integration: request signing, serialization (Gson/Jackson/XStream), message routing, and callback verification. The codebase is large and well-structured, though it shows signs of duplication across modules and mixed serialization frameworks, reflecting organic growth over time.
WePush is a Java application monorepo with two coexisting generations of a multi-channel bulk messaging system. The legacy `src/main` tree is a Swing desktop client that manages accounts, message templates, recipient lists, tasks, and run history, and sends via WeChat (official accounts, mini programs, WeCom), SMS vendors, email, HTTP, DingTalk/Feishu bots, and carrier SMS protocols (CMPP/SMGP/SGIP/SMPP). It persists to SQLite through MyBatis and generates UI with IntelliJ GUI Designer forms. The `next/` tree is a modular, distributed push orchestration platform: a Spring Boot control plane (REST + gRPC), remote agents connected via an mTLS gRPC stream, a provider SPI with built-in HTTP, Aliyun SMS, SMTP, WeChat, and bot providers, and pluggable signed PF4J plugins for carrier protocols. It adds multi-tenant workspaces, secret envelope encryption, artifact storage (local/S3), audience streaming import, run state machines with idempotency and retry, schedule management, a React/Vite web UI, an Electron desktop shell, and a Java SDK. Persistence is SQLite for standalone mode or PostgreSQL for server mode, with Flyway migrations and JDBC repositories. The Next codebase is well-architected with core-api/engine/provider-spi/service/domain/infrastructure separation, ADRs, architecture tests, integration tests, CI, and installers. However, the repository as a whole carries the legacy desktop codebase in parallel, duplicating several domain concepts and retaining generated UI code and older dependencies. This split and the aging legacy portions are the main sources of technical debt.
This repository demonstrates a WeChat public account (official account) backend implementation using Spring MVC and the WeChat Java SDK. It handles incoming messages from WeChat servers, verifies request authenticity, routes messages to appropriate handlers based on type, and generates responses. The application follows a layered architecture with controllers for HTTP endpoints, a service layer that encapsulates WeChat SDK interactions, and specialized handlers for different message types (text, location, menu events, subscribe/unsubscribe, etc.). The message handling mechanism uses a router pattern where different message types are directed to specific handler implementations. Each handler extends an abstract base class that provides common utilities like JSON parsing and logging. The builder pattern is employed for constructing response messages, with separate builders for different message types (text, image, etc.). The application also includes endpoints for managing custom menus via the WeChat API. While the codebase shows good separation of concerns and proper use of design patterns, some handlers contain TODO comments indicating areas for further implementation. The demo nature of the project means it focuses on illustrating core concepts rather than providing a fully-featured production application. Configuration is externalized via Spring XML and Java config, with WeChat credentials stored in properties files.
WeRoBot is a Python library for building WeChat Official Account (ε ¬δΌε·) robots. It provides a high-level framework that handles message parsing, event routing, signature verification, session management (with multiple backends like SQLite, Redis, MongoDB), message encryption/decryption (AES), and a full client for the WeChat Corporate API (menu management, user management, template messages, mass messaging, etc.). The library can run as a standalone WSGI application (via Bottle) or be integrated into Django, Flask, Bottle, and Tornado. The core robot class (WeRoBot) allows developers to register handlers via decorators for specific message types (text, image, location) and events (subscribe, click, scan). It is a mature, well-documented project with comprehensive test coverage and CI/CD. The codebase is generally well-structured but shows signs of technical drift in dependency versions and Python version support (officially tested up to Python 3.9, some pinned libraries are outdated).
This repository is a comprehensive .NET SDK for integrating with the WeChat (Weixin) ecosystem, covering Official Accounts (MP), Enterprise WeChat (Work), Mini Programs (WxOpen), Open Platform, and WeChat Pay (TenPay V2/V3). It provides strongly-typed API wrappers for hundreds of WeChat endpoints, message/event handling with a rich class hierarchy, caching abstractions, and utilities for signature verification, encryption, and OAuth. The architecture is a modular monolith with separate packages per platform, sample MVC applications for .NET 4.5/8/10, and dependency injection support via registration modules. Key entry points include static API classes (e.g., `CommonJsonSend.Send<T>()`), message handler base classes, and container-based token management. The SDK also includes experimental components such as an MCP server for AI tool integration and a browser plugin for development assistance. The codebase demonstrates consistent patterns: base result classes with error code handling, container caching with capability flags, extension methods for payment notification decryption, and automatic access token refresh via `ApiHandlerWapper.TryCommonApi`. While the SDK is actively maintained and supports modern .NET versions, it carries some technical debt from legacy .NET 4.x support, duplicated DTOs across platforms, and incomplete test coverage that relies on live credentials. Overall, it is a functional and widely-used SDK (8900+ stars) with solid engineering practices but room for improvement in code consolidation and test automation.
This repository is a Spring Boot-based demo application for integrating with WeChat Pay APIs. It provides REST endpoints demonstrating various WeChat Pay functionalities including payment processing, refunds, enterprise payments, red packet distribution, and coupon handling for both V2 and V3 versions of the WeChat Pay API. The application uses the WxJava library to handle the actual communication with WeChat's servers. The architecture follows standard Spring Boot MVC patterns with controllers handling HTTP requests, delegating to the WxPayService from WxJava for business logic, and returning formatted responses. Configuration is managed through application.yml using Spring Boot's @ConfigurationProperties, with a dedicated configuration class setting up the WxJava service as a Spring bean. The project includes Swagger for API documentation and basic error handling via custom error pages. While the code demonstrates solid enterprise Java practices with proper dependency injection, configuration separation, and API documentation, it is primarily intended as a learning tool rather than a production-ready library. The controllers contain TODO comments indicating areas where users need to implement their own business logic, and some dependencies (particularly Springfox for Swagger) are outdated relative to current Spring Boot versions.
This is a PHP library that implements a personal WeChat bot using the web WeChat protocol. It allows users to log in via QR code, monitor incoming messages, and respond automatically through a plugin system. The architecture uses a Laravel-inspired service container with service providers, observers, and a custom extension mechanism. The library provides a CLI entry point and optionally runs as a Swoole-based server for REST API interaction. The code is well-structured but relies on outdated dependencies (Illuminate 5.4, Symfony 3, Guzzle 6.2, PHP 7.0+) and lacks automated tests. The web WeChat protocol is unstable and may be deprecated, limiting production use. The project appears to be maintained minimally, with no recent commits addressing dependency updates or modern PHP practices.
This repository provides a command-line tool for decrypting and unpacking WeChat mini-program package files (.wxapkg). The tool takes a .wxapkg file as input, extracts the wxid from the file path, decrypts the file if necessary using a hardcoded IV and salt with PBKDF2-derived AES-CBC keys, and then unpacks the decrypted file into a directory containing the original mini-program source files. The architecture is a simple monolithic Go application with two internal packages: `decrypter` for handling the decryption process and `unpacker` for parsing the wxapkg binary format and extracting files. The main function in `main.go` orchestrates the flow: argument parsing, decryption (if needed), and unpacking. The decrypter package demonstrates competent use of Go's crypto libraries for AES-CBC decryption and PBKDF2 key derivation, though it is tightly coupled to the WeChat-specific file format (fixed IV, salt, and XOR step). The unpacker package provides a clean, self-contained implementation for reading the wxapkg index structure and extracting embedded files, relying only on the Go standard library. However, the repository is marked as archived by the maintainer due to the inability to keep up with WeChat's frequent updates, indicating that the tool may not work with newer versions of the wxapkg format.