V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
zhouhuhu007
V2EX  ›  iDev

缓解 ios 恶意退款:从零开始搭建“防退款系统”

  •  2
     
  •   zhouhuhu007 · 1 天前 · 2910 次点击

    做 ios 开发的朋友们,有遇到过大规模的恶意退款么?一夜之间,少则几百刀,多则上万刀,一下子全部退掉,甚至会导致 App 被下架,开发者的努力付之东流。

    其实 Apple 在收到用户的退款申请后,会发送 3 次 CONSUMPTION_REQUEST 的通知给我们开发者,根据开发者提供的 CONSUMPTION INFO (例如:用户的累计消费金额,累计退款金额,开发者的退款偏好等)进行综合决策。因此开发者只要及时的、正确地回复 Apple 的 CONSUMPTION_REQUEST ,就能帮助 Apple“公平”地决策,有效降低恶意退款的比例。

    当前市面上有些平台已经实现了 CONSUMPTION_REQUEST 的自动答复系统,例如 RevenueCat ( https://www.revenuecat.com/)等,但是有一个显著的缺点,就是需要开发者把 AuthKey 和 In-App Purchase Key 等上传到云端。相当于开发者需要把 AppStore Connect 的连接和查询的权利,全部交给三方服务( RevenueCat 等)。这对一些安全敏感的开发者(包括企业开发者)来说,是完全不可接受的。

    为了解决这个问题,我开源了一款管理 Apple Notificaiton 的系统,支持一键部署到 Supabase 中,并用 Valut 保管 Apple 的密钥,同时可以自动答复 CONSUMPTION_REQUEST ,并且展示答复的 Consumption Info 中的详细信息和含义。这样,开发者就可以轻松、及时地处理 Apple 发来的退款征询意见。在保证 AuthKey 和 In-App Purchase Key 安全性的同时,大大降低退款的订单数(对于消耗品,尤其有效)。

    项目地址: https://github.com/argus-sight/refund-swatter-lite

    开发者朋友们,大家试试吧,有问题可以联系 [email protected]

    6 条回复    2025-09-10 14:35:33 +08:00
    billzhuang
        1
    billzhuang  
       1 天前 via iPhone
    这都是幸福的烦恼
    alioth0909
        2
    alioth0909  
       1 天前
    @billzhuang 真的被退款的时候,也是一种割肉的感觉。因为这个东西没底的,不知道总共会退多少的,而且一旦开始退款了,就没有办法了,只能干着急。
    shijingshijing
        3
    shijingshijing  
       1 天前
    哇,这个 github 的 repo ,每个 commit 的格式真好,是用的 AngularJS 那个标准么?工具自动生成的?
    alioth0909
        4
    alioth0909  
       1 天前
    @shijingshijing 用 OpenAI 改的,写的时候有的 commit 是英文写的,有的是中文写的,开源前,用 openai 的 codex ,把历史的 commit 全部统一改成英文,优化下,最后推送到远程的。
    alioth0909
        5
    alioth0909  
       1 天前
    @shijingshijing 补充下,commit 都是 AI 自动生成的
    crocoBaby
        6
    crocoBaby  
       9 小时 17 分钟前
    @shijingshijing vscode 和 trae 早就有拉,修改文件后,commit 那里有个小图标,点它就能自动生成了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2488 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:52 · PVG 23:52 · LAX 08:52 · JFK 11:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.