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允许)

浙公网安备 33010602011771号