feat: add WeChat MP channel support and enhance widget configuration

- Updated output path for generated enums to reflect new structure.
- Enhanced ChannelController to handle WeChat MP OAuth authorization and callback.
- Introduced WechatMPChannelConfig DTO for WeChat MP specific configurations.
- Modified WidgetConfigResponse to include channel type and external source.
- Added enums for WeChat MP channel type and external source.
- Implemented OAuth flow for WeChat MP, including state signing and verification.
- Updated frontend forms to accommodate WeChat MP configurations.
- Enhanced API interactions to support WeChat MP external ID and source.
- Updated generated enums to include WeChat MP external source.
This commit is contained in:
mlogclub
2026-04-27 15:42:04 +08:00
parent 15d0d81fa1
commit fbabb174d2
14 changed files with 665 additions and 75 deletions
+4 -1
View File
@@ -104,6 +104,8 @@ export type ImAsset = {
export type ImWidgetConfig = {
channelId?: string
channelType?: string
externalSource?: string
title?: string
subtitle?: string
themeColor?: string
@@ -146,6 +148,7 @@ function getRuntimeImConfig() {
channelId: widgetConfig.channelId || OPEN_IM_CHANNEL_ID,
externalSource:
(widgetConfig.externalSource || OPEN_IM_EXTERNAL_SOURCE).trim() || "web_chat",
externalId: (widgetConfig.externalId || "").trim(),
externalName: (widgetConfig.subject || "").trim(),
}
}
@@ -154,7 +157,7 @@ function createImHeaders() {
const config = getRuntimeImConfig()
const headers: Record<string, string> = {
"X-External-Source": config.externalSource,
"X-External-Id": getImVisitorId(),
"X-External-Id": config.externalId || getImVisitorId(),
"X-Channel-Id": config.channelId,
}
if (config.externalName) {