iOS IAP自动续费(一)和沙盒账号.md

先看官方文档:
https://developer.apple.com/app-store/subscriptions/
https://developer.apple.com/cn/app-store/subscriptions/

升降级的特殊

  • 在苹果订阅期内,更换商品做升降级操作(会调用- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions),如果苹果未扣款,则不会产生新的交易号,那么苹果推送给App端交易id不变,只是票据中有个字段“订阅关系”字段.Pending_renewal_infoPending_renewal_info
    App端是区分不了当前操作是否是升降级的, 所以如果你的App支持这种升降级操作,注意下这种情况(你的server端能 识别出升降级最好,这样App端也能识别出)
  • 复现场景条件: 线上真实苹果账号,沙盒账号无法复现。

订阅管理跳转URL

老的地址:https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions

新的地址:https://apps.apple.com/account/subscriptions(模拟器打不开)

#ifdef __IPHONE_10_0
    #if __IPHONE_10_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)])
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://apps.apple.com/account/subscriptions"] options:[NSDictionary dictionary] completionHandler:^(BOOL success) {}];
    }
    #endif
#else
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://apps.apple.com/account/subscriptions"]];
#endif

沙盒账号

  • 测试 App 内购买项目 官网
  • 不能是别人已经注册过 AppleID 的邮箱, 可以不是真实的邮箱,但是必须符合邮箱格式
  • App Store 地区的选择,测试的时候弹出的提示框以及结算的价格会按照沙箱账号选择的地区来,建议测试的时候新建几个不同地区的账号进行测试
  • 注册沙盒测试账号时,提示报错Unknown Errors while creating Sandbox Tester, Please check Error Log, email=a***st@qq.com
    解决方案:把你的密码设置的复杂点,比如包含数字、字母混大小写等
  • 用沙盒账号测试支付的包,只能是adhoc签名证书或者develop签名证书打的包,不能是从AppStore或者TestFlight上下载的,还没上线之前App并没有地区之分,沙盒账号随便哪个地区都可以用来测试,弹出的购买提示框会根据当前沙盒账号AppleID的地区显示语言的.

沙盒账号订阅

实际时限 续订间隔时限
1周 3分钟
1个月 5分钟
2个月 10分钟
3个月 15分钟
6个月 30分钟
1年 1小时
  • 1.测试订阅最多仅能自动续期5次,再加上首次购买,所以是6次购买。每天最多更新六次。所以如果想用同样沙盒复测的话,可以等24h后验证。
  • 2.沙盒账号的续订,如果一直打开着 app,可能过了 5 分钟续订周期也不会收到通知,最好是杀死 app,5 分钟后重新启动,这样就会收到续订的通知了。
    即1个月的自动续费,每5分钟续订一次,续订5次停止,然后你再验证票据就会得到21006错误。如果想在之后在测试,你需要其他的沙盒测试账号。
    • I.至于收据 - 你不会得到一个新的,但你应该得到另一个交易在同一张收据进行续约。交易将在交易队列中等待您,您应该使用SKPaymentTransactionObserver来监控SKPaymentQueue中的新交易。如果您验证配方,您还将看到具有更新到期日期的新交易。
    • II.订阅成功更新后,Store Kit会将续订事务添加到事务队列中。您的应用在启动时检查事务队列,并以与其他任何事务相同的方式处理续订。请注意,如果您的应用在订阅续订时已在运行,则不会调用事务观察器;您的应用程序会在下次启动时查找续订。
  • 3.和安卓相比,苹果测试起来没那么友好,尤其是没办法模拟用户手动取消订阅的场景,因为沙盒账号没有办法管理订阅。而安卓是可以测试这一场景的。
  • 4.使用户能够管理订阅: 在非沙盒账号的情况下,项目中可以设置为打开此 URL 启动iTunes 或 iTunes Store 并显示“管理订阅”页面。
    • 沙盒账号由于无法登录itunes,故无法取消自动续费的签约。
  • 5.划重点: 如果你是通过 TestFlight安装的,那么就不用使用沙盒账号进行购买了,需要使用真实的账号进行购买,当然也不会扣除你的钱的,只不过弹窗的说明变了.
    TF包还分外测包,和提审包,提审包是可以购买的,产品有时会拿这个验新增IAP的购买功能。
  • 6.自动续费在沙盒环境是不稳定的。有时续订5次,有时一次也没有。但是在生产环境没有这种问题。

StoreKit Test

2020年新出的一款适合开发者的功能:StoreKit Test
通过Xcode做各种模拟测试,比如缩短订阅周期为1s、5s管理沙盒账号处理退款、续订等各种订阅处理

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