quickstart.md 1.8 KB

Quickstart: 商家 ezPay 发票开通管理

Phase: Phase 1 — 跑通验证步骤 Date: 2026-06-15

1. 准备数据(手动执行 SQL)

到数据库执行 updatesql/sql.md 中 2026-06-15 段落:

  • ALTER TABLE pos_store ADD COLUMN invoice_exempt TINYINT(1) DEFAULT 0 ...
  • CREATE TABLE pos_store_ezpay (...)
  • sys_menu 插入 chanting:storeEzpay:* 权限项

2. 拿 ezPay 测试凭证

在 ezPay 测试环境 https://cinv.ezpay.com.tw/ 申请一个测试商店,记录 MerchantIDHashKey(32 字节)、HashIV(16 字节)。(线下,人工)

3. 后端验证

  1. 启动 foodie_serverruoyi-admin)。
  2. 平台后台登录,进入"ezPay 发票开通管理"。
  3. 选一个测试门店(pos_store 里普通店铺或摊位):
    • 点"发起申请" → 状态变 申请中
    • 点"录入凭证"填入第 2 步的真凭证 → 点"验证并开通":
      • 凭证正确 → 状态变 已开通、启用,approved_time 写入。
      • 故意填错 HashKey → 提示"ezPay 凭证无效",状态保持 申请中last_verify_result 记 KEY1xxxx。
  4. 点"停用"/"恢复" → 启用开关翻转,状态仍 已开通
  5. 点"标记免用发票" → 该门店从"还要去开通/还没开通"过滤消失。

4. 商家端验证

  1. 商家端登录,进门店设置,填"统一编号"保存。
  2. 回平台后台该门店,确认 ubn 已显示。

5. 单元测试

PosStoreEzpayServiceImpl 验证判读逻辑(mock EzPay.doPost):

  • 回应 Status!=成功 且含 KEY1 → 返回"凭证无效",status 不变。
  • 回应业务错误(发票不存在)或成功 → 通过,status=2。

6. 验收对照

回到 spec.md 的 SC-001 ~ SC-006 与各 User Story 的 Acceptance Scenarios 逐条核对。