苹果宣布在美国开放第三方支付

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

今天早上看到一条新闻,在苹果和 Epic 的案件中,美国最高法院驳回了苹果的上诉,维持原判,该裁决要求苹果允许开发者将客户引导至其他支付方式。

因此苹果今天更新了美国 App Store 指南,允许开发者链接到第三方支付。在之前,应用内的虚拟商品购买只能通过苹果的 IAP,本次的更改可以说是影响巨大,今天来聊聊关于这件事我知道的一切。

带来哪些变化?

如果你的应用在美区上架,那么内购的商品购买可以引导用户到网页上进行(比如你们的官网)。

即使是引导到第三方支付,苹果依然要收取收入分成,我们来对比一下抽成比例:

内购:如果通过苹果的内购(IAP)支付,苹果收取 30% 的利润,小商家收取 15%。

第三方:而通过第三方链接支付,苹果收取 27% 的利润,小商家收取 12%。

苹果如何保证收取第三方支付分成

一旦流水不通过苹果过账,收入分成其实是非常难实现的,目前苹果要求接入第三方支付链接的应用,每个月需要在 15 号之前主动把流水账单提交给苹果,苹果根据账单来向开发者收取分成。。。

但是,苹果如何防止商家做假账呢?目前没有看到,但苹果说以后"可能"会有相关的 API 来保证。

开发者如何实现?

要申请这项功能,必须通过项目的一些配置,和苹果的严格审核。

1、填写申请表

通过访问 developer.apple.com/contact/req... 这个网址来填写申请表格。

必须是开发者账户的持有人才有资格填写

如果申请表审核通过,你将收到一封确认授权的邮件。然后就可以进入下一步了。

2、Xcode 项目配置

在 Xcode 中打开 .entitlements 文件,添加一个新的值,key 为 com.apple.developer.storekit.external-purchase-link ,value 为 Bool 值 True

这一步是声明你的 App 支持外部购买链接的。

然后在你项目中打开 info.plist 文件,增加一个新的 Key,SKExternalPurchaseLink,Value 是一个字典,字典中增加一个 key 为 us,value 为你的链接。

其实通过这里的 us,能窥探出苹果是为了其他国家以后开通这个功能留了条后路的。

这里填写的 url 要与你上边申请的 url 一致。

对于 URL,苹果也给了一些限制:

  1. 必须使用 https

  2. url 中不能包含 query 参数

  3. 1000 个字符以内

代码实现

当用户点击外部链接的按钮,需要先调用 canMakePayments() 方法查看是否可以支付。

如果可以支付,再调用外部购买链接 API,这时候苹果会自动唤起一个新页面告知用户,他们将会跳出 App 去支付:

当用户点击继续按钮,系统将会跳转到 Safari 中打开你之前在 info.plist 中指定的链接完成购买。

结语

即使在新规则下,苹果仍将继续保持对支付的严格控制,想要成功避开苹果的规定不是那么容易,苹果会给开发者制造各种障碍,但是在大趋势下,苹果需要被迫越来越开放的,这一变化对苹果来说仍然是一个重大的让步。

包括 3 月之前必须开放侧载和第三方应用商店,都是在相关法律法规的强制下执行的,关于这块内容我们以后有机会再好好讲讲。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
鹏多多14 小时前
flutter-切换状态显示不同组件10种实现方案全解析
android·前端·ios
jh_cao15 小时前
(4)SwiftUI 基础(第四篇)
ios·swiftui·swift
iOS阿玮15 小时前
分享一个4.3(a)瓜,一个操作毁了公司3个月的成果。
uni-app·app·apple
00后程序员张16 小时前
苹果软件混淆的工程逻辑,从符号空间到资源扰动的体系化实现
android·ios·小程序·https·uni-app·iphone·webview
progalchemist1 天前
Quick SwiftObjective-C测试框架入门教程
开发语言·其他·objective-c·swift
HarderCoder1 天前
Swift 闭包(Closure)从入门到深入:语法、捕获与实战
swift
HarderCoder1 天前
Swift 集合类型详解(三):自定义集合、持久化结构与 ORM 共舞
swift
HarderCoder1 天前
Swift 集合类型详解(一):Array、Set、Dictionary 全貌与选型思路
swift
HarderCoder1 天前
Swift 集合类型详解(二):自定义 Hashable、值语义与性能陷阱
swift
jh_cao2 天前
(3)SwiftUI 的状态之上:数据流与架构(MVVM in SwiftUI)
ios·架构·swiftui