# 接入微信公众号与小程序

把组织自己的微信公众号绑定到 Raise 后，站点可以用微信登录和分享签名；绑定小程序后，平台的小程序壳可以让顾客在小程序里登录。两项都是可选的，不绑定不影响其他功能。

Raise 这边的设置在「我的组织」→「应用」→「微信公众号」，界面说明见[连接器与集成](/admin/connectors)。微信要求已备案的自有域名，所以通常要先在[站点](/apps/site)应用里绑定自定义域名。

## 开始前准备

- 微信公众平台的管理员账号（公众号）；用小程序时，还要小程序后台的管理员账号。
- Raise 里「管理员」角色的账号。只有管理员能打开「微信公众号」页。
- 站点已绑定已备案的自有域名。预览地址不能正式使用。

## 绑定公众号

1. 在微信公众平台「设置与开发 → 基本配置」里找到 AppID 和 AppSecret。
2. 在 Raise 的「微信公众号」页，「第一步：绑定公众号」卡片里填写：

   | 字段 | 必填 | 填什么 |
   |---|---|---|
   | 「AppID」 | 是 | `wx` 开头的 18 位字符 |
   | 「公众号名称」 | 否 | 方便自己辨认 |
   | 「AppSecret」 | 是 | 字母和数字组成，通常 32 位。保存后不再显示，之后留空表示不修改 |
   | 「已在公众号后台配置的域名」 | 否 | 一行一个。记下已在微信后台配好的域名，下方清单会提醒还缺哪些 |

3. 点「绑定」，提示「已绑定公众号，接下来点「测试连接」」。
4. 按下面的[三项配置](#checklist)在微信公众平台做完设置。
5. 回到卡片点「测试连接」。成功时显示「已连接，成功取得 access_token」，失败时显示「没有连上」、原因和微信错误码。

每个公众号只能绑定到一个组织。

## 绑定小程序

1. 在小程序后台「开发管理 → 开发设置」里找到小程序的 AppID 和 AppSecret。
2. 在 Raise 的「微信公众号」页，「小程序」卡片里填写「小程序 AppID」（`wx` 开头的 18 位字符）、「小程序名称」（可选）和「AppSecret」。
3. 点「绑定」，提示「已绑定小程序」。
4. 在小程序后台，把站点的域名加到 request 合法域名里。

解除小程序绑定会清除 AppSecret，重新绑定之前顾客不能在小程序里登录。

## 在微信公众平台需要完成的三项配置

Raise 的「在微信公众平台需要完成的三项配置」卡片列出了每一项要填的值，每个值旁有复制按钮。

1. **JS接口安全域名**：在微信公众平台「设置与开发 → 公众号设置 → 功能设置 → JS接口安全域名」里，填卡片上列出的站点域名。
2. **网页授权域名**：在「设置与开发 → 公众号设置 → 功能设置 → 网页授权域名」里，填与第 1 条相同的域名。
3. **IP 白名单**：在「开发 → 基本配置 → IP白名单」里，把卡片上列出的出口 IP 全部加入。卡片没有列出时，请联系平台管理员获取平台出口 IP。

微信会要求先下载一个 `MP_verify_xxxx.txt` 校验文件：到[站点](/apps/site)应用里站点的「微信校验文件」页签上传，再回微信后台保存。

三项都配好后，回到「公众号账号」卡片点「测试连接」。

> **提示**
>
> 站点还没有自定义域名时，卡片会提示先到「站点」应用里打开站点的「域名」页签绑定域名，再回来复制。卡片上的预览地址仅用于测试，微信不接受为正式域名。

## 常见问题

#### 「测试连接」显示「没有连上」？
看下面的原因和微信错误码。常见的是 AppSecret 抄错，或出口 IP 没有加进「IP白名单」。

#### 卡片提示有域名还没有记在「已在公众号后台配置的域名」里？
已在微信后台配好的，把它补进这一栏；还没配的，按[三项配置](#checklist)去配。

#### 解除公众号绑定会怎样？
AppSecret 和已缓存的令牌会被清除；用微信登录、分享签名的站点在重新绑定前不可用。
