gofly.v1kf.com
vx: llike620
一、 核心业务流程
-
管理员登录:管理员通过后台系统登录验证。
-
查看商家列表:进入“商家管理”模块,以列表形式查看所有已注册的商家信息。
-
生成绑定二维码:在商家列表或商家详情页中,找到目标商家,点击“生成公众号绑定二维码”按钮。
-
获取并展示二维码:系统调用微信接口,生成一个带有该商家特殊参数的公众号关注二维码。
-
发送二维码:管理员下载或复制该二维码图片,通过邮件、客服系统等途径发送给对应商家的联系人。
-
商家扫码绑定:商家用户使用微信扫描该二维码,关注公众号后,系统后台将自动完成该微信OpenID与商家账户的绑定。
-
推送模板消息:绑定成功后,系统即可通过微信公众号向该商家的微信推送各类业务通知(如新订单、审核结果等)。
二、 功能详细设计
9.1 商家列表管理
-
页面位置:后台管理系统 -> 用户管理 -> 商家管理
-
列表显示字段:
-
基础信息:商家ID、商家名称、登录账号、联系人、联系电话。
-
状态信息:账号状态(正常/禁用)、注册时间、最后登录时间。
-
公众号绑定状态:
已绑定
/未绑定
(关键字段,用于快速筛选未绑定的商家)。
-
-
操作按钮:
-
查看
:进入商家详情页。 -
编辑
:修改商家基础信息。 -
禁用/启用
:管理商家账号状态。 -
生成绑定码
:核心功能按钮,用于生成该商家的公众号关注二维码。
-
9.1.1 绑定公众号二维码
此功能分为后台生成和前端响应两部分。
1. 后台生成二维码 (管理员侧)
-
触发:管理员在商家列表或详情页点击“生成绑定码”按钮。
-
后端逻辑:
-
接收请求,验证管理员权限。
-
获取当前商家的唯一标识(如数据库中的主键
business_id
)。 -
调用微信接口:请求微信
生成带参数的二维码
接口。-
动作类型:推荐使用临时二维码(
action_name: QR_STR_SCENE
),有效期较长(30天),足以完成绑定流程。 -
场景值:将商家的
business_id
或其它唯一标识符作为场景值参数(scene_str
)。例如:"bind_business_12345"
(12345为商家ID)。
-
-
存储映射关系(可选但推荐):将生成的场景值
scene_str
与商家ID的对应关系存入缓存(如Redis),并设置一个过期时间(与二维码有效期一致)。这将用于后续用户扫码时的识别。 -
返回数据:接口调用成功后,微信服务器会返回二维码图片的URL(
ticket
和url
)。 -
响应前端:将二维码图片URL(或根据ticket换得的图片数据)返回给后台管理系统前端。
-
-
前端展示:
-
以弹窗或新页面的形式,清晰展示生成的二维码图片。
-
提供“下载图片”和“复制链接”按钮,方便管理员发送给商家用户。
-
2. 前端响应扫码 (用户-商家侧)
-
触发:商家用户使用个人微信扫描管理员发来的二维码。
-
后端逻辑(公众号服务器):
-
微信服务器推送事件:当用户扫描这个带参数的二维码并关注公众号后,微信服务器会向您配置的公众号后台接口推送一个事件消息。
-
解析事件消息:您的服务器解析此XML消息,获取事件类型(
Event
为subscribe
即关注)和场景值(EventKey
)。 -
识别商家:从解析出的
EventKey
中获取之前设置的scene_str
(即bind_business_12345
),从而提取出商家ID12345
。 -
执行绑定:
-
根据商家ID,查询到对应的商家账户。
-
获取扫码用户的OpenID(包含在微信推送的消息中)。
-
将
OpenID
作为字段更新到商家数据表中(例如,在business
表中增加wechat_openid
字段并存入值)。 -
(可选) 在绑定关系表中新增一条记录,记录商家ID、OpenID、绑定时间等。
-
-
更新绑定状态:将缓存中该场景值的状态标记为“已使用”,并更新数据库中该商家的“公众号绑定状态”为“已绑定”。
-
发送欢迎消息:公众号可立即向该商家用户发送一条模板消息或客服消息,提示“您好![商家名称],公众号绑定成功!今后将通过此公众号为您推送重要通知。”
-
三、 数据库设计(新增字段)
-
商家表 (
business
)-
id
: (PRIMARY KEY) -
name
: 商家名称 -
...
(其他原有字段) -
wechat_openid
:varchar(255)
DEFAULT NULL`` COMMENT '绑定公众号的OpenID'` 【新增】 -
is_wechat_bound
:tinyint(1)
DEFAULT '0' COMMENT '公众号绑定状态:0未绑定,1已绑定'` 【新增】
-
四、 安全与注意事项
-
权限控制:生成二维码的接口必须进行严格的管理员身份校验和权限验证。
-
二维码有效期:使用临时二维码并告知管理员其有效性,过期后需重新生成。
-
错误处理:处理微信接口调用失败、网络异常等情况,给管理员清晰的错误提示。
-
防重复绑定:一个商家最多只能绑定一个OpenID。在绑定逻辑中,应先检查该商家是否已绑定,防止数据覆盖。同样,一个OpenID理论上也只应绑定一个商家账户。
-
日志记录:记录所有生成二维码和绑定操作的管理员日志,便于审计。
这个设计方案提供了一个完整、可实施的流程,允许管理员高效地协助未绑定公众号的商家完成绑定操作,从而为后续的微信模板消息推送打下基础。核心在于巧妙利用微信的带参数二维码功能,将“扫码关注”和“账户绑定”两个动作合二为一,体验流畅且安全。