# 环境准备及安装使用 [TOC] WeChatDeveloper 是一个功能全面、安全可靠的PHP微信和支付宝开发SDK,支持公众号、小程序、企业微信、支付等全生态开发。 ## 快速开始案例 ### 环境验证案例 ```php <?php // 环境准备及安装使用案例 include "WeChatDeveloper/include.php"; echo "=== 环境准备及安装使用案例 ===\n"; // 检查PHP版本 echo "PHP版本: " . PHP_VERSION . "\n"; if (version_compare(PHP_VERSION, '7.0.0', '>=')) { echo "✓ PHP版本满足要求\n"; } else { echo "✗ PHP版本过低,建议升级到7.0+\n"; } // 检查必需扩展 $required_extensions = ['curl', 'json', 'xml', 'openssl', 'mbstring', 'bcmath', 'libxml', 'simplexml']; $missing_extensions = []; foreach ($required_extensions as $ext) { if (extension_loaded($ext)) { echo "✓ {$ext} 扩展已安装\n"; } else { echo "✗ {$ext} 扩展未安装\n"; $missing_extensions[] = $ext; } } if (empty($missing_extensions)) { echo "✓ 所有必需扩展已安装\n"; } else { echo "✗ 缺少扩展: " . implode(', ', $missing_extensions) . "\n"; } // 测试SDK加载 try { $config = [ 'appid' => 'wx60a43dd8161666d4', 'appsecret' => 'your_wechat_appsecret', 'cache_path' => '/path/to/cache', ]; $wechat = \WeChat\User::instance($config); echo "✓ WeChatDeveloper SDK 加载成功\n"; echo "✓ 环境配置正确,可以开始开发\n"; } catch (Exception $e) { echo "✗ SDK加载失败: " . $e->getMessage() . "\n"; } ``` **接口说明:** - 环境准备和安装使用的验证示例 - 检查PHP版本和必需扩展 - 验证SDK是否正确安装 **注意事项:** - 确保PHP版本满足要求 - 安装所有必需的扩展 - 配置正确的缓存目录权限 ## 系统要求 ### 基础环境 - **PHP版本**:最低要求 PHP 5.4,建议 PHP 7.0+ 以获取最佳性能 - **推荐环境**:PHP 7.4+ / PHP 8.0+ 生产环境 - **扩展要求**:curl、json、xml、openssl、mbstring、bcmath、libxml、simplexml ### 权限要求 - 缓存目录需要写权限 - 证书文件需要读取权限 ## 安装方式 ### 方式一:Composer 安装(推荐) WeChatDeveloper 遵循 PSR-2 命名规范和 PSR-4 自动加载规范,我们强烈推荐用户使用 composer 来管理项目扩展库。 #### Composer 准备工作 如果还没有安装 Composer,你可以按以下方法安装: **Linux 和 Mac OS X:** ```bash curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer ``` **Windows:** 下载并运行 [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe) #### 配置国内镜像(推荐) 由于众所周知的原因,国外的网站连接速度很慢。因此安装的时间可能会比较长,我们建议通过下面的方式使用国内镜像: ```bash composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` #### 安装 WeChatDeveloper 进入项目根目录下,执行以下命令: ```bash # 首次安装 线上版本(稳定) composer require zoujingli/wechat-developer # 首次安装 开发版本 composer require zoujingli/wechat-developer dev-master # 更新 WeChatDeveloper composer update zoujingli/wechat-developer ``` ### 方式二:直接下载安装 如果实在不想使用 Composer 来管理 WeChatDeveloper,也可以直接下载使用: 1. 下载 WeChatDeveloper,并解压到项目中 2. 在项目中引入初始化文件(通常在入口的位置) ```php include "您的目录/WeChatDeveloper/include.php"; ``` ## 快速开始 ### 基础配置 ```php <?php // 引入SDK include "WeChatDeveloper/include.php"; // 配置参数 $config = [ 'appid' => 'your_wechat_appid', 'appsecret' => 'your_wechat_appsecret', 'mch_id' => 'your_merchant_id', 'mch_v3_key' => 'your_v3_key', 'cache_path' => '/path/to/cache' ]; // 创建实例并调用 try { // 微信用户管理 $user = \We::WeChatUser($config); $userList = $user->getUserList(); // 微信支付 $pay = \We::WePayOrder($config); $order = $pay->create($orderData); } catch (Exception $e) { echo "错误:" . $e->getMessage(); } ``` ### 高级配置 ```php <?php // 配置内存管理(适用于常驻内存框架) \WeChat\Contracts\Tools::configureMemory([ 'auto_cleanup' => true, // 启用自动清理 'max_memory' => 128 * 1024 * 1024, // 128MB内存限制 'cleanup_threshold' => 0.8, // 80%内存使用率时清理 'gc_interval' => 100, // 每100次请求清理一次 ]); // 自定义缓存 \WeChat\Contracts\Tools::$cache_callable = [ 'set' => function ($name, $value, $expired = 360) { return Redis::setex($name, $expired, serialize($value)); }, 'get' => function ($name) { $data = Redis::get($name); return $data ? unserialize($data) : null; }, 'del' => function ($name) { return Redis::del($name); }, 'put' => function ($name, $content) { $file = '/path/to/cache/' . $name; file_put_contents($file, $content); return $file; }, ]; ``` ## 功能特性 ### 🔒 安全可靠 - **输入验证**:全面防护XSS攻击,所有用户输入都经过严格过滤和验证 - **文件安全**:文件操作前进行存在性和权限检查,防止恶意利用 - **加密安全**:使用SHA-256替代MD5,提供更强的安全防护 - **序列化安全**:添加反序列化数据验证,防止代码执行攻击 ### ⚡ 性能优化 - **自动刷新**:AccessToken失效自动刷新机制 - **缓存支持**:支持自定义缓存驱动,可扩展Redis等 - **错误重试**:智能错误重试机制,提高接口调用成功率 - **类型安全**:修复所有类型声明问题,提升代码质量 - **通用内存管理**:自动适配传统PHP、Workerman、Swoole等常驻内存框架 ### 🛠 易于使用 - **统一入口**:通过`\We::`静态方法统一创建各种功能实例 - **向后兼容**:完全保持原有API和参数,无需修改现有代码 - **文档完善**:提供详细的使用文档和示例代码 - **社区支持**:活跃的社区和持续的技术支持 ## 注意事项 1. 确保配置参数完整且正确,尤其是 `appid` 和 `appsecret` 2. 如果使用支付相关功能,请确认支付参数(如 `mch_id` 和证书路径)配置无误 3. 异常处理代码建议优化为日志记录,方便后续问题排查 4. 生产环境建议使用HTTPS传输 5. 定期更新到最新版本以获得安全修复和功能改进