一个零依赖, 多语言, 多币种, 多租户的 apple 退款管理助手

2 天前
 SethShi

本服务构建于 Laravel / Filament 多租户架构之上, 通过即时处理 Apple 的 CONSUMPTION_REQUEST 通知并异步回传消费数据,有效帮助开发者防范欺诈退款。

在线演示

🌐 演示地址: https://apple-refund-assistant.shiguopeng.cn/

⚠️ 注意: 系统每 30 分钟会重置一次。

截图

快速开始

使用已经构建好的镜像

docker run -d \
  -p 8080:8080 \
  --name apple-refund-assistant \
  --restart=always \
  ghcr.io/seth-shi/apple-refund-assistant:latest

本地构建运行

git clone https://github.com/seth-shi/apple-refund-assistant
cd apple-refund-assistant
## 构建镜像并部署
./deploy.sh

如果需要挂载数据

touch database.sqlite
docker run -d \
  -p 8080:8080 \
  -v $(pwd)/database.sqlite:/var/www/html/database/database.sqlite \
  --name apple-refund-assistant \
  --restart=always \
  ghcr.io/seth-shi/apple-refund-assistant:latest

消费字段策略

字段 描述 数据表来源 计算规则
accountTenure 用户注册天数 users.register_at 当前时间减去注册时间
appAccountToken 账号 token users.app_account_token 需要客户端创建订单时传递
consumptionStatus 消费状况 transactions.expiration_date 对比当前时间,如果已到期返回消费完
customerConsented 用户同意提供数据 写死true
deliveryStatus 是否成功交付了一个功能正常的内购。 写死0(正常交付)
lifetimeDollarsPurchased 内购总金额 users.purchased_dollars 根据苹果交易事件累加这个字段,你也可以自行累加
lifetimeDollarsRefunded 退款总金额 users.refunded_dollars 根据苹果退款事件累加这个字段,你也可以自行累加
platform 平台 写死1(apple)
playTime 客户使用应用时间的值 users.play_seconds 需要你的系统支持更新这个字段,否则是0
refundPreference 退款请求的期望结果 transactions.expiration_date 对比当前时间,如果已到期希望拒绝退款
sampleContentProvided 是否提供试用 apps.sample_content_provided 创建应用时配置应用
userStatus 用户状态 写死是1(正常用户)

未来计划

感谢

870 次点击
所在节点    分享创造
2 条回复
shoaly
2 天前
有没有大佬解释一下 , 这个是做啥的?
SethShi
2 天前
@shoaly 防止恶意退款的,比如用户一直在苹果申请退款,用这个可以告诉苹果,不让他退款,减少你们公司的损失

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1163694

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX