# 微信公众号渠道配置 ## 概述 微信公众号是微信生态中的重要营销工具,支持图文消息、自定义菜单、消息推送等功能。本文档描述了微信公众号渠道的完整配置流程。 ## 基本信息 - **渠道标识**: `wechat_official_account` - **渠道名称**: 微信公众号 - **渠道类型**: 公众号 - **所属分组**: 微信生态 (wechat) ## 配置要素 ### 1. 基本配置 ```php // 渠道基本信息 'channel' => 'wechat_official_account', 'name' => '微信公众号', 'status' => true, // 开启/关闭 'description' => '微信公众号平台接入' ``` ### 2. 微信平台配置 #### 必填参数 - **AppId**: 公众号应用ID - **AppSecret**: 公众号应用密钥 - **Token**: 消息推送Token - **EncodingAESKey**: 消息加解密密钥(可选) #### 配置示例 ```php 'wechat_config' => [ 'appid' => 'wxf8b4f85f3a794e54', 'secret' => 'b1d6e8f9a4c2d3e5f7g8h9i0j1k2l3m4', 'token' => 'your_token_here', 'aes_key' => 'your_aes_key_here', // 消息加解密Key(可选) ] ``` #### 获取方式 1. 登录微信公众平台 (mp.weixin.qq.com) 2. 选择公众号类型 3. 在「开发」-「基本配置」中获取 4. 在「开发」-「基本配置」中设置服务器配置 ### 3. 支付配置 微信公众号支持以下支付方式: #### 3.1 微信支付 ✅ (推荐) - **状态**: 开启 - **优先级**: 1 - **配置要求**: - 需要开通微信支付商户号 - 配置支付授权目录 - 设置支付证书 ```php 'payment_config' => [ 'wechat' => [ 'enabled' => true, 'mch_id' => '商户号', 'key' => '商户密钥', 'cert_path' => '证书路径', 'key_path' => '密钥路径', 'notify_url' => '支付回调地址' ] ] ``` #### 3.2 余额支付 ✅ - **状态**: 开启 - **优先级**: 2 - **说明**: 用户使用账户余额进行支付 ```php 'payment_config' => [ 'balance' => [ 'enabled' => true, 'min_amount' => 0.01, // 最小支付金额 'max_amount' => 50000, // 最大支付金额 ] ] ``` #### 3.3 不支持的支付方式 ❌ - 支付宝支付 - 线下支付 - 货到付款 ### 4. 登录配置 #### 4.1 自动登录 - **状态**: 开启/关闭 - **说明**: 进入应用后,用户将会自动授权登录,未注册用户将会自动注册 ```php 'login_config' => [ 'auto_login' => true, 'auto_register' => true, 'scope' => 'snsapi_userinfo', // 授权作用域 ] ``` #### 4.2 绑定手机号 - **状态**: 开启/关闭 - **说明**: 授权登录后,未绑定手机号的用户,将会立即提醒绑定手机号 ```php 'login_config' => [ 'force_mobile' => true, 'mobile_verify' => true, // 手机号验证 ] ``` ### 5. 功能特性 | 功能 | 支持状态 | 说明 | |------|---------|------| | 支付功能 | ✅ | 支持微信支付、余额支付 | | 分享功能 | ✅ | 支持分享到微信好友、朋友圈 | | 定位功能 | ✅ | 支持获取用户地理位置 | | 拍照功能 | ❌ | 不支持调用摄像头拍照 | | 推送功能 | ✅ | 支持模板消息推送 | ## 配置流程 ### 1. 微信公众平台配置 1. **注册公众号** - 访问 https://mp.weixin.qq.com - 注册公众号账号 - 完成主体认证 2. **获取开发信息** - 在「开发」-「基本配置」中获取AppID - 生成AppSecret 3. **配置服务器** - 在「开发」-「基本配置」中配置 - 服务器地址:`https://your-domain.com/api/wechat/serve` - Token:自定义设置 - 消息加解密方式:推荐选择安全模式 4. **配置网页授权域名** - 在「设置」-「公众号设置」-「功能设置」中配置 - 网页授权域名:`your-domain.com` 5. **配置JS接口安全域名** - 在「设置」-「公众号设置」-「功能设置」中配置 - JS接口安全域名:`your-domain.com` ### 2. 系统后台配置 1. **基本信息配置** ``` 渠道状态: 开启 渠道名称: 微信公众号 渠道描述: 微信公众号平台 ``` 2. **平台参数配置** ``` AppId: wxf8b4f85f3a794e54 AppSecret: b1d6e8f9a4c2d3e5f7g8h9i0j1k2l3m4 Token: your_token_here ``` 3. **支付方式配置** ``` 微信支付: 开启 余额支付: 开启 支付宝支付: 关闭 货到付款: 关闭 ``` 4. **登录方式配置** ``` 自动登录: 开启 绑定手机号: 开启 ``` ### 3. 开发配置 1. **网页授权登录** ```javascript // 获取授权链接 const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(redirectUri)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`; // 跳转授权 window.location.href = authUrl; ``` 2. **JSSDK配置** ```javascript // 配置JSSDK wx.config({ debug: false, appId: 'wxf8b4f85f3a794e54', timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: ['chooseWXPay', 'getLocation', 'chooseImage'] }); ``` 3. **支付调用** ```javascript // 微信支付 wx.chooseWXPay({ timestamp: timestamp, nonceStr: nonceStr, package: package, signType: 'MD5', paySign: paySign, success: function(res) { // 支付成功 } }); ``` ## 测试验证 ### 1. 开发者工具测试 - 使用微信开发者工具 - 测试网页授权流程 - 测试JSSDK功能 ### 2. 真机测试 - 在微信中打开测试页面 - 测试完整业务流程 - 验证支付功能 ### 3. 接口测试 ```bash # 测试登录接口 curl -X POST "https://your-domain.com/api/login" \ -H "Content-Type: application/json" \ -d '{"code":"微信授权code","channel":"wechat_official_account"}' # 测试支付接口 curl -X POST "https://your-domain.com/api/payment/create" \ -H "Content-Type: application/json" \ -d '{"amount":100,"channel":"wechat_official_account","payment_type":"wechat"}' ``` ## 注意事项 1. **域名配置** - 必须使用HTTPS协议 - 域名需要备案 - 需要在微信公众平台配置相关域名 2. **支付配置** - 需要开通微信支付 - 配置支付授权目录 - 测试环境和生产环境分别配置 3. **用户授权** - 网页授权需要用户同意 - 不同作用域获取的用户信息不同 - 需要做好授权失败的处理 4. **服务器配置** - 需要正确响应微信服务器的验证请求 - 需要处理微信推送的各种消息和事件 ## 常见问题 ### Q1: Token验证失败怎么办? A: 检查Token配置是否正确,确保服务器能正确响应微信的验证请求。 ### Q2: 网页授权失败怎么办? A: 检查网页授权域名配置,确保域名已正确配置且使用HTTPS。 ### Q3: 支付功能如何测试? A: 需要在真机微信中测试,确保支付授权目录配置正确。 ### Q4: 如何处理用户取消授权? A: 需要引导用户重新授权,或提供其他登录方式。 ## 相关链接 - [微信公众平台开发文档](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html) - [微信支付开发文档](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php) - [微信公众平台](https://mp.weixin.qq.com/) - [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)