12 KiB
12 KiB
需求文档
简介
本文档定义了贩卖机配套移动端 App 的功能需求。该 App 需同时支持 Android 和 iOS 双平台,上架 Google Play 和 App Store。核心功能包括:会员体系、积分系统、优惠券系统、多语言支持、移动支付集成,以及与贩卖机硬件的 API 对接。
术语表
- App: 贩卖机配套移动端应用程序,支持 Android 和 iOS 双平台
- 用户: 使用 App 的终端消费者
- 会员: 已购买会员服务的用户,享有积分获取、节日印花兑换等权益
- 单月会员: 一次性购买、固定时长生效的会员类型
- 订阅会员: 按月自动续费的会员类型
- 积分: 用户通过在贩卖机消费获取的虚拟货币,可用于兑换优惠券或赠送他人
- 优惠券: 用户可在贩卖机消费时使用的折扣凭证,包括满减券和抵扣券
- 节日印花: 在节假日期间向会员赠送的特殊优惠券,需手动兑换
- 会员二维码: 包含会员 ID 等信息的动态二维码,供贩卖机扫码识别用户身份,具有时效限制
- UID: 用户唯一标识符
- 贩卖机: 与 App 对接的硬件设备,通过 API 与 App 后端通信
- 后台: App 的管理后台系统,用于配置内容、商品、价格等
- 转换比: 后台可配置的消费金额与积分之间的换算比例
需求
需求 1:用户认证与账号管理
用户故事: 作为用户,我希望通过手机号验证码登录 App,以便安全地访问我的账户和使用各项功能。
验收标准
- WHEN 用户在登录页输入手机号并请求验证码, THE App SHALL 调用第三方短信平台发送验证码至该手机号
- WHEN 用户在登录页选择手机区号, THE App SHALL 支持切换不同国家或地区的手机区号
- WHEN 用户输入正确的验证码并点击登录按钮, THE App SHALL 验证验证码正确性并完成登录,跳转至首页
- WHEN 用户点击登录按钮但未勾选同意协议, THE App SHALL 弹出系统提示"请阅读并同意协议"并阻止登录操作
- WHEN 用户未登录时访问我的页, THE App SHALL 展示默认头像和登录按钮
- WHEN 用户成功登录后访问我的页, THE App SHALL 展示默认用户昵称("用户" + 随机6位数字)和 UID
- WHEN 用户在关于页点击注销账号按钮并在弹窗中确认, THE App SHALL 注销该账号、退出登录状态、返回首页并弹出系统提示"已注销"
- WHEN 用户在我的页点击退出登录按钮并在弹窗中确认, THE App SHALL 退出当前登录状态
需求 2:多语言支持
用户故事: 作为用户,我希望 App 支持多种语言,以便使用我熟悉的语言操作 App。
验收标准
- THE App SHALL 支持简体中文、繁体中文和英文三种语言
- WHEN 用户在我的页点击切换语言按钮, THE App SHALL 弹出多语言选择列表供用户选择
- WHEN 用户选择一种语言后, THE App SHALL 将所有界面文字切换为所选语言
- WHEN 后台配置文字或图片内容时, THE 后台 SHALL 支持为每项内容配置三种语言的版本
需求 3:首页展示与导航
用户故事: 作为用户,我希望在首页快速访问各项功能入口,以便高效地使用 App。
验收标准
- THE App SHALL 在首页顶部展示后台可配置的 Banner 轮播图
- WHEN 用户点击 Banner 图片, THE App SHALL 根据后台配置跳转至内部指定页面或外部链接
- WHEN 用户点击成为会员入口图片, THE App SHALL 跳转至会员页
- WHEN 用户点击节日印花入口图片, THE App SHALL 跳转至节日印花页
- WHEN 用户点击会员二维码入口图片且用户为会员, THE App SHALL 弹出会员二维码弹窗
- WHEN 用户点击会员二维码入口图片且用户非会员, THE App SHALL 跳转至会员页
- WHEN 用户点击使用说明按钮, THE App SHALL 弹出优惠券使用说明弹窗,弹窗内容由后台配置
- THE App SHALL 在首页展示后台可配置的可兑换优惠券列表,每项展示优惠券名称、到期时间、兑换条件和兑换按钮
需求 4:会员体系
用户故事: 作为用户,我希望购买会员服务,以便享受积分获取和专属优惠等权益。
验收标准
- THE App SHALL 在会员页展示后台可配置的会员宣传长图
- WHEN 用户在会员页点击开通会员按钮, THE App SHALL 根据设备平台拉起 Google Pay(Android)或 Apple Pay(iOS)支付流程
- WHEN 用户成功完成会员支付, THE App SHALL 刷新会员页并将按钮文字更改为"会员已开通",按钮置为灰色不可点击状态
- WHEN 会员身份到期后超过3个月, THE App SHALL 清空该用户的剩余积分
- WHILE 会员身份到期后3个月内, THE App SHALL 保留该用户的剩余积分
- WHEN 用户购买订阅会员后, THE App SHALL 每月自动续费
- WHEN 用户已购买单月会员后查看会员页, THE App SHALL 隐藏单月会员购买按钮,仅显示订阅会员购买按钮
- WHEN 用户已购买订阅会员后查看会员页, THE App SHALL 将购买按钮文字变更为"已购买订阅会员",按钮置为灰色不可点击状态
需求 5:积分系统
用户故事: 作为会员,我希望通过消费获取积分并管理积分,以便兑换优惠券或赠送给其他用户。
验收标准
- WHEN 用户在贩卖机完成支付, THE App SHALL 按照后台配置的转换比将支付金额转换为积分并添加至用户账户
- THE 后台 SHALL 支持配置金额与积分的转换比例
- WHEN 用户在我的页点击我的积分区域, THE App SHALL 跳转至我的积分页,展示获取记录和使用记录两个标签
- WHEN 用户查看积分获取记录, THE App SHALL 展示每条记录的积分来源、获取时间和增加数量
- WHEN 用户查看积分使用记录, THE App SHALL 展示每条记录的使用方式、使用时间和减少数量
- WHEN 用户在赠送积分弹窗中输入对方 UID 和赠送积分数量并点击赠送按钮且剩余积分充足, THE App SHALL 从当前用户扣除积分、为对方增加积分、关闭弹窗并弹出系统提示"积分已赠送"
- WHEN 用户在赠送积分弹窗中点击赠送按钮且剩余积分不足, THE App SHALL 弹出系统提示"剩余积分不足,无法赠送"
需求 6:优惠券系统
用户故事: 作为用户,我希望使用积分兑换优惠券并在贩卖机消费时使用,以便获得折扣优惠。
验收标准
- WHEN 用户在首页点击优惠券的兑换按钮, THE App SHALL 弹出确定兑换弹窗
- WHEN 用户在确定兑换弹窗中点击确定兑换按钮且积分充足, THE App SHALL 完成兑换、关闭弹窗并弹出系统提示"兑换成功"
- WHEN 用户在确定兑换弹窗中点击确定兑换按钮且积分不足, THE App SHALL 关闭弹窗并弹出系统提示"积分不足,无法兑换"
- IF 兑换期间优惠券被下架, THEN THE App SHALL 关闭弹窗并弹出系统提示"优惠券已下架"
- WHEN 用户在我的页点击我的优惠券按钮, THE App SHALL 跳转至我的优惠券页
- THE App SHALL 在我的优惠券页将优惠券分为"可使用""已使用""已过期"三种状态展示
- WHEN 优惠券状态为已使用或已过期, THE App SHALL 在优惠券上显示对应的"已使用"或"已过期"标识图标
- THE 后台 SHALL 支持配置优惠券的名称、类型(满减、抵扣)、到期时间和兑换条件
需求 7:节日印花系统
用户故事: 作为会员,我希望在节假日兑换专属印花优惠券,以便享受节日特惠。
验收标准
- THE App SHALL 在节日印花页展示后台可配置的 Banner 图(点击无跳转)
- THE App SHALL 在节日印花页展示可兑换的印花优惠券列表,兑换条件可配置为0积分或少量积分
- WHEN 会员用户点击印花优惠券的兑换按钮, THE App SHALL 执行兑换流程
- WHEN 非会员用户点击印花优惠券的兑换按钮, THE App SHALL 跳转至会员页
- WHEN 会员成功兑换一张印花优惠券后, THE App SHALL 将该优惠券的兑换按钮替换为"已兑换",按钮置为灰色不可点击状态
- THE App SHALL 限制每张印花优惠券每位用户仅能兑换1次
需求 8:移动支付集成
用户故事: 作为用户,我希望通过 Google Pay 或 Apple Pay 完成支付,以便快捷安全地购买会员服务。
验收标准
- WHEN 用户在 Android 设备上发起会员购买, THE App SHALL 调用 Google Pay 支付接口完成支付流程
- WHEN 用户在 iOS 设备上发起会员购买, THE App SHALL 调用 Apple Pay 支付接口完成支付流程
- WHEN 支付成功完成, THE App SHALL 更新用户会员状态并刷新当前页面
- IF 支付过程中发生错误, THEN THE App SHALL 向用户展示明确的错误提示信息并保持当前页面状态不变
- THE App SHALL 在 Google Play 和 Apple 后台配置对应的会员商品和价格信息
- WHEN 订阅会员支付成功, THE App SHALL 激活自动续费功能并在每月到期时自动扣款
需求 9:贩卖机硬件 API 对接
用户故事: 作为会员,我希望在贩卖机上扫码后自动识别我的身份和优惠信息,以便享受会员权益和优惠券抵扣。
验收标准
- WHEN 用户在 App 中打开会员二维码, THE App SHALL 生成包含会员 ID 等信息的动态二维码,该二维码在数分钟后自动失效
- WHEN 贩卖机扫描会员二维码后, THE App 后端 SHALL 通过用户信息接口返回该用户的会员信息和优惠券信息
- WHEN 贩卖机请求用户信息且该用户已被其他贩卖机锁定, THE App 后端 SHALL 返回用户锁定状态,贩卖机提示"已在其他机器扫码"
- WHEN 贩卖机扫码成功获取用户信息后, THE App 后端 SHALL 锁定该用户,防止同时在多台贩卖机操作
- WHEN 用户在贩卖机完成支付后, THE 贩卖机 SHALL 调用支付中心接口将用户 ID、支付金额、使用的优惠券 ID 等信息发送至 App 后端
- WHEN 贩卖机收到用户的优惠券信息后, THE 贩卖机 SHALL 根据用户购买的物品和金额判断是否使用优惠券,优先使用快到期且抵扣金额最大的优惠券
- IF 支付流程结束(无论成功或失败), THEN THE App 后端 SHALL 通过支付中心接口记录支付结果并解除用户锁定
需求 10:个人中心与信息展示
用户故事: 作为用户,我希望在个人中心查看和管理我的账户信息,以便了解我的会员状态、积分和优惠券情况。
验收标准
- THE App SHALL 在我的页展示用户的剩余积分数量
- WHEN 用户在我的页点击用户协议或隐私政策按钮, THE App SHALL 跳转至对应的协议页面,内容由后台配置
- WHEN 用户在我的页点击关于按钮, THE App SHALL 跳转至关于页,展示 LOGO、版本号和注销账号按钮
- THE App SHALL 在首页各入口图片支持后台动态配置和更新
需求 11:管理后台
用户故事: 作为运营人员,我希望通过管理后台配置和管理 App 的内容、商品和用户数据,以便灵活运营贩卖机业务。
验收标准
- THE 管理后台 SHALL 提供 Banner 管理功能,支持增删改查、排序和多语言图片配置
- THE 管理后台 SHALL 提供优惠券管理功能,支持创建、编辑、上下架优惠券,配置类型(满减、抵扣)、兑换条件和到期时间
- THE 管理后台 SHALL 提供节日印花管理功能,支持创建和编辑印花优惠券及 Banner 图配置
- THE 管理后台 SHALL 提供积分配置功能,支持设置金额与积分的转换比例
- THE 管理后台 SHALL 提供会员商品管理功能,支持配置会员价格、生效时长和宣传图
- THE 管理后台 SHALL 提供用户管理功能,支持查看用户列表和用户详情(会员状态、积分、优惠券)
- THE 管理后台 SHALL 提供内容管理功能,支持编辑用户协议、隐私政策和优惠券使用说明的多语言版本
- THE 管理后台 SHALL 提供首页入口图片管理功能,支持配置各功能入口的多语言图片