iOS Handle Refunds 处理退款 --- WWDC20(Session 10661)

1、前言

今年 WWDC 2020 苹果全球开发者大会,苹果宣布所有的内购品项类型,当用户退款成功时,开发者都能收到退款通知!!!退款通知!!!退款通知!!!

针对 App 内购买项目的退款通知现已可用

2020 年 06 月 24 日
App Store 服务器通知现在包含所有类型的 App 内购买项目的退款通知 (包括消耗型项目、非消耗型项目和非续期订阅)。这些信息能帮助您采取相应的行动,并告知他们相关的优惠更改,以及如何重新订阅。

针对 App 内购买项目的退款通知现已可用 - 新闻 - Apple Developer

2、处理退款

2.1 退款流程

在 2020 年 06 月 24 日之前,开发者完全不知道有用户退款了!(只有每月账单里看到退款的一个总数量 -。-):

image

2020 年 06 月 24 日开始,苹果新增流程:

image

2.2 退款通知

在苹果后台可以配置一个退款通知的回调地址(一个App配置一条链接):

image

配置的回调链接必须满足条件:

  • 满足应用传输安全要求(使用 https
  • URL 最长 255 字符

注意:这里的 https 是指苹果的 App Transport Security (ATS),其中有协议的要求,比如使用 Transport Layer Security (TLS) protocol 1.2 版本,具体见苹果文档: Preventing Insecure Network Connections | Apple Developer Documentation

2.3 退款通知的类型

苹果把回调的通知分为2种类型:

  • 退款通知类型
  • 取消通知类型

其中新增加的退款通知类型是针对:

  • 消耗型
  • 非消耗型
  • 非续期订阅

取消通知类型是针对:

  • 自动续期订阅
image

2.4 退款通知的内容

苹果返回的通知内容为 JSON 对象数据,所有的退款订单的通知是在 unified_receipt 里的 latest_receipt_info 数组中:

image
字段 说明
environment 收据生成的环境。values: Sandbox, PROD。自动续订订阅是可以沙盒环境测试取消订阅。
latest_receipt Base64编码的最新交易收据。
latest_receipt_info 收据的列表
notification_type 通知类型,退款的值应该是:REFUND, 可参考:notification_type
password 验证收据时的 password,App 专用共享密钥是用于接收此 App 自动续订订阅收据的唯一代码。如果您需要将此 App 转让给其他开发者,或者需要将主共享密钥设置为专用,可能需要使用 App 专用共享密钥。
bid App的 bundle id(包名)
bvrs App的版本号
unified_receipt 退款的订单信息在这里

unified_receipt 里的 latest_receipt_info 是一个数组,其中包含的最近的100次应用内购买交易:

image

数据中每个退款订单的主要字段:

image
字段 说明
original_transaction_id 苹果订单的唯一标识 transaction_id
cancellation_data_ms 退款的时间
cancellation_reason 用户退款的原因。(0或1,含义未知)
bid 应用包名 bundle id
product_id 商品唯一标识 id

详细的返回字段见官方文档:

2.5 退款通知的响应

您的服务器应发送HTTP状态代码,以指示服务器到服务器的通知接收是否成功:

  • 如果回调接收成功,则发送 HTTP 200。您的服务器不需要返回数据。
  • 如果回调接收不成功,请发送 HTTP 50x40x 让 App Store 重试该通知。App Store在一段时间内尝试重试该通知,但在连续失败尝试后最终停止(3次)。

注意事项:

  • 当您使用包含退款交易的收据 transaction_data 向苹果服务器校验 verifyReceipt 时,JSON响应中不存在退款交易,自动续订订阅除外。
  • 收到 REFUND 通知时,您有责任为每笔退款交易存储,监控并采取适当的措施。(因为苹果只通知一次,暂时无法在苹果后台查询退款的订单。也不能由开发者主动去苹果服务器查询。)

2.6 自动续订订阅通知

这个取消通知之前就一直有,所以这里不重复了,需要的自行搜索。

自动续订订阅的相关文档:

疑问解答

1、 苹果后台能否查看到退款的订单详情?

答:暂无。(估计明年 WWDC2021 会有啦?)

2、 消耗型、非消耗型、非续期订阅能不能在沙盒环境测试退款?

答:暂时不能。(估计未来会有?等更新吧....)

总结

大概就是这样,其实退款的流程并不复杂,很简单,但是为什么苹果用了那么多年才做出来呢?

要知道这个原因,还是要回顾一下历史~

退款的方式

用户可以通过那些方式申请退款:

  • 联系Apple客户支持并要求退款
  • 登录并使用Apple的自助服务工具 reportaproblem.apple.com 要求退款
  • 要求他们的付款方式发行人退款 (比如要求银行取消扣费,或者黑卡无法扣费等)

详细:针对从 Apple 购买的 App 或内容申请退款 - Apple 支持

退款的政策

针对退款,不同国家或地区会有不同的“无条件退款期限”。

AppStore 商店退款政策:

  • 欧盟区: 14天无条件退款。
  • 中国台湾:7天无条件退款。
  • 中国/美国/韩国等其它大多数国家:90天有条件退款。 (注:在中国区,每位App Store用户能享有一次无条件退款机会)

注:中国区 App Store 的具体退款政策:一个ID有一次无条件退款机会,一年2次有条件退款,第3次退款会非常难。至于退款到账时间快为36小时内,也有7-15个工作日退还。

正是这些“漏洞”,所以,出现专业的代充工作室,导致开发者坏帐非常严重~

特别是火爆的游戏代充(月流水(千万级)的12%可能就这样没了)~

很多不熟悉的朋友不太理解,总会问有那么多人退款吗?

其实,应用内购买的退款主要是针对游戏和直播打赏。游戏类的多是代充黑产;主播自己刷火箭打赏然后退款,收入照收,各种黑幕,只有业内人才懂的苦 -。-

“退款”滥用

“退款”人的具体手段方式:

  • 1、利用淘宝店,以代充打折的名义获取玩家账号信息,在为玩家充值后申请退款。淘宝店获得充值金、玩家获得道具、游戏厂商亏钱;
  • 2、收购消费过的App Store ID账号,要求至少要消费过500元以上。收到的账号会被用来退款和冲榜;
  • 3、不断寻找有退款需求的新用户,帮其退款,收取佣金;

退款通知的意义

image
  • 允许您对应用内内容的可访问管理 (例如游戏的宝石或金币回收或账户余额扣减等)
  • 管理退款滥用
  • 快速解决用户问题 (发现用户退款后,可以在应用内弹出联系客服,协助用户解决应用遇到的退款原因的问题?)
  • 重新平衡游戏经济

处罚行动

一旦收到有关客户获得应用内购买退款的推送通知,作为开发人员,您可以采取七种不同的操作,从中等到严重(温和处理到严肃处理)。:

image

苹果旨在为客户和开发人员提供更好的体验,所以建议操作要慎重考虑。

对退款用户的处理

image

苹果给了一个示例,用户退款成功后,在 App 中给用户提示退款的时间和说明,可以重新购买,或者联系客服!

也许帮助需要帮助的用户,为他们解决为什么退款的原因,才能减少真正的退款用户,用户觉得值!那么退款数自然会减少~

所以,苹果当初为什么不愿意提供退款的接口?其实是一直想保护用户的隐私(退款自由),但是当“退款”滥用时,不得不这样提供了退款通知接口。

这正是我们所看到的,苹果想的,你怎么想!怎么做!想好在决定~




ps:题外话,大家一直觉得苹果的应用内购买做的很“烂”,是因为大家不太了解,苹果的这套支付系统有多复杂。可以打开下面的链接看看不同国家或地区的付款方式,要在一个应用里集成这些付款方式,不是一个支付宝或微信能想象到的。了解了才知道,唯有多学习:可与 Apple ID 搭配使用的付款方式 - Apple 支持

参考


  • 如有侵权,联系必删!
  • 如有不正确的地方,欢迎指导!
  • 如有疑问,欢迎在评论区一起讨论!


注:本文首发于 iHTCboy's blog,如若转载,请注来源。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容