今年 WWDC 2020 苹果全球开发者大会,苹果宣布所有的内购品项类型,当用户退款成功时,开发者都能收到退款通知!!!退款通知!!!退款通知!!!
针对 App 内购买项目的退款通知现已可用 2020 年 06 月 24 日 App Store 服务器通知现在包含所有类型的 App 内购买项目的退款通知 (包括消耗型项目、非消耗型项目和非续期订阅)。这些信息能帮助您采取相应的行动,并告知他们相关的优惠更改,以及如何重新订阅。
针对 App 内购买项目的退款通知现已可用 - 新闻 - Apple Developer
在 2020 年 06 月 24 日之前,开发者完全不知道有用户退款了!(只有每月账单里看到退款的一个总数量 -。-):
2020 年 06 月 24 日开始,苹果新增流程:
在苹果后台可以配置一个退款通知的回调地址(一个App配置一条链接):
配置的回调链接必须满足条件:
https
)注意:这里的
https
是指苹果的 App Transport Security (ATS),其中有协议的要求,比如使用 Transport Layer Security (TLS) protocol 1.2 版本,具体见苹果文档: Preventing Insecure Network Connections | Apple Developer Documentation。
苹果把回调的通知分为2种类型:
其中新增加的退款通知
类型是针对:
取消通知
类型是针对:
苹果返回的通知内容为 JSON 对象数据,所有的退款订单的通知是在 latrest_receipt_info
数组中:
字段 | 说明 |
---|---|
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次应用内购买交易:
数据中每个退款订单的主要字段:
字段 | 说明 |
---|---|
bid | 应用包名 bundle id |
cancellation_data_ms | 退款的时间 |
cancellation_reason | 用户退款的原因。(0或1,含义未知) |
original_transaction_id | 苹果订单的唯一标识 transaction_id |
product_id | 商品唯一标识 id |
更加详细的返回字段可查:
您的服务器应发送HTTP状态代码,以指示服务器到服务器的通知发布是否成功:
200
。您的服务器不需要返回数据。50x
或 40x
让 App Store 重试该通知。App Store在一段时间内尝试重试该通知,但在连续失败尝试后最终停止(3次
)。注意事项:
transaction_data
向苹果服务器校验 verifyReceipt 时,JSON响应中不存在退款交易,自动续订订阅除外。REFUND
通知时,您有责任为每笔退款交易存储,监控并采取适当的措施。(因为苹果只通知一次,暂时无法在苹果后台查询退款的订单。)这个取消通知之前就一直有,所以这里不重复了。
自动续订订阅可以参考文档:
1、 苹果后台能否查看到退款的订单详情?
答:暂无。(估计明年 WWDC2021 时会有啦?)
2、 消耗型、非消耗型、非续期订阅能不能在沙盒环境测试退款?
答:暂时不能。(估计未来会有?等更新吧....)
大概就是这样,其实退款的流程并不复杂,很简单,但是为什么苹果用了那么多年才做出来呢?
要知道这个原因,还是要回复一下历史~
用户可以通过什么方式申请退款:
详细:针对从 Apple 购买的 App 或内容申请退款 - Apple 支持
针对退款,不同国家或地区会有不同的“无条件退款期限”。
AppStore 商店退款政策:
正是这些“漏洞”,中国区 App Store 的具体退款政策 :一个ID有一次无条件退款机会,一年2次有条件退款,第3次退款会非常难。至于退款到账时间快为36小时内,也有7-15个工作日退还。 所以,出现专业的代充工作室等,导致开发者坏帐非常严重~ 特别是火爆的游戏代充(月流水(千万级)的12%可能就这样没了)~
很多不熟悉的朋友不太理解,总会问有那么多人退款吗?
其实,退款主要是针对游戏和直播打赏。游戏类的多,代充黑产;主播自己打赏退款,各种黑幕,只有业内人才懂-。-
“退款”人的具体手段方式:
一旦收到有关客户获得应用内购买退款的推送通知,作为开发人员,您可以采取七种不同的操作,从中等到严重:
苹果旨在为客户和开发人员提供更好的体验,所以操作要慎重考虑。
苹果给了一个示例,用户退款成功后,在 App 中给用户提示退款的时间和说明,可以重新购买,或者联系客户!
也许帮助需要帮助的用户,为他们解决为什么退款的原因,才能减少真正的退款用户,用户觉得值!那么退款数自然会减少~
这正是我们所看到的,苹果想的,你怎么想!
注:本文首发于 iHTCboy's blog,如若转载,请注来源。