准备工作
- 一个
Cloudflare账号(最好已绑定可用域名,免费的eu.org也可) - 一个能登录
Github的账号(用于一键部署到Cloudflare)且关联了上面所说的Cloudflare账号 - 一个企业微信,且你是该企业的管理员(无需认证)
- 一个支持
/v1/chat/completions的OpenAI兼容接口(官方或第三方,new-api也可) - 一个
Deno账号(用于承载加解密服务,非必需)
流程总览
- 在
Deno Deploy部署加解密脚本,拿到CRYPTO_SERVICE_URL - 在
Cloudflare Workers通过仓库一键部署,并配置环境变量与KV - 在企业微信APP获取
CORP_ID,企业微信客服后台生成Token和EncodingAESKey,回填到Workers并部署绑定自定义域名。 - 在企业微信客服后台完成回调
URL验证,获取Secret,回填到Workers - 完成终端对话验证
开始部署
Deno 端部署
- 打开项目解密脚本页面,复制
ts脚本的内容。 - 打开deno控制台。
- 点击
new playground,把ts脚本的内容替换粘贴进去部署即可
- 记录下右上角的
denoURL,后文用作示例:https://example.deno.dev
Cloudflare端部署
- 打开项目Github页面,登录我上面提到的
Cloudflare账号,点击Deploy to Cloudflare
- 在部署参数页完成变量与
KV绑定(可参考如图,也可见后续参数详解)- 部署完成后记录两个域名:
- Workers 自带的
xxx.workers.dev(不建议国内使用) - 你自己的自定义域名(强烈建议绑定为主入口,例如
a.example.com)
- Workers 自带的
- 部署完成后记录两个域名:
-
Cloudflare 环境变量与 KV / 参数详解
请在
Workers的Settings > Variables与KV Namespace Bindings中配置:- 变量(Variables)
CRYPTO_SERVICE_URL:你在 Deno 部署得到的 URL,例如https://example.deno.devOPENAI_BASE_URL:只填到/v1/chat/completions之前,例如- API请求地址
https://api.example.com/v1/chat/completions - 这里就填
https://api.example.com
- API请求地址
OPENAI_API_KEY:你的OpenAI兼容接口密钥OPENAI_MODEL: 你使用的模型WECHAT_CORP_ID:企业微信企业ID(先留空也可)WECHAT_KF_TOKEN:企业微信客服Token先留空也可)WECHAT_KF_ENCODING_AES_KEY:企业微信客服EncodingAESKey(先留空也可)WECHAT_KF_SECRET:企业微信客服Secret(回调验证通过后再填写)
- KV 命名空间(KV Namespace Bindings)
CONVERSATIONS:用于会话存储(名称可自定义,但两个 KV 必须不同)MESSAGE_TRACKER:用于消息去重/追踪(名称不可与上一个相同)
注意:
- 两个 KV 绑定的名称不能相同
- 企业微信相关变量可先占位,等完成企业微信配置后再回填并重新部署
- 变量(Variables)
企业微信配置
- 获取企业
ID- 手机企业微信:工作台 > 管理企业 > 企业信息
- 打开客服管理后台
- 左侧进入 “开发配置 > API 配置”
- 生成
Token与EncodingAESKey- 复制这两个值,并回到
Cloudflare Workers填入:WECHAT_KF_TOKENWECHAT_KF_ENCODING_AES_KEYWECHAT_CORP_ID(企业微信端第一步获取的)
- 重新部署
Workers
- 复制这两个值,并回到
- 设置回调 URL(企业微信后台)
- 回调地址填你的自定义域名 +
/callback - 例如:
https://a.example.com/callback(可尝试你的workers.dev域名,但我尝试没成功所以不建议) - 点击保存/验证,成功后会跳转到开发信息页,如下图
- 再将此处的
Secret粘贴至Workers中的WECHAT_KF_SECRET变量对应值,然后再次部署Workers,理论来说这时就完成部署了。
- 回调地址填你的自定义域名 +
开始聊天与验证
完成所有部署后,便可开始聊天了。
方式一:微信扫码体验
- 客服后台:开始接入 > 在微信内其他场景接入 > 微信扫码体验
- 保存二维码,扫码即可与 BOT 对话;
方式二:外部链接接入
- 客服后台:在微信外 App/网页中接入
- 复制客服链接,在微信中访问该链接发起会话
常见问题与排错
- 企业微信回调验证失败
- 首先看
Workers日志是否有请求- 无日志:大概率域名不可达或被墙。不要用
workers.dev,改自定义域名 - 有日志但报错:检查
WECHAT_KF_TOKEN、EncodingAESKey是否与企业微信后台一致
- 无日志:大概率域名不可达或被墙。不要用
- 确认
https://a.example.com/callback可公网访问,TLS配置正常
- 能收到消息,但没有大模型回复
- 检查
OPENAI_BASE_URL是否只填到根路径(不要带/v1/chat/completions) - 检查
OPENAI_API_KEY是否正确,OPENAI_MODEL名称是否正确
- Cloudflare 日志无任何输出
- 在 Workers 控制台开启 “Logs” 并触发请求重试
完整变量
- Deno
CRYPTO_SERVICE_URL:例如https://example.deno.dev
- Cloudflare Workers 变量
OPENAI_BASE_URL:例如https://api.example.comOPENAI_API_KEY:你的接口KeyOPENAI_MODEL: 你使用的模型WECHAT_CORP_ID:企业IDWECHAT_KF_TOKEN:客服TokenWECHAT_KF_ENCODING_AES_KEY:客服EncodingAESKeyWECHAT_KF_SECRET:客服Secret(回调验证通过后获取)SYSTEM_PROMPT: 客服聊天的prompt
- Cloudflare KV
CONVERSATIONS:会话存储MESSAGE_TRACKER:消息追踪/去重
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。






