Files
suixinkan_ios_new/suixinkan/Features/Payment/Payment.md
汉秋 e8bc9b7f44 Add Payment and Wallet modules with home routing integration.
Introduce real payment collection and wallet screens to replace home menu placeholders, wire APIs through RootView, and support bank card OSS uploads plus QR code saving to the photo library.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 17:46:01 +08:00

1.3 KiB
Raw Blame History

收款模块

模块职责

Features/Payment 承接首页 payment_collectionpayment_qrpayment_code 权限入口,负责当前景区下的收款码、动态金额二维码、收款记录和到账轮询。

代码结构

  • PaymentAPI:封装收款码和扫码收款记录接口。
  • PaymentCollectionViewModel:管理收款码加载、金额校验、动态二维码生成和到账轮询。
  • PaymentCollectionRecordViewModel:管理收款记录加载和按日期分组。
  • PaymentCollectionView:展示收款码、金额弹窗、保存二维码和收款状态。
  • PaymentCollectionRecordView:展示收款记录明细。

数据流

  1. 页面读取 AccountContext.currentScenic
  2. 有景区时调用 /api/yf-handset-app/photog/pay-code?scenic_id=... 获取收款码。
  3. 设置金额后基于动态收款码 URL 追加 amount 和可选 remark,生成二维码。
  4. 开始轮询 /api/yf-handset-app/photog/order/photo-scan-order-list?scenic_id=...,最多 60 次,每 2 秒一次。
  5. 命中新收款记录后进入成功态,并使用系统语音播报到账金额。

缓存边界

收款码 URL、付款状态、轮询结果不落盘。保存二维码只写入系统相册App 不额外缓存图片文件或 Data。