我希望在有人在应用程序中进行应用程序内购买时得到通知,而不是等到第二天检查iTunes Connect以查看是否有任何销售。 有谁知道一个办法做到这一点? 如果不是的话,这将是非常酷! 谢谢
我正在尝试使用MKStoreKit在我的应用程序中实现应用程序内购买。 除了我无法弄清楚的一件事之外,这个工作大部分都很好。 我正在使用以下方法来恢复事务。 -(void)restoreToFullVersion:(UIViewController *)sender{ [MBProgressHUD showHUDAddedTo:sender.view animated:TRUE]; [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^{ [MBProgressHUD hideHUDForView:sender.view animated:TRUE]; [[NSNotificationCenter defaultCenter] postNotificationName:@"userDidUpgradeNotification" object:nil userInfo:nil]; [self upgradeSuccessful]; } onError:^(NSError *error) { [MBProgressHUD hideHUDForView:sender.view animated:TRUE]; }]; }//end method 我已经阻止了完成块,上面的代码都按预期工作,除非你打电话 [MKStoreManager isFeaturePurchased:kMainNoncomsumable]; 它返回false。 我正确的认为,恢复过程已经完成MKStoreManager应返回isFeaturePurchased为true或我缺less的东西? 我只实现了一个非易耗品的应用程序内购买,并使用Cocoa-pods将MKStoreManager包含到我的项目中。 好像其他人在SO上有同样的问题 ,但我还没有find一个有效的解决scheme呢。 在此先感谢所有的帮助!
有关应用内购买自动续订订阅的问题: 我不清楚如何处理用户购买不同持续时间的多个订阅的情况。 看来,如果用户已经购买了一个给定的SKU(基于product-id)并且防止重新购买(在这种情况下,我的应用程序获取了一个失败的事务事件),苹果公司就会认识到这一点,但是如果我使用不同的方式提供相同的内容产品id具有不同的持续时间,则用户可以潜在地购买两次或更多次。 即使一旦用户订购了一次,我就隐藏了额外的购买选项,但是他们可能会在替代设备上购买另一个订购,并且该购买将最终可以恢复到已经订购的其他设备。 我应该通过交易ID和产品ID跟踪购买的订阅,并计算最终到期date? 这似乎很复杂。
iOS IAP文档指出 ,如果你想testing商店,你应该在设置应用程序中注销itunes帐户。 在进行应用程序内购买时,您需要input用户名和密码。 但是,在应用程序内部,我不知道用户是否已经login,或者他是否正在使用沙盒帐户。 实际上,我并不在乎它是否是一个沙盒事务,但是:在服务器上,我必须通过URL https://buy.itunes.apple.com/verifyReceipt和沙盒收据validation实际收据,通过URL https ://sandbox.itunes.apple.com/verifyReceipt 。 如何在服务器上知道收据是沙箱收据还是实际收据? 或者,应用程序如何知道收据是真实的还是沙箱,因为从应用程序传递额外的参数到我的服务器没有问题。 什么不起作用:您不能只说应用程序的DEBUG版本使用沙盒环境,应用程序的ADHOC或RELEASE版本使用生产环境。 使用ADHOC版本,完全可以使用iTunes Test Accounts进行应用程序内购买。
AppStore审阅者要求我们购买Non-renewing subscriptionstypes不会强制用户注册。 他也意味着用户不注册,他也可以购买Non-renewing subscriptionstypes 而苹果文档要求Non-renewing subscriptions必须可以恢复。 他说 : 不更新的订阅和消耗品不会由Store Kit自动恢复。 但是,不更新订阅必须是可恢复的。 要恢复这些产品,您必须在购买时在自己的服务器上logging事务,并提供自己的机制将这些事务恢复到用户的设备。 所以当用户注册时,我会给用户一个唯一的userId,他可以用他的用户名和密码得到userId,这样我就可以分享用户的信息给不同的ios设备,我可以恢复交易,因为他们有一个唯一的userId 。 但是问题是这样的:当用户没有注册时,我的服务器也会给它们一个唯一的userId,非注册用户将把userId保存到.plist 。 他们也可以恢复交易。 但是,当他删除我的应用程序,然后下载一次,userId丢失,所以他不能恢复交易。 他将是一个正常的默认用户。 appStore会拒绝我的应用程序的原因: 无法注册,无法恢复非续订订阅事务,这会在还原之前删除应用程序 如果appStore会拒绝,如何解决它,thx所有。
我的应用程序刚刚在iTunes Store上运行,之后,我无法启动任何购买。 我已经testing了应用程序,并在Sandbox envolnemnt中正常工作。 但Live应用程序给出了错误 Error Domain=SKErrorDomain Code=0 “Cannot connect to iTunes Store enum value = SKErrorUnknown 我已经尝试从Storelogin签出任何testing帐户,但它只是不要求任何帐户login和错误不断出现。 任何线索!
我坚持设置我的应用程序内购买。 我不能得到这个权利: SKPayment *paymentRequest = [SKPayment paymentWithProduct: @"co.za.nideo.100shotsbuybeer"]; 我从中得到了 SKPayment *paymentRequest = [SKPayment paymentWithProductIdentifiers: @"co.za.nideo.100shotsbuybeer"]; 但这似乎被弃用。 我怎样才能得到第一个代码工作? 这似乎是一个SKProduct但我不知道如何创build/ init这样的对象。
我正在寻找如何创build应用程序购买的开发部分:对于iTunes的configuration,这是没问题的。 但是在MonoTouch中没有find关于做开发部分的任何资源。 任何想法请
我已经阅读过几次苹果的文档,而且我也没有从中得到太多的东西。 所以我希望这里有人知道如何处理收据validation: 我知道在iOS 6之前有一个问题。但是现在在iOS 7上需要validation吗? 它真的增加了额外的安全性吗? 如果苹果更改收据的格式(在设备上parsing它们),似乎会导致问题。
我最近在我的应用程序中实施了应用内购买。 好的事情苹果已经logging了整个过程非常好。 使用这些文档,我终于可以通过SandboxtestingIn App Purchasing,这是一个非常方便的function。 我已经成功testing了我的应用程序,以便在我点按buyButton时它会对StoreKit返回的任何内容作出反应。 这是我的问题。 从文档中,它表示沙箱模拟交易过程没有财务资料。 所以我可以自由地购买我想要的东西(顺便说一下,我正在购买耗材和耗材)。 另外,无论如何,Sandbox 总是会模拟一个成功的交易。 那么,有没有可能让Sandbox模拟一个失败的事务,更好的是,一个中断的事务呢? 我想这样做是为了在这些事件发生时捕获可能的错误(尽pipe我已经阅读了某个地方, StoreKit已经处理了这些错误)并将它们显示在屏幕上(至less),以告知用户在事务处理过程中发生了什么。 提前致谢。