我有在应用程序购买我的应用程序。 我正在使用日本商店的testing账号来testingJapanase语言设备。 我在应用程序购买标题和说明中都有英文和日文。 无论我做什么,SKProduct的localizedTitle和localizedDescription总是以英语回来。 我究竟做错了什么? 我的iPad 3最初是在美国的商店里设置的,用英语作为语言,但是我退出了我的商店帐户,并在应用程序中通过正常stream程login了日本testingiTunes帐户。 该设备的语言目前是日语。
有时候我得到这个callback – (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 甚至在我收到之前 – (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 我甚至没有说finishTransaction: 我发现这超级怪物。 我所有这一次都假设paymentQueueRestoreCompletedTransactionsFinished:不会触发之前,我已经标记每个未完成的交易完成。 这是预期的行为? 这是我在文档中find的 – (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue Description告诉观察者支付队列已经完成发送恢复的事务。 在所有可恢复事务已经被支付队列处理之后调用该方法。 你的应用程序不需要在这个方法中做任何事情。 我不确定这是什么意思。
在我的申请中,更新期限为1个月。 沙箱中自动更新的有效时间为5分钟。 因此,每5分钟后,交易标识符就会不断变化。 最初我会买一个产品。 如果我成功了,我将获得SKPaymentTransaction对象,它包含所有关于transcation的细节,如transactionIdentifier,transactionDate,transactionReceipt和transactionState。 直到这个我明白了。 如果我调用恢复function,(ierestoreCompletedTransactions)我得到所有完成的交易信息。 据我所知,第一个交易logging信息将是迟交易信息。 比较两个对象的细节是不同的。 这怎么可能。 我完全困惑,如何恢复这个自动更新交易的细节。 任何帮助表示赞赏。
我一直在网上search了一个多星期,我已经尝试了所有build议在所有和所有地方,但没有任何工作。 我无法从Store Kit获取产品。 产品数组总是返回空白,并且无效的产品标识符始终充满我的标识符。 老实说,我不知道该怎么做。 这个问题是我最后的希望。 任何人都可以帮忙吗? NSSet *s = [NSSet setWithObjects:@"com.aceapegames.awesomecatgame.double_coins", @"com.aceapegames.awesomecatgame.10k_coins", @"com.aceapegames.awesomecatgame.150k_coins", @"com.aceapegames.awesomecatgame.50k_coins", @"com.aceapegames.awesomecatgame.disable_ads", nil]; SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:s]; request.delegate = self; [request start];
我有一个iOS应用程序,它具有应用程序内购买和恢复购买function。 当我在沙箱模式下testing应用程序时,我总是使用警报来询问iTunes帐户的密码(用户名已填充)。 现在我的应用程序是活的,我安装了它,并做了应用程序内购买,然后恢复购买,所以我不在沙箱模式仍然不断收到要求密码的iTunes帐户的警报。 以下是一个代码,它提供了我之前购买的ProductIds,然后将这些productId传递给委托,将这些状态从“购买”更改为“已购买” – (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { //NSLog(@"Restored Transactions are once again in Queue for purchasing %@",[queue transactions]); NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init]; //NSLog(@"received restored transactions: %i", queue.transactions.count); for (SKPaymentTransaction *transaction in queue.transactions) { NSString *productID = transaction.payment.productIdentifier; [purchasedItemIDs addObject:productID]; // NSLog (@"product id is %@" , productID); } if ( mDelegate != […]
我想build立一个机制,为我的一些VIP用户设备释放我的应用内购买。 我的想法是我预先保存用户设备的UDID在我的后端服务器。 当应用程序启动时,它会打电话给我的服务器,并获得udid列表,并检查设备是否在VIP列表中。 如果是的话,直接显示全function没有任何button要求在应用程序内购买。 但是,UDID不能再使用了。 在这种情况下我应该做什么? 我不想要求用户input一些代码。 因为这会干扰我的用户界面。 问题的新更新: 目的是,我得到了他们将审查我的应用程序的人的名单,但我不想有任何popup窗口要求促销代码或这些人的任何特定的用户界面。 所以我的想法是,我要求他们给我他们的UDID(或任何他们可以识别自己的电话号码),我把它们保存在我的后端。 当他们下载应用程序时,应用程序调用后端,并比较其标识号/ UDID,看看他们是否是我的VIP,并自动给他们全部的function,而不要求促销代码和任何特定于这些用户的UI。 我只想识别用户。 你们有什么解决办法? 谢谢
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) 委托方法传递“无法连接到iTunes Store”错误。 为什么? 我尝试设置应用内购买。 iTunes Connect设置中有任何错误? 我正在学习这个教程。 我正在testing真正的设备。 在出现蓝色popup窗口之前,我收到错误消息,以testuser身份validation自己。 我的职业概况可能有问题吗? 要分配configuration文件没有设备连接?
我正在尝试使用PhoneGap插件在应用程序中购买,它是https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/InAppPurchaseManager 但在沙箱testing我得到以下错误plugins.inAppPurchaseManager.updatedTransactionCallback.apply(plugins.inAppPurchaseManager,[“PaymentTransactionStateFailed”,0,“无法连接到iTunes Store”,“”,“”,“”]) 然后应用程序被击中…任何人都可以帮助我这个?
为什么很难find如何做到这一点是超出我的 – 也许我正在试图做错误的方式 – 谁知道 – 希望你们中的一个,哈哈。 我有一个button,说'购买'(非消耗品)。 如果购买成功,则更新购买的NSUserDefaults = YES,该button被移除。 一切都很好,在这里。 现在,当用户删除应用程序,并希望重新安装或安装在新设备上时,我想在这些情况下,代替“购买”button显示一个“恢复”button。 “恢复”button将被点击,restoreCompletedTransactions将被调用。 看来对我来说是合乎逻辑的 – 用户不想看到“购买”button – 他们已经购买了。 问题是NSUserDefaults购买= YES将不可用于重新安装或新安装。 所以我的问题是如何确定应用程序是否已经购买,所以我可以显示“购买”button或“恢复”button。 有没有办法确定这个应用内购买是否已经由用户做出? 在此先感谢拜伦。
我尝试了解从iTunes服务器获取的收据信息,但找不到相关文档。 尤其是, unique_identifier , unique_vendor_identifier , original_transaction_id (在WWDC'12会话中声称,事实上的客户ID)和[[[UIDevice currentDevice] identifierForVendor] UUIDString]什么[[[UIDevice currentDevice] identifierForVendor] UUIDString] ? {"receipt": {"original_purchase_date_pst":"…", "purchase_date_ms":"…", "unique_identifier":"…", "original_transaction_id":"…", "bvrs":"…", "transaction_id":"…", "quantity":"…", "unique_vendor_identifier":"…", "item_id":"…", "product_id":"…", "purchase_date":"…", "original_purchase_date":"…", "purchase_date_pst":"…", "bid":"…", "original_purchase_date_ms":"…"}, "status":0}` 我希望将此收据信息存储在我的服务器上以跟踪订阅有效期。 所以最好知道我应该使用哪个id作为用户身份的代理。