內購——在應用程式內購買
(Nonconsumable)買了就有,頭銜,功能(Consumable),買了就用,用了就沒
定義的商品
定義好的商品
#define kIAPBomb @"airplay.10bombs"
#define kIAPBullet @"airplay.laserBullet"
1. 執行個體化請求時,必須指定有效identifiers集合,之所以如此處理,主要是為了確保提交的內購商品真的通過了蘋果的審批,處於可用狀態!
2. 要想擷取到準確的可用產品集合,需要通過代理方法實現
3. 越獄使用者無法測試內購,但是可以購買
ITViewController () <SKProductsRequestDelegate, SKPaymentTransactionObserver> NSMutableDictionary * }
- ( }
mark 詢問蘋果的伺服器能夠銷售哪些商品- ( NSSet * = SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: =
- ()productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse * (_productDict === (SKProduct *product NSLog(==
mark - 使用者決定購買商品 - ()buyProduct:(SKProduct * SKPayment *payment = }
- - (IBAction)purchaseBomb:( }
mark - SKPaymentTransaction Observer mark 購買隊列狀態變化- ()paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray * (SKPaymentTransaction *transaction (SKPaymentTransactionStatePurchased == (SKPaymentTransactionStateRestored ==
mark - 恢複商品- (
mark 驗證購買憑據 - ( NSURL *receiptURL = NSData *receiptData = NSURL *url = NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval: request.HTTPMethod = NSString *encodeStr = NSString *payload = [NSString stringWithFormat:receipt-data\ NSData *payloadData = request.HTTPBody = NSData *result = (result == NSLog( NSDictionary *dict = NSLog( (dict != NSLog( }
——— ———
——— ———————
——
清澈Saup