商家列表管理与公众号二维码绑定​,方便对用户进行消息通知提醒

news/2025/9/22 15:40:29/文章来源:https://www.cnblogs.com/taoshihan/p/19105393

gofly.v1kf.com

vx:  llike620

​一、 核心业务流程​

  1. ​管理员登录​​:管理员通过后台系统登录验证。

  2. ​查看商家列表​​:进入“商家管理”模块,以列表形式查看所有已注册的商家信息。

  3. ​生成绑定二维码​​:在商家列表或商家详情页中,找到目标商家,点击“生成公众号绑定二维码”按钮。

  4. ​获取并展示二维码​​:系统调用微信接口,生成一个带有该商家特殊参数的公众号关注二维码。

  5. ​发送二维码​​:管理员下载或复制该二维码图片,通过邮件、客服系统等途径发送给对应商家的联系人。

  6. ​商家扫码绑定​​:商家用户使用微信扫描该二维码,关注公众号后,系统后台将自动完成该微信OpenID与商家账户的绑定。

  7. ​推送模板消息​​:绑定成功后,系统即可通过微信公众号向该商家的微信推送各类业务通知(如新订单、审核结果等)。

​二、 功能详细设计​

​9.1 商家列表管理​
  • ​页面位置​​:后台管理系统 -> 用户管理 -> 商家管理

  • ​列表显示字段​​:

    • 基础信息:商家ID、商家名称、登录账号、联系人、联系电话。

    • 状态信息:账号状态(正常/禁用)、注册时间、最后登录时间。

    • ​公众号绑定状态​​:已绑定/ 未绑定(关键字段,用于快速筛选未绑定的商家)。

  • ​操作按钮​​:

    • 查看:进入商家详情页。

    • 编辑:修改商家基础信息。

    • 禁用/启用:管理商家账号状态。

    • 生成绑定码​:​​核心功能按钮​​,用于生成该商家的公众号关注二维码。

​9.1.1 绑定公众号二维码​

此功能分为​​后台生成​​和​​前端响应​​两部分。

​1. 后台生成二维码 (管理员侧)​

  • ​触发​​:管理员在商家列表或详情页点击“生成绑定码”按钮。

  • ​后端逻辑​​:

    1. 接收请求,验证管理员权限。

    2. 获取当前商家的唯一标识(如数据库中的主键 business_id)。

    3. ​调用微信接口​​:请求微信 生成带参数的二维码接口。

      • ​动作类型​​:推荐使用​​临时二维码​​(action_name: QR_STR_SCENE),有效期较长(30天),足以完成绑定流程。

      • ​场景值​​:将商家的 business_id或其它唯一标识符作为场景值参数(scene_str)。例如:"bind_business_12345"(12345为商家ID)。

    4. ​存储映射关系(可选但推荐)​​:将生成的场景值 scene_str与商家ID的对应关系存入缓存(如Redis),并设置一个过期时间(与二维码有效期一致)。这将用于后续用户扫码时的识别。

    5. ​返回数据​​:接口调用成功后,微信服务器会返回二维码图片的URL(ticketurl)。

    6. ​响应前端​​:将二维码图片URL(或根据ticket换得的图片数据)返回给后台管理系统前端。

  • ​前端展示​​:

    • 以弹窗或新页面的形式,清晰展示生成的二维码图片。

    • 提供“下载图片”和“复制链接”按钮,方便管理员发送给商家用户。

​2. 前端响应扫码 (用户-商家侧)​

  • ​触发​​:商家用户使用个人微信扫描管理员发来的二维码。

  • ​后端逻辑(公众号服务器)​​:

    1. ​微信服务器推送事件​​:当用户扫描这个带参数的二维码并关注公众号后,微信服务器会向您配置的公众号后台接口推送一个​​事件消息​​。

    2. ​解析事件消息​​:您的服务器解析此XML消息,获取事件类型(Eventsubscribe即关注)和场景值(EventKey)。

    3. ​识别商家​​:从解析出的 EventKey中获取之前设置的 scene_str(即 bind_business_12345),从而提取出商家ID 12345

    4. ​执行绑定​​:

      • 根据商家ID,查询到对应的商家账户。

      • 获取扫码用户的OpenID(包含在微信推送的消息中)。

      • OpenID作为字段更新到商家数据表中(例如,在business表中增加wechat_openid字段并存入值)。

      • ​(可选)​​ 在绑定关系表中新增一条记录,记录商家ID、OpenID、绑定时间等。

    5. ​更新绑定状态​​:将缓存中该场景值的状态标记为“已使用”,并更新数据库中该商家的“公众号绑定状态”为“已绑定”。

    6. ​发送欢迎消息​​:公众号可立即向该商家用户发送一条模板消息或客服消息,提示“您好![商家名称],公众号绑定成功!今后将通过此公众号为您推送重要通知。”

​三、 数据库设计(新增字段)​

  • ​商家表 (business)​

    • id: (PRIMARY KEY)

    • name: 商家名称

    • ...(其他原有字段)

    • wechat_openid:varchar(255)DEFAULT NULL`` COMMENT '绑定公众号的OpenID'` ​​【新增】​

    • is_wechat_bound: tinyint(1)DEFAULT '0' COMMENT '公众号绑定状态:0未绑定,1已绑定'` ​​【新增】​

​四、 安全与注意事项​

  1. ​权限控制​​:生成二维码的接口必须进行严格的管理员身份校验和权限验证。

  2. ​二维码有效期​​:使用临时二维码并告知管理员其有效性,过期后需重新生成。

  3. ​错误处理​​:处理微信接口调用失败、网络异常等情况,给管理员清晰的错误提示。

  4. ​防重复绑定​​:一个商家最多只能绑定一个OpenID。在绑定逻辑中,应先检查该商家是否已绑定,防止数据覆盖。同样,一个OpenID理论上也只应绑定一个商家账户。

  5. ​日志记录​​:记录所有生成二维码和绑定操作的管理员日志,便于审计。


这个设计方案提供了一个完整、可实施的流程,允许管理员高效地协助未绑定公众号的商家完成绑定操作,从而为后续的微信模板消息推送打下基础。核心在于巧妙利用微信的​​带参数二维码​​功能,将“扫码关注”和“账户绑定”两个动作合二为一,体验流畅且安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux权限细化管理的三种方法:polkit sudoer doas做权限管理

场景 1:允许普通用户挂载外部USB驱动器 这个场景完美体现了从“命令控制”到“动作控制”的范式转变。 1. 使用 sudo / doas 实现(传统方式) 思路: 找到挂载命令(mount, udisksctl),授权用户执行它。sudo 配置 …

国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南

Excel 是最常用的数据整理、分析和展示工具之一。在本文中,我们将介绍如何借助Spire.XLS使用 Python 将数据写入 Excel 文件,内容涵盖结构化数据插入、格式设置以及数据导出。文中示例所用库支持在代码中直接创建并自…

Ansible的安装和使用

一、安装 #安装源 # 1.安装 yum install epel-release -y yum install ansible -y# 2.生成公钥 [root@vm01 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/…

运城做网站推广网站的文案

今天安装软件,突然遇到了文件已损坏,扔到废纸篓的情况,于是搜索了下解决办法,跟大家分享下,希望对你有所帮助 一、检查安全性设置 打开【设置】-【隐私与安全】,下拉找到安全性,将安全性更改为…

晋城客运东站网站开发什么nas可以做网站服务器

提供侧边栏可以显示和隐藏的侧边栏容器,通过子组件定义侧边栏和内容区,第一个子组件表示侧边栏,第二个子组件表示内容区。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起…

网站建设培训哪里好网站建设与搜索引擎营销的关系

通常各种编程语言里,都有对应的各种线性代数库,我们可以利用现成的代数库来快速的求解我们想要的结果,也就是说,通过代数库,会让我们可以用更少的代码,更高的效率实现需求,这就是向量化的作用 …

政协机关网站建设wordpress在php什么版本号

BeanPostProcessor 接口是 Spring 框架中的一个扩展接口,用于在 Spring 容器实例化、配置和初始化 bean 的过程中提供自定义的扩展点。通过实现这个接口,您可以在 bean 实例创建的不同生命周期阶段插入自己的逻辑,从而实现对 bean 行为的定制…

网站建设中需求分析说明书国内平面设计公司

纠错码和压缩算法是同一枚硬币的两面。 两者都来自于对冗余的想法。 纠错码被视为向消息或文件中添加冗余的原则性方法。而压缩算法正好相反,他们会从消息或文件中移除冗余。 压缩和纠错并不是彼此抵消的,相反,好的压缩算法会移除抵消冗余&am…

wordpress网站被拒登郑州app拉新项目

能控性定义: 若给定系统的一个初始状态x(t0)(t0可为0),若在t1>t0的有限时间区间[t0,t1]内,存在容许控制u(t)使得x(t1)0,则称系统状态在t0时刻是能控的。 若系统对任意一个初始状态都能控,则…

北京网站设计公司哪家公司好广告营销包括哪些方面

服务器同时连接数突然变高的原因 在服务器运行过程中,我们有时会发现服务器的同时连接数突然变高。这种情况可能会引发一系列问题,如性能下降、资源耗尽等。那么,导致服务器同时连接数突然变高的原因有哪些呢?本文将对此进行探讨…

做设计参考的网站抖音代运营协议

设计模式 创建者模式 前言原来代码使用设计模式总结Builder模式在源码中的应用:其他代码 前言 “对象创建”模式——绕开new 工厂模式 抽象工厂 原型模式 构建器 动机与背景 目前需要建造一个房子,建造房子需要一系列特定的步骤,但是房子的类…

数显LED驱动芯片恒流数码管驱动IC内置显示RAM为816位 VK16D33

VK16D33是一种恒流数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、LED恒流驱动模块等电路。可以通过寄存器配置,调节扫描的位数,从而获得更大的单点驱动电流。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳…

详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件

详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

【IEEE出版】2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)

2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)将于2025年10月17-19日在中国青岛举行。【EI/Scopus双检索:IEEE独立出版,检索非常稳定】 【征稿主题范围广,录用率高,2篇可享团队优惠,学生友好】 2025年智…

9.22 机房练习

9.22 机房练习 一、 引子 向 myk 大佬学习,养成写练习笔记的好习惯。 还有大约三十多天就复赛了,我的安排是保持每天一两道首银的题目 + 紫书上的题单,前面的是练习有一定难度的题目冲击高分,后面的是系统复习保持…

完整教程:stm32f103c8t6 led闪灯实验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做jsp网站用哪些软件下载农副产品交易平台

苹果自带的“safari浏览器”正在悄悄“追踪”你的信息,这样做可以有效避免你的隐私信息不被泄露。说起苹果设备自带的APP,毫无疑问safari浏览器是其中的代表之一,很多朋友由于习惯的原因,大多在使用苹果设备的时候选择下载一些第三…

cms网站搭建顺德做网站公司哪家好

import os#判断文件夹是否存在 dir os.path.exists(C:\\Users\\Desktop) print(dir:, dir)#判断文件是否存在 file os.path.exists(C:\\Users\\Desktop\\雍正王朝.txt) print(file:, file)运行结果 显示该文件及文件夹都存在

网易云音乐wordpress插件aso安卓优化

目录 1. 前言 2. 用法回顾 2.1 使用方式 2.2 过滤器的定义 2.3 串联过滤器 3. 小结 1. 前言 过滤器在我们日常开发中应该算是一个非常常用的功能了,它经常会被用来格式化模板中的文本。过滤器可以单个使用,也可以多个串联一起使用,还可…

建站空间哪个好棋牌软件开发定制软件

以下是关于DDR4、DDR5、固态硬盘(SSD)和机械硬盘(HDD)在连续读/写、随机读/写性能的对比分析,结合技术特性与应用场景的总结: 一、性能对比表格 存储类型连续读(MB/s)连续写&#x…