Tag: 应用程序内购买

iOS6 – 在从苹果服务器下载的应用程序购买

我能够成功地进行inapp购买,并从苹果服务器下载内容并使用它。 我的应用购买内容是非消耗性的。 所以我在我的应用程序中提供“恢复”button 现在当用户按“还原”button,我打电话给方法: restoreCompletedTransactions 但在这里,我没有得到调用委托方法: – (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 这样我可以识别交易对象,并开始从苹果服务器再次下载内容。 有人可以帮我写“恢复”选项吗? 根据苹果,它说: //asynchronous。 将当前用户的已完成事务添加回队列以重新完成。 用户将被要求authentication。 观察者将收到0或更多的-paymentQueue:updatedTransactions :,后面跟着是-paymentQueueRestoreCompletedTransactionsFinished:成功或-paymentQueue:restoreCompletedTransactionsFailedWithError:失败。 在部分成功的情况下,一些交易仍可能交付。 但是对于我来说,我根本没有收到电话“paymentQueue:updatedTransactions”。 我刚刚接到电话“paymentQueueRestoreCompletedTransactionsFinished:”

在应用程序内购买沙盒testing – 旧的沙盒用户保持提示

我正在应用程序购买iPhone工作。 我试图通过调用restoreCompletedTransactions检索我的沙盒用户以前的购买,但没有callback正在被解雇。 我从其他有类似问题的人在线阅读,以删除沙盒用户,并尝试创build一个新的。 我试图在一个月左右的时间里多次删除和创build新的testing用户(一些用户报告说,这是苹果的沙箱服务器),但我没有运气。 这是奇怪的事情,每当我进行恢复呼叫时,在我的iPhone上提示input我的用户凭据时,系统会提示input我之前尝试过的所有以前的沙盒帐户 。 这是非常奇怪的,因为我从ITunesConnect中删除了它们,并在iPhone设置上的应用程序商店中注销。 我也尝试恢复我的iPhone – 也没有工作。

在IAP iOS中,SKErrorDomain代码= 0“无法连接到iTunes Store”Objective c

当我testing我的应用程序的IAP,它会引发以下错误 Error Domain=SKErrorDomain Code=0 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store} 我已经尝试了很多有关这个问题的链接,但没有任何帮助。 此外,“产品标识符”也是正确的,我也创造了新的沙箱用户,但没有输出。 任何帮助将是伟大的。

Java和AppStore收据validation

我正在尝试validation服务器端的付款收据。 我得到了一个{"status":21002, "exception":"java.lang.IllegalArgumentException"}作为回报 这里是代码: private final static String _sandboxUriStr = "https://sandbox.itunes.apple.com/verifyReceipt"; public static void processPayment(final String receipt) throws SystemException { final BASE64Encoder encoder = new BASE64Encoder(); final String receiptData = encoder.encode(receipt.getBytes()); final String jsonData = "{\"receipt-data\" : \"" + receiptData + "\"}"; System.out.println(receipt); System.out.println(jsonData); try { final URL url = new URL(_sandboxUriStr); final HttpURLConnection conn […]

提交应用程序购买审查第一次

我正在申请购买。 提交应用程序购买的所有细节后,给我的状态“准备提交”。 但是,在我的应用程序的应用程序购买中,“提交审查”button被禁用。 这是给我这个警告 “您的第一个应用程序内购买必须提交一个新的应用程序版本,从应用程序的应用程序内购买部分select它,然后单击提交。 我不明白该怎么做。 如果有人知道解决scheme,请帮助我。 提前致谢。

SKErrorDomain代码= 0在应用内购买

今天,在沙盒模式下testingIAP时,我们突然收到SKPaymentTransactionStateFailed错误消息: 错误域= SKErrorDomain代码= 0“无法连接到iTunes Store”UserInfo = {NSLocalizedDescription =无法连接到iTunes Store} 然后警报来了 它工作之前,我们没有改变任何IAP相关的代码。 我search了stackoverflow和谷歌,并试过这些: testing与设备,而不是模拟器, 确保产品ID是正确的。 确保XCode常规设置中的内部版本号是正确的 在iTunes连接中创build新的沙箱testing账户,并注销所有其他账户,然后用沙箱testing账户进行testing。 重新启动/重置设备 确保苹果开发者帐户最近没有更新 这些都不适合我。 有什么build议么? 更新:我认为这是iTunes Connect Server的问题,现在就解决了。

应用内购买在恢复时询问旧帐户密码

当我打开应用程序它popup的iTuneslogin与用户的任何交互。popup包含我的旧testing用户帐户邮件编号有时我当前testuser邮件编号aslo.I听说我必须打电话 [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 我曾几次打电话给它,但是仍然在问密码。 这是我的代码: -(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for(SKPaymentTransaction *transaction in transactions) { NSLog(@"Updated transaction %@",transaction); switch (transaction.transactionState) { case SKPaymentTransactionStateFailed: [self errorWithTransaction:transaction]; [[SKPaymentQueue defaultQueue]finishTransaction:transaction]; break; case SKPaymentTransactionStatePurchasing: NSLog(@"Purchasing…"); break; case SKPaymentTransactionStatePurchased: { if(no need to download) { // I will download the content later by restoring transactions. [[SKPaymentQueue defaultQueue]finishTransaction:transaction]; } else […]

使用IBAction /button进行应用程序内购买

我使用Ray Wenderlich教程来创buildIAP(http://www.raywenderlich.com/23266/),一切正常,但我不想在我的应用程序上使用表视图,我只想使用简单IBActionbutton进行购买。 所以基本上这是它在桌面视图上的工作方式。 首先确定产品: + (RageIAPHelper *)sharedInstance { static dispatch_once_t once; static RageIAPHelper * sharedInstance; dispatch_once(&once, ^{ NSSet * productIdentifiers = [NSSet setWithObjects: @"com.companyname.10coins", @"com.companyname.20coins", nil]; sharedInstance = [[self alloc] initWithProductIdentifiers:productIdentifiers]; }); return sharedInstance; } 然后触发行动: – (void)buyButtonTapped:(id)sender { UIButton *buyButton = (UIButton *)sender; SKProduct *product = _products[buyButton.tag]; NSLog(@"Buying %@…", product.productIdentifier); [[RageIAPHelper sharedInstance] buyProduct:product]; } […]

如何在iOS模拟器或设备上testingIAP(应用内购买)?

遵循Ray Wenderlich教程手册,我实现了一个简单的非易耗品应用内购买机制。 当我的应用程序启动时,我发起一个产品信息请求: self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; _productsRequest.delegate = self; [_productsRequest start]; SKProductRequest被创build。 它有一个内存地址,但没有其他事情发生。 没有一个委托方法被调用: – (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSLog(@"Product info received…"); NSArray *products = response.products; for (SKProduct *product in products) { NSLog(@"ID: %@, title:%@, (%f)", product.productIdentifier, product.localizedTitle, product.price.floatValue); } self.productsRequest = nil; } – (void)request:(SKRequest *)request didFailWithError:(NSError *)error { NSLog(@"Failed to […]

iOS 8,9上的NSUserDefaults有多安全?

应用内购买编程指南build议您可以在这里坚持在NSUserDefaults的应用内购买。 然而,我发现这篇文章说这是不安全的,它的数据很容易被访问和修改: NSUserDefaults以二进制格式存储在plist中,不encryption,存储在你的应用程序目录中。 这意味着任何用户,即使是“最高级的”用户,都可以用5分钟的时间修补NSUserDefaults。 如果这是真的,用户可以很容易地获得免费的任何东西提供作为应用程序内购买,持续使用NSUserDefaults 。 该文章仍然是正确的iOS 8,9? 如果是的话,你如何坚持你的应用内购买? 我喜欢一些简单的解决scheme 我不(也不想)validation收据等