Tag: 在应用程序内购买

在应用程序中的应用程序购买收据validation

我想validation我的应用程序内的交易收据, 这是我的代码, – (void)recordTransaction:(SKPaymentTransaction *)transaction { NSData *receiptData = [NSData dataWithData:transaction.transactionReceipt]; NSString *encodedString = [Base64 encode:receiptData]; NSURL *url = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]; ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url]; [request setPostValue:encodedString forKey:@"receipt-data"]; [request setRequestMethod:@"POST"]; [request setDelegate:self]; [request startAsynchronous]; } 我得到输出: {“status”:21002,“exception”:“java.lang.NullPointerException”} 有人可以帮助我得到正确的收据validation吗?

如何检查在应用程序购买自动更新订阅有效

我正在寻找实施新的自动更新订阅使用在应用程序购买,但我不确定如何或何时检查用户当前订阅。 我的理解是,当用户最初订阅应用程序时,可以使用购买date和订阅date来计算订阅的持续时间。 这个date过后会发生什么? 我们如何检查用户是否自动续订或取消? 如果我使用restoreCompletedTransactions获取每次续订的交易和收据,系统将提示用户input他们的iTunes密码。 这是否意味着,如果他们已经购买了7天的订阅,他们将不得不在7天内input密码,当应用程序检查订阅是否仍然有效?

恢复购买:非消费品

我已经完成了一个小应用程序,我有一个非消耗品购买选项。 它在App Store上。 购买产品运行正常。 这是我的恢复购买function,似乎什么都不做。 我已经为恢复购买@IBAction添加了这个代码: @IBAction func restorePurchases(sender: AnyObject) { SKPaymentQueue.defaultQueue().addTransactionObserver(self) SKPaymentQueue.defaultQueue().restoreCompletedTransactions() } 但是当我点击还原购买button时,什么也没有发生。 我想我必须添加一个函数来检查恢复是否成功。 我打算修改以下代码: @IBAction func restorePurchases(sender: AnyObject) { SKPaymentQueue.defaultQueue().addTransactionObserver(self) SKPaymentQueue.defaultQueue().restoreCompletedTransactions() } func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) { for transaction:AnyObject in transactions { if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{ switch trans.transactionState { case .Restored: SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction) var alert = […]

设置Sandbox Tester帐户时出现“年份无效”错误

在iTunesConnect中设置Sandbox Tester时出现奇怪的错误。 出于某种原因,iTunesConnects会引发错误:“年份无效”。 它看起来像这样: 奇怪的是,我不能指定一年,因为它只问我月,日: 我不使用创build苹果ID时使用的同一封电子邮件,而且在我的电子邮件地址中没有任何+ abc。 我尝试使用gmail.com和hotmail.com,但结果在两种情况下都是一样的。 到底是怎么回事?

从Apple服务器获取空白响应订阅状态URL IAP,状态更新通知statusUpdateNotification

状态更新通知,statusUpdateNotification 我在iTunes帐户中设置了订阅状态URL,如https://www.xxxxxx.xx/iospushnotification.php 我也成功testing了nscurl –ats-diagnostics https://www.xxxxxx.xx/iospushnotification.php 我也在iospushnotification.php文件中实现了php代码来获得JSON响应 我成功购买自动续订订阅沙盒,但我没有得到任何状态更新通知我得到空白[] JSON响应从苹果服务器到我的服务器。 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html#//apple_ref/doc/uid/TP40008267-CH7-SW6

将应用程序还原到新设备时,iOS钥匙串存储是否存在?

我的问题直接与这个问题有关,但不同的是: iOS:新设备或恢复的钥匙串 。 如果您将信息存储在钥匙串存储中,它会被备份到iTunes和iCloud中,以便在将其恢复到其他设备时,数据将被保存。 对于OP自己的问题的部分回答是: 但是现在我读到只有在iTunes中encryption备份(不知道iCloud备份)时才能恢复钥匙串。 接受的答案是: 您可以使用iCloud传输数据,但这并不安全! 保存这个数据ENCRYPTED在你的服务器上,让应用程序读取这个数据将是一个解决scheme。 顺便说一句。 你不应该在钥匙串中保存未encryption的合理数据。 越狱后,钥匙链可以很容易被读取。 开发人员是否可以对代码中的数据进行encryption,或者通过iTunes或iCloud用户如何处理其备份来确定备份是否已encryption? 这个答案对我来说非常重要,因为我正在设置一个应用程序的初始启动date,这个应用程序决定了在应用程序订阅之前必须重新订阅多久。 这些信息必须在旧设备和新设备之间共享,即使应用程序在一段时间内被移除,也仍然保留在一台设备上。

iOS:在应用程序购买pipe理多个自动更新订阅与升级和降级选项

我们正在开发一个iOS应用程序的iPhone将免费function以及应用程序将具有高级function与4应用程序购买自动更新订阅选项如下: 单月订阅 单年订阅 家庭每月订阅 家庭每年订阅 我们将在应用程序内有一个商店屏幕,这些屏幕可以select订阅我们应用程序提供的各种订阅。 我们发现用户可以转到设备设置并pipe理他们的应用内购买订阅。 我们还计划提供诸如用户可以从一个订阅升级到另一个的选项,并且用户也应该能够降级他们的订阅,这将是所有相同的选项反向并返回到免费版本可能的升级选项: 免费的任何4订阅选项 单月一次到单身一年 每月一次到家庭每月 每年每个家庭一次 家庭每年每月家庭 可能的降级选项: 家庭每年每月到家庭 家庭每年到单月 家庭每月到单月 每年一次,每月一次 从任何4个订阅选项到免费版本 注意: 根据苹果公司,我们不能使用苹果家庭共享选项来分享In App购买,所以我们正在开发我们自己的家庭共享选项。 (参考: https : //support.apple.com/en-in/HT203046 ) 查询: 我们对如何在iOS应用程序中pipe理订阅有疑问。 如何设置设置选项将显示我们的4应用程序购买选项升级和降级从一个选项到其他? 作为iOS开发者,我们需要考虑如何恢复自动可更新订阅? 我们不清楚如果用户尝试使用我们的应用程序中的多个用户帐户使用iTunes帐户来恢复可能的情况,有什么防范,我们可以关注哪些苹果允许用户一次性购买订阅,并尝试恢复多个用户帐户? 苹果将​​拒绝定制的家庭共享选项使用汽车可再生订阅选项? 我们需要注意哪些问题,如果我们能够使用上述function,哪个苹果将无法处理? 如果我们正在使用iOS应用程序的上述function,有什么可能违反苹果指南和应用程序拒绝? 如果任何人能够分享他们的意见,或者提供一些指导我们应该去哪里,或者如果我们要从苹果政策中走出来,这对我们将是非常有帮助的….所有这些反馈将帮助我们获得在这里移动的东西。 谢谢

iOS服务器端validation – 收据types

当我尝试在服务器上validation购买时,我从Apple获得2种收据格式。 任何想法有什么不同? 1) content: { status: 0, receipt: { item_id: "662554154", original_purchase_date: "2012-10-12 08:32:12 Etc/GMT", purchase_date_pst: "2012-10-12 01:32:12 America/Los_Angeles", purchase_date: "2012-10-12 08:32:12 Etc/GMT", product_id: "com.example.mygame.tool1", bid: "com.example.mygame", version_external_identifier: "5647854", bvrs: "1.0", quantity: "1", transaction_id: "8844567822225544", app_item_id: "659563252", original_purchase_date_ms: "1350030732000", original_transaction_id: "8844567822225544", purchase_date_ms: "1350030732000", original_purchase_date_pst: "2012-10-12 01:32:12 America/Los_Angeles" } } 2) content: { receipt: { in_app: […]

使用通用的应用程序内购买项目的dynamic范围的数字产品

有没有人实施类似于下面的情况? 考虑一个提供有声读物的应用程序: 这些书籍由作者dynamic地从基于networking的UI进行维护。 作为应用程序内购买项目,这些图书可供iOS应用程序的用户使用。 默认情况下,苹果的指导方针build议使用非易耗品IAP,并且不断添加尽可能多的IAP项目。 但是这对我们来说并不合适,因为作者不能访问iTunesConnect,所以它不能dynamic地“自我服务”。 因此,我们计划创build一套通用的“易耗品”IAP项目,如“价值$ 0.99的书”,“价值$ 1.99的书”等等。 然后在应用程序中,我们将显示作者指定的相应IAP项目,当它们添加到我们的系统中时。 当然,我们将所购物品存储在服务器端,因此即使用户稍后从其他设备访问购买的物品,用户也总是可以访问购买的物品。 苹果是否会批准这一实施? 这是否符合他们的IAP政策? 我在论坛上发现了一些类似的老话题,但答案很混乱。 你有没有实现类似的东西,并得到苹果的批准?

如何使用不可更新的应用程序内购买来支持多种设备?

我正在构build一个iOS应用程序,其中将包含一个具有不续订订阅的IAP。 苹果公司在IAP的概述中提供了这个块头: 您需要向用户拥有的所有设备提供不续订订阅。 非续订订阅不会通过Store Kit自动同步到所有设备; 你必须自己实施这个基础设施。 例如,大多数订阅由外部服务器提供; 您的服务器将需要实现一种机制来识别用户,并将订购购买与购买它们的用户相关联。 我想遵循这个规则:我希望我的用户能够利用他们在其他设备上的一个设备上购买的订阅。 那么我怎样才能在他们的iPhone和iPad上识别同一个用户呢? 我知道你不能使用Apple ID,也不能依赖注册方法。 我刚才发现这个问题 , 那里给出的答案似乎不可行。 必须有别人所做的更优雅的事情。