Apple建議您存儲和驗證服務器上的所有收據。
(OR)
RMStore代表交易的持久性和提供了用於存儲在鑰匙串或在交易NSUserDefaults的兩個可選的參考實施方式。您可以實現您的交易,使用庫提供的參考實現,或者在非消耗品和自動更新訂閱的情況下,直接從收據中獲取交易。
-(void) startProductPurchase{
[[RMStore defaultStore] requestProducts:[NSSet setWithArray:_products] success:^(NSArray *products, NSArray *invalidProductIdentifiers) {
_productsRequestFinished = YES;
NSLog(@"Product Request Finished");
[self buyApplication:products];
} failure:^(NSError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Products Request Failed", @"")
message:error.localizedDescription
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", @"")
otherButtonTitles:nil];
[alertView show];
}];
刷新收據通知(iOS的7+只)
- (void)storeRefreshReceiptFailed:(NSNotification*)notification;
{
NSError *error = notification.rm_storeError;
}
- (void)storeRefreshReceiptFinished:(NSNotification*)notification { }
收據驗證
RMStore默認不執行接收的驗證,但提供的參考實現。您可以實施自己的自定義驗證或使用庫提供的參考驗證器。
兩個選項概述如下。欲瞭解更多信息,請查看wiki。
參考verificators
RMStore經由RMStoreAppReceiptVerificator提供收據驗證(針對iOS 7或更高)andRMStoreTransactionReceiptVerificator(iOS設備6或更低)。要使用它們中的任何一個,請將RMStore/Optional中相應的文件添加到項目中,並在啓動時設置驗證程序委託(receiptVerificator)。例如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
const BOOL iOS7OrHigher = floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1;
_receiptVerificator = iOS7OrHigher ? [[RMStoreAppReceiptVerificator alloc] init] : [[RMStoreTransactionReceiptVerificator alloc] init];
[RMStore defaultStore].receiptVerificator = _receiptVerificator;
// Your code
return YES;
}
欲瞭解更多詳情,請點擊以下鏈接。
iOS In-App purchases made easy
A lightweight iOS library for In-App Purchases
歡迎。
希望它能幫到你.............