美文网首页
iOS 内购补充点

iOS 内购补充点

作者: weicyNO_1 | 来源:发表于2017-10-08 19:02 被阅读0次

1、关于支付类型的选择

(1)消耗型物品:用一次,使用后失效,商品会在使用中一点一点消耗,这里最多使用的是游戏道具之类.游戏中内购大多使用这个,还有直播送礼物等等;

(2)非消耗型物品:最最坑爹的一种,这个不依赖自己服务器,只和苹果appid联系,只要同一个id购买,即使100个设备同时用这个id登录,都不需要进行再次购买,而且苹果强制要求要有一个Restore Purchases button,这个按钮的主要作用是恢复之前的购买.(appstore上面收费软件的下载就是这种类型)

附上这种类型的处理方法:

开发中有2种方案:

一种是直接在购买按钮下面添加一个恢复购买按钮(但是你要告诉审核人员,这个按钮在哪,发图片或者视频给审核人员,这种方便最简单,但是显示不好)

一种是通过获取该appid下面购买过的商品,然后在判断该商品是否在购买过的商品列表中,如果有,显示回复购买按钮,如果没有显示购买按钮.

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];if([SKPaymentQueue canMakePayments]) {//用户允许app内购if(productId.length) {

NSArray*product = [[NSArray alloc]initWithObjects:@"商品id", nil];

NSSet*set=[NSSet setWithArray:product];

SKProductsRequest*productRequest =[[SKProductsRequest alloc] initWithProductIdentifiers:set];

productRequest.delegate=self;

[productRequest start];

}else{//商品id为空}

}else{//不支持购买}

#pragmamark SKProductsRequestDelegate 查询成功后的回调- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSArray *product =response.products;if(product.count ==0) {//无法获取商品信息}else{//发起购买请求SKPayment *payment = [SKPayment paymentWithProduct:product[0]];

[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];//这句代码就是恢复购买}

}

接下来是代理函数,在这里你可以获取到已经购买过的商品集合

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions: (nonnull NSArray *)transactions { self.restoreArray =[[NSMutableArray alloc]init];for(SKPaymentTransaction *transactionintransactions) {switch(transaction.transactionState) {caseSKPaymentTransactionStatePurchasing://正在交易break;caseSKPaymentTransactionStatePurchased://交易完成break;caseSKPaymentTransactionStateFailed://交易失败break;caseSKPaymentTransactionStateRestored://已经购买过该商品[self.restoreArray addObject:transaction.payment.productIdentifier];

[self restoreTransaction:transaction];break;default:break;

}

}

}- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {if([self.restoreArray containsObject:self.goodsProductId]) {//用户购买过商品.就应该显示"恢复购买按钮"}else{//用户没有购买过该商品}

}

(3)自动续期订阅:使用很少,适合报刊订阅等等

(4)非续订型订阅:用到的比较多的,可以依赖自已服务器,可以无数次购买,没有appid限制,比如一个价格商品有很多种规格,就可以使用这个.比如网易云课堂的收费课,腾讯课堂收费课等

2.游客模式:一般这个会是提示你5.1.1然后被拒。

最近审核比较严格,内购的时候最好提供游客模式,即使用户没有登录,也能进行购买,不要在购买的时候,强行提示用户登录(本人因为这个被拒N次)。

参考过的链接:

http://www.cocoachina.com/bbs/read.php?tid-1716937.html

http://www.cocoachina.com/bbs/read.php?tid-1720959-page-2.html

http://www.cocoachina.com/bbs/read.php?tid=1692154

https://developer.apple.com/app-store/review/guidelines/#data-collection-and-storage

总结方法:

1.我遇到过类似的,你在购买的时候提示他登录审核就会被拒绝,购买时直接跳转登录页面审核就过了。。。(容易被拒,还是看人)

2.添加游客模式

3.默默登录 判断是不是在审核期间 不是则跳转登录 反之默默登录 这时候需要注意的是登录后用户数据的保存

相关文章

  • iOS 内购补充点

    1、关于支付类型的选择 (1)消耗型物品:用一次,使用后失效,商品会在使用中一点一点消耗,这里最多使用的是游戏道具...

  • iOS支付

    支付宝支付 支付宝支付支付宝补充 微信支付 微信支付 内购 iOS开发 内购流程

  • iOS 苹果内购流程

    本文参考: iOS开发之内购完全笔记 iOS开发内购全套图文教程 iOS应用程序内购/内付费(一) 代码...

  • IOS内购服务端技术方案

    IOS内购服务端技术方案 IOS购买vip流程 IOS内购服务器模式的主要流程如下所示: 服务端验证注意点 苹果A...

  • iOS内购流程文档-Lion

    iOS内购流程: iOS内购 什么时候用到呢? 虚拟产品就需要用到iOS内购;购买的商品,是在本app中...

  • iOS-内购

    前言:关于iOS内购,参考两篇博文 iOS-iOS内购流程(手把手图文教程)iOS内购你看我就够了(埋坑篇) 我自...

  • iOS内购一条龙------项目代码 (4)

    步骤一 iOS内购一条龙------账户信息填写(1)步骤二 iOS内购一条龙------配置内购产品ID (2)...

  • iOS内购一条龙------内购测试账号 (3)

    步骤一 iOS内购一条龙------账户信息填写(1)步骤二 iOS内购一条龙------配置内购产品ID (2)...

  • iOS 内购注意点

    公司的项目最近集成了iOS内购, 尽管网上有很多相当详细的内购集成教程, 但可能由于集成内购的应用比较少, 市场需...

  • iOS 内购 IAP

    1. iOS内购IAP(一) —— 基础配置篇(一)2. iOS内购IAP(二) —— 工程实践(一)3. iOS...

网友评论

      本文标题:iOS 内购补充点

      本文链接:https://www.haomeiwen.com/subject/rtryyxtx.html