惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
Y
Y Combinator Blog
月光博客
月光博客
IT之家
IT之家
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
L
LangChain Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
博客园 - Franky
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
V
Visual Studio Blog
小众软件
小众软件
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium

Flutter

开源了一个 Flutter 多链钱包 - V2EX # 用 GPT-5 完成 Flutter/Dart 的 LoongArch 全栈移植:从 Dart VM 到 Flutter Engine 与 eLinux - V2EX 开源一个 flutter 开发的 web3 钱包 app - V2EX kkRepo 只用 1 天就支持了 Futter / Dart / Pub 仓库私服搭建、支持代理 pub.dev、支持聚合私服和 Proxy flutter 开发的鸿蒙应用上架应用商店了 flutter 现在开发最佳的库用什么?或者有什么好用的脚手架吗? USB 摄像头求助。 flutter 引入 aar 包,运行报错,版本 3.38.9 用 Flutter 做了一个 Redis Desktop Manager flutter 生态这么差?写个 demo 两天都没调通 由于开发 flutter 然后测试是黑盒测试只会手点,开发了个插件 求助, flutter 项目混合式搭建问题 求助大神,为什么用 flutter 开发的安卓笔记软件卡顿、掉帧 写了一个 flutter 的状态管理库,大家参谋参谋。 开源一套 flutter UI 组件库,方便各位大佬快速进行跨平台开发,欢迎各位大佬 start Flutter 的学习曲线高吗?对于个人开发者来说是否值得 闲着没事开发一款网文写作应用—— Letter Studio 请教 flutter-windows 客户端白屏问题。 最简单的状态管理库 view_model 第一次写 flutter app 有个疑问 另一个视角看 Flutter 的思维 招 flutter 工程师 兼职! 求推荐一个基础框架 Ubuntu 团队为什么无偿给 Flutter 写桌面多窗口功能? 请教: flutter 或 Android 更新、热更新方案 求一份 iOS 或者 Flutter 兼职 求助贴!关于 Flutter 接入 in_app_purchase 内购服务端部分二次验证的 flutter 是不是要升级所有的 widget 了? 上架 Play store 的问题... 应用未声明 QUERY_ALL_PACKAGES 权限却报错,是 firebase 导致的吗?
Flutter in_app_purchase 内购在 iOS 上的应用总结
burden7 · 2025-08-05 · via Flutter

前一段时间在 Flutter 应用接入 apple 内购时遇到了一些问题,目前搞清楚了大概,在这里简单总结记录下,希望帮助其他 V 友少陷入点困惑,以下总结可能仍有错误的地方,若有发现,欢迎指出。

Apple 的内购机制存在两个版本:StoreKit V1StoreKit V2

收据 & server api 区别

这两个版本对于我目前可知的影响是,用户购买之后代码中拿到的待验证收据信息的格式不同。如果是 V1 版本,则返回的是 base64 字符串,请求 server api ,获取到全部交易信息如果是 V2 版本,返回的是 JWT 格式(可以解析获取到原始 payload ,里面会有交易信息),请求 server api 获取到历史信息或本次交易信息;

关于请求后获取到的交易信息,V1 V2 也有不同:

V1 版本:调用 verify 接口,返回的交易信息是所有交易信息,包含所有时间段内的订阅、一次性购买信息

V2 版本:若调用inApps/v1/verifyTransaction可获得本次的交易信息;若调用inApps/v2/history(需要传入原始交易 id - originalTransactionId ),则根据这个原始 id 获得所有续订、升级、退订记录,另外这是一个分页接口,你可以传入 revision 游标参数来获取分页信息

用户在你的 App 中订阅后,到了下一个周期内你如何判断用户是否已续期

此部分也有不同的解决方案:

  1. 你可以在 APP 每次启动时或你的服务端每天轮询一次,去使用以上的接口去获取实时的 expiresDate (过期时间)
  2. 使用 App Store Server Notifications ( apple 推荐),你可以在 appstore connect 中设置一个你服务端的 hook 接口,当出现了续订、退订、退款等情况时,你的接口会收到一个 POST 请求,里面是一个 json 字符串,其中包含一个 JWT 字符串,你可以通过解析然后获得本次通知的交易信息