vr-shopxo-plugin/shopxo/app
Council 06d0382dd8 feat(phase4.2): 出票链路 + 短码核销 + QR payload
数据库变更:
- vr_tickets 表新增 short_code 字段(短码,UNIQUE)
- vr_tickets 表新增 qr_payload 字段(HMAC签名payload)
- 移除 qr_data 字段(不再使用加密QR)

出票流程 (issueTicket):
1. 先插入获取 ticket_id
2. 生成短码:BaseService::shortCodeEncode(goods_id, ticket_id)
3. 生成 QR payload:BaseService::signQrPayload(id/g/iat/exp)
4. 更新 short_code 和 qr_payload
5. 写入观演人信息

核销流程:
- verifyByShortCode(): 短码解码 → DB查询 → verifyTicketById()
- verifyTicketById(): 事务 + 悲观锁,统一的核销逻辑
- 自动路由:短码直接解出 goods_id,无需暴力搜索

QR payload 管理:
- getQrPayload(): 返回 payload,支持15分钟阈值自动刷新
- 有效期30分钟,剩余15分钟时静默预刷新
2026-04-23 00:15:45 +08:00
..
admin
api
index feat: 添加场馆和分区选择器 + specTypeList 支持 2026-04-21 13:02:38 +08:00
install
lang
module
plugins feat(phase4.2): 出票链路 + 短码核销 + QR payload 2026-04-23 00:15:45 +08:00
route
service
tpl
AppService.php
BaseController.php
ExceptionHandle.php
Request.php
common.php
event.php feat(Phase2): Issue 1 修复购买提交流程 2026-04-21 11:41:59 +08:00
middleware.php
provider.php
service.php