项目描述
翻译对我来说,最重要的是结账时的部分扣除。当客户在购物车中输入卡代码时,系统应该将可用余额应用于订单总额,部分或全部覆盖,剩余部分由常规方式支付,并保留卡上的任何未消费余额以备将来使用。能够在一个订单中使用多张卡将是一个加分项。每次余额变动都应记录为不可变的日志条目,以便我可以随时追踪历史:发行金额、每次扣除、退款和手动调整。代码应生成得难以猜测,发行一次,并通过电子邮件安全发送。过期规则应可配置,整个过程必须安全处理双击和竞争条件,而不冒着卡被重复收费的风险。
管理面板应允许我的团队手动发行卡,通过代码或客户查找任何卡,查看完整的余额历史,冻结或取消卡,重新发送电子邮件,附上理由的余额调整,并导出报告。我要求你遵循商店中使用的视觉风格和代码约定,编写干净且有文档的代码,并在交付前用测试覆盖余额和扣除逻辑。
— 购买:金额选择、模板选择、祝福文本;通过现有网关支付
— 通过电子邮件将唯一且难以猜测的代码发送给收件人
— 每张卡的余额与不可变的操作日志
— 结账时的部分扣除,剩余部分正常支付;未消费金额保留
— 可配置的过期和状态(活动、冻结、取消、已使用)
— 管理面板:发行、搜索、调整、冻结、重新发送电子邮件、报告导出
— 竞争条件保护;余额和扣除逻辑的测试