# 微信扩展包安装指南

## 环境要求

- PHP >= 8.5
- Laravel >= 12.0
- cURL 扩展
- OpenSSL 扩展

## 安装步骤

### 1. 安装扩展包

使用 Composer 安装扩展包：

```bash
composer require kylin/wechat
```

### 2. 发布配置文件

执行以下命令发布配置文件：

```bash
php artisan vendor:publish --provider="Kylin\Wechat\Providers\WechatServiceProvider" --tag="config"
```

### 3. 配置微信参数

发布后，在 `config/wechat.php` 文件中配置微信相关参数：

```php
return [
    // 公众号配置
    'official_account' => [
        'app_id' => env('WECHAT_OFFICIAL_ACCOUNT_APP_ID'),
        'secret' => env('WECHAT_OFFICIAL_ACCOUNT_SECRET'),
        'token' => env('WECHAT_OFFICIAL_ACCOUNT_TOKEN'),
        'aes_key' => env('WECHAT_OFFICIAL_ACCOUNT_AES_KEY'),
    ],

    // 小程序配置
    'mini_program' => [
        'app_id' => env('WECHAT_MINI_PROGRAM_APP_ID'),
        'secret' => env('WECHAT_MINI_PROGRAM_SECRET'),
    ],

    // 企业微信配置
    'work' => [
        'corp_id' => env('WECHAT_WORK_CORP_ID'),
        'agent_id' => env('WECHAT_WORK_AGENT_ID'),
        'secret' => env('WECHAT_WORK_SECRET'),
    ],

    // 开放平台配置
    'open_platform' => [
        'app_id' => env('WECHAT_OPEN_PLATFORM_APP_ID'),
        'secret' => env('WECHAT_OPEN_PLATFORM_SECRET'),
    ],
];
```

### 4. 配置环境变量

在 `.env` 文件中添加微信相关的环境变量：

```env
# 公众号配置
WECHAT_OFFICIAL_ACCOUNT_APP_ID=your_app_id
WECHAT_OFFICIAL_ACCOUNT_SECRET=your_app_secret
WECHAT_OFFICIAL_ACCOUNT_TOKEN=your_token
WECHAT_OFFICIAL_ACCOUNT_AES_KEY=your_aes_key

# 小程序配置
WECHAT_MINI_PROGRAM_APP_ID=your_mini_app_id
WECHAT_MINI_PROGRAM_SECRET=your_mini_app_secret

# 企业微信配置
WECHAT_WORK_CORP_ID=your_corp_id
WECHAT_WORK_AGENT_ID=your_agent_id
WECHAT_WORK_SECRET=your_work_secret

# 开放平台配置
WECHAT_OPEN_PLATFORM_APP_ID=your_open_app_id
WECHAT_OPEN_PLATFORM_SECRET=your_open_secret
```

### 5. 验证安装

安装完成后，你可以通过以下代码验证扩展包是否正常工作：

```php
use Kylin\Wechat\Facades\Wechat;

// 获取公众号实例
$officialAccount = Wechat::officialAccount();
echo "公众号实例创建成功";

// 获取小程序实例
$miniProgram = Wechat::miniProgram();
echo "小程序实例创建成功";
```

## 注意事项

1. 确保你的服务器能够访问微信 API
2. 配置正确的回调地址，确保微信能够正常回调
3. 定期更新微信的 access_token，避免过期
4. 对于生产环境，建议使用缓存存储 access_token
