数字商品交付很快,但也更依赖状态准确。顾客购买软件授权、素材包或兑换码后,支付系统需要确认钱是否付成功,商品系统需要确认交付了什么、交给谁以及还能否再次领取。

先区分库存型与权益型商品

兑换码通常是一件库存只分配给一笔有效订单;下载权限或软件订阅则是给用户增加一项权益。两类商品不能使用同一段“支付成功后减库存”的逻辑简单处理。

库存型商品要处理预留、分配和释放,防止并发订单拿到同一码。权益型商品要记录用户、商品、有效期与授权范围。商品来源及可销售范围也应清楚,交付页面不能把来源不明的授权描述为官方许可。

确认付款后建立交付任务

收到通知时先验签,核对商户、订单、金额和成功状态,再将业务订单标记为已支付。把交付动作保存为独立任务,记录执行结果;任务失败时重试交付,不能重新增加一笔付款记录。

并发通知可能同时到达,单纯“先查询是否已发货”仍可能重复执行。应由唯一业务约束或原子更新保护发货记录,具体思路可参考回调幂等与业务重试。

领取页验证购买者身份

顾客通过登录态或受控的领取凭证访问交付内容。不要仅凭容易猜到的订单号展示完整兑换码,也不要把敏感授权内容放入公开页面源码、搜索索引或普通访问日志。

邮件通知或短信通知可以告诉顾客“权益已准备好”,实际领取仍通过受控入口完成。发送失败时提供订单查询,不要求用户再次付款获取已购买商品。

售后保留交付证据

记录商品版本、分配时间、首次领取时间以及必要的操作结果,不收集与交付无关的信息。用户反馈无法使用时,先区分未分配、无法领取、商品失效和使用环境不匹配,再决定补发或进入退款流程。

退款时同步检查权益是否需要撤销、已使用兑换码如何处理。更换支付服务或站点系统时,保留旧订单的查询与售后通路,迁移方案可参考支付系统切换指南。