Apple开发_有关苹果内购&订阅操作的一些流程图

🔔 苹果内购&订阅完整流程

sequenceDiagram participant 用户 participant App participant 你的服务器 participant Apple 用户->>App: 点击订阅 App->>Apple: 发起支付 Apple-->>App: 返回收据 App->>你的服务器: 提交收据+用户ID 你的服务器->>Apple: 验证收据 Apple-->>你的服务器: 返回订阅详情 你的服务器->>数据库: 存储有效期 你的服务器-->>App: 返回"支付成功" loop 每次启动App App->>你的服务器: 快速验证请求 你的服务器->>数据库: 检查有效期 你的服务器-->>App: 返回是否有效 end

🔔 用户取消订阅的完整流程

1️⃣ 用户取消自动续订(合规行为)

sequenceDiagram participant 用户 participant App participant Apple participant 你的服务器 用户->>Apple: 在「设置」里取消自动续订 Apple->>你的服务器: 发送订阅状态更新(通过服务器通知) 你的服务器->>数据库: 标记「auto_renew=false」 App->>你的服务器: 下次验证时(如7天后) 你的服务器-->>App: 「会员可用到2023-12-31」

👉 相当于
会员去支付宝关闭自动扣款,但已付的月卡还能用到月底,健身房登记本会备注"下月不续费"。


2️⃣ 用户申请退款(异常行为)

sequenceDiagram participant 用户 participant Apple participant 你的服务器 用户->>Apple: 申请退款「我不想要了」 Apple->>你的服务器: 发送退款通知(通过服务器通知) 你的服务器->>数据库: 标记「is_refunded=true」 你的服务器->>App: 立即推送「会员资格终止」

👉 相当于
会员向支付宝申诉"我没用过服务",支付宝把钱扣回,健身房立刻停卡并拉黑此人。


退款检测流程(无需苹果推送)

1️⃣ 方案A:服务器定时主动查询Apple(推荐)

sequenceDiagram participant 用户 participant App participant 你的服务器 participant Apple 用户->>Apple: 申请退款 Apple->>Apple: 标记该收据为退款状态 loop 你的服务器定时任务 你的服务器->>Apple: 每日批量查询所有订阅状态 Apple-->>你的服务器: 返回退款名单 你的服务器->>数据库: 标记退款用户 end App->>你的服务器: 下次启动时请求状态 你的服务器-->>App: "该用户已退款,立即终止服务"

优势

  • 不依赖用户设备在线
  • 每天批量检查一次即可(Apple允许)
posted @ 2025-07-12 13:44  CH520  阅读(110)  评论(0)    收藏  举报