写这篇是为了告诉广大iOS自动续费订阅的开发者们,结束无理由退款的时代来了,告别白嫖党。
从WWDC24开始,苹果也支持了自动续费订阅类型的消费信息回传,也就是说用户发起退款请求后,我们会收到苹果服务器的通知,告知我们回传用户的消费信息,辅助苹果对此次退款做出决定。我们也开始完善了这一块内容,发现效果真是杠杠的好。
废话不多说,先上效果图:
image.png
简单说明
App 如果使用了苹果的内购(IAP),每当发生用户购买、续费、退款等操作时,苹果服务器都会向开发者指定的地址发送一条消息,不同的消息有不同的 notificationType 值,其中 CONSUMPTION_REQUEST 消息的意思是用户为应用内购买发起了退款请求,App Store 请求开发者服务器提供用户的消费数据,用于协助 App Store 决定是否给用户退款。
开发者可以忽略 CONSUMPTION_REQUEST 消息,也可以根据需要,在 12 小时内回应 App Store。
官方文档已经说明的非常清楚,开发者按照流程接入即可。
image.png
以下内容需要在用户协议中说明隐私数据收集、使用和撤销等。
image.png
具体字段解释:
{
"accountTenure": 0, // 用户账户年限,0 表示未知
"appAccountToken": "", // 用户 uuid,由于之前没有设置,此处留空
"consumptionStatus": 0, // 消费状态,0:未知,1:未消费,2:部分消费,3:全部消费
"customerConsented": True, // 用户是否同意提供消费数据
"deliveryStatus": 0, // 交付状态,0:已成功交付
"lifetimeDollarsPurchased": 0, // 用户在应用内购买的总金额,0 表示未知
"lifetimeDollarsRefunded": 0, // 用户在应用内退款的总金额,0 表示未知
"platform": 1, // 平台,0:未知,1:苹果平台,2:其他平台
"playTime": 0, // 用户在应用内的总时间,0 表示未知
"refundPreference": 1, // 商家对退款的意见,0:未知,1:支持,2:不支持,3:不确定
"sampleContentProvided": True, // 是否已经提供了示例内容
"userStatus": 1, // 用户账号状态,0:未知,1:活跃,2:暂停,3:关闭,4:受限
}
尽量保证数据真实性,不要凭空捏造。
参考
https://developer.apple.com/documentation/appstoreservernotifications/notificationtype
https://developer.apple.com/documentation/appstoreserverapi/send_consumption_information
https://oldj.net/article/2024/08/09/consumption-request-apple/