Dan*_*own 40 restore in-app-purchase ios
我到目前为止:重新安装后,用户需要点击"购买功能",然后他会被0.99美元的问题吓到,然后必须登录然后才被告知该功能已经购买并且他免费获得.
我知道苹果是一种宗教,用户是坚定的信徒,但是不是更好的方式吗?:-)我想要的是检查功能而不实际购买它.让用户输入他的帐户信息似乎是必要的,也许买一个0.00美元的功能?或者有某种方法可以做到这一点吗?
我正在使用MKStoreKit进行整个In-App-Purchase,但任何解决方案都会很棒.
UPDATE
thanx到darvids0n,你的方法解决了我的问题!这是其他人尝试相同的工作代码:
- (void)removePreviousPurchases { //just for sandbox testing
[[MKStoreManager sharedManager] removeAllKeychainData];
}
- (void)restorePreviousPurchases { //needs account info to be entered
if([SKPaymentQueue canMakePayments]) {
[[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
NSLog(@"Restored.");
/* update views, etc. */
}
onError:^(NSError *error) {
NSLog(@"Restore failed: %@", [error localizedDescription]);
/* update views, etc. */
}];
}
else
{
NSLog(@"Parental control enabled");
/* show parental control warning */
}
}
Run Code Online (Sandbox Code Playgroud)
dar*_*s0n 33
如果0.99美元的商品是非消耗品,那么您应该提供一个"恢复购买"按钮(或类似的)调用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)
假设您已经添加了一个事务观察器,并实现了包括处理已恢复事务(使用状态)的案例的协议,SKPaymentTransactionStateRestored这将起作用.
小智 10
添加以下两种方法:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28478 次 |
| 最近记录: |