【Objective-C】iPhoneアプリの作成方法:iOS In-App Purchases (アプリ内課金)プログラム 整理

2013/03/18  カテゴリー:アプリ開発    タグ:タグ: ,



In-App Purchases (アプリ内課金)

実装してみるとなんてことないiOS In-App Purchases (アプリ内課金)プログラムだが、言葉がわかりにくいのと、しばらく離れるとややこしくみえるiOS In-App Purchases。
ということで、内容をNon-Consumableにしぼって自分なりに意訳してまとめ、余計なコードを出来るだけ排除して、必要なモノだけ表現してみた。


概要

 Frameworkに追加

Store Kit Frameworkをアプリに組み込みます。

ヘッダー .h

SKProductsRequestDelegate, SKPaymentTransactionObserverを追加


@interface Hoge : UIViewController <SKProductsRequestDelegate, SKPaymentTransactionObserver>{
}
@end

アプリ内課金が許可されているかを確認

if (![SKPaymentQueuecanMakePayments]) {
// なんかエラー「アプリ内課金が制限されていますの」表示をする、アラームとか
return;
}


アイテム情報をリクエスト(IDが認識できているか確認のため)

NSSet *set = [NSSet setWithObjects:@”com.company.yourproductid001“, nil];
SKProductsRequest *productsRequest =
[[SKProductsRequest alloc] initWithProductIdentifiers:set];
productsRequest.delegate = self;
[productsRequest start];
com.company.yourproductid001はアイテムIDです

リクエストの返事の対応

productsRequest:didReceiveResponse:で対応
- (void)productsRequest:(SKProductsRequest *)request
       didReceiveResponse:(SKProductsResponse *)response
{
   if ([response.invalidProductIdentifiers count] > 0) { // IDが認識されていない場合
     // なんか IDが認識されていないエラーの表示をする、アラームとか
   return;
    }
}

参考資料

購入された場合の監視を登録しておく(起動時に)

// 次の処理をアプリケーションデリゲート内で行う
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];


photo credit: marfis75 via photopin cc

Share on Google+Tweet about this on TwitterShare on Facebook