尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

个人微信API接口在多业务程序中的复用方式:一套能力服务多个功能

个人微信API接口在多业务程序中的复用方式:一套能力服务多个功能 做微信二次开发都遇到过这种场景客服程序要用 Eyun 接口回消息、运营要用它发通知、数据分析要用它拉历史记录。三拨人盯着同一套能力Webhook sendText 消息记录各写各的代码会大量重复wId 和 Token 也难统一管。复用不是大家都把接口调一遍而是按复用粒度分层共享——Eyun 这套能力可以被多个业务程序复用但粒度不同管理方式也不同。下面按粒度从粗到细分三层。一、接口级复用多个业务直接调同一个 Eyun 接口三个业务程序各自独立调 Eyun 接口互不感知。客服程序调 Eyun 的 sendText 发回复运营也调 sendText 群发通知分析调消息记录接口拉数据。按 Eyun 开发文档规范sendText 需传 wId、toUser、content 三个必填参数三个程序传不同参数复用同一接口代码在业务程序里wId 和 Token 散落各处。大白话3 个部门共用一台打印机——各打各的互不干扰但都在用同一台机器。二、服务级复用封装成微服务多个业务通过 API 调用把这套 Eyun 接口封装成 WechatService 微服务对外暴露发消息 / 收消息 / 拉历史三个 API。客服、运营、分析各自调 WechatService不再直接碰 Eyun 接口。WechatService 内部统一管 wId Token 错误码 限流Eyun 的错误码体系1002 需刷新、1004 需退避由服务统一处理业务程序只拿业务结果。大白话3 个部门共用一个文印中心——文件交过去中心帮你打印、管纸量、处理卡纸各部门不用自己管打印机。三、平台级复用搭建微信能力平台业务程序作为租户接入平台统一管理多个 wId 实例 Token 池 回调分发 消息路由 配额管理。每个业务程序作为租户接入按需申请配额每天发 N 条平台按配额调度 wId 和接口调用租户间配额隔离。在 Eyun 平台 管理的多个 wId 实例由平台统一调度业务程序感知不到底层 wId只关心还剩多少配额。大白话建一个文印服务公司——各业务程序是客户按套餐用打印服务公司统一管所有打印机和纸张分配。三层复用对比复用粒度复用方式管理方式业务关系大白话适用规模接口级直调接口各管 wId/Token互不感知共用打印机3 个以下服务级调微服务 API服务统一管间接依赖共用文印中心3-10 个平台级租户接入平台调度配额租户隔离文印公司10 个以上演进代码骨架def send_direct(wid, token, to, content): # 接口级业务直调 Eyun return eyun_send_text(wid, token, to, content) class WechatService: # 服务级统一封装 def __init__(self, wid, token): self.wid, self.token wid, token def send(self, to, content): try: return eyun_send_text(self.wid, self.token, to, content) except EyunError as e: if e.code 1002: self._refresh(); return self.send(to, content) if e.code 1004: time.sleep(2); return self.send(to, content) raise class WechatPlatform: # 平台级多租户配额 def __init__(self): self.quotas {} def send(self, tenant, to, content): if self.quotas.get(tenant, 0) 0: raise QuotaExceeded() self.quotas[tenant] - 1 return self._pick_wid_and_send(to, content)选型建议三层按管理粒度递增排列接口级最松散各调各的重复代码多、服务级中等统一封装减少重复、平台级最集中统一管理 配额 隔离。选型信号3 个以下业务用接口级够用就行别过度设计3-10 个用服务级减少重复 统一错误处理10 个以上用平台级做配额隔离和资源调度。无论哪层复用Eyun 接口的参数规范不变变的是谁管理调用——业务自己管、微服务管、还是平台管。接口参数细节见 Eyun 开发文档按业务规模选合适粒度才是落地关键。
返回列表