InAppPurchaseについて

iPhoneアプリでIn App Purchaseを使うことになりましたので
その勉強をしております。
いきなり実装方法にいくよりも、まずは概要からおさえましょう。


この辺に関してはStoreKitGuideやDeveloperGuideを読めば
わかることなので、そちらを参照する方が手っ取り早いですけどね。
大事な内容ばかりなので、ブログに書いていてもほとんどそのままに。。。
http://developer.apple.com/jp/devcenter/ios/library/documentation/StoreKitGuide.pdf
https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide_JP.pdf



◆ 概略


In App Purchaseを実装するためには、StoreKitという
フレームワークを利用することになります。


StoreKitは、アプリケーションに代わってAppStoreとやり取りを行います。
StoreKitAPIは、アプリケーションにStoreを追加する処理の一部分に過ぎないので
当然のことながらStoreの実装や購入したプロダクトをどのように提供するかなどは
すべてデベロッパ側で決定する必要があります。
(StoreKitで行うのは、AppStoreとの課金処理だけ)


◆ プロダクト

アプリケーションのStoreで販売する機能のことを、すべて「プロダクト」と呼びます。
プロダクトは、デベロッパが新規アプリケーションを作成するのと同じ方法で
iTunes Connectを通してAppStoreに関連付けられます。
In App Purchaseで販売できるプロダクトは、次の4つ。

コンテンツ(Content)
 アプリケーションで提供できる電子書籍、雑誌、写真、アート作品、
 ゲームのレベルと登場人物、その他デジタルコンテンツ

機能プロダクト(Functionality Product)
 アプリケーション側で既に提供済みの機能をロック解除したり、拡張するもの。
 例えばLightBike2などはマルチ対戦機能がロックされていたりします。

サービス(Service)
 1度限りのサービスをユーザに請求するもの。
 1回のサービス利用につき、個々の購入が発生。

定期購読(Subscription)
 コンテンツやサービスを継続利用できるようにするもの。
 たとえばAKB公式アプリや、オーダー・オブ・カオスなどのオンラインゲーム。


◆ 重要なガイドライン


・提供できるのは「電子商品」または「電子サービス」。
 In App Purchaseを使って実物の商品やサービスを販売することはできない。
中間通貨のようなアイテムを提供することは出来ない。
 これは、特定の商品やサービスを購入するということがユーザに認識されることが重要なため。
 (レビューガイドによれば、IAPで購入したプロダクトは全てアプリ内で消費すること、のような
  条文も存在するようなので禁止されているのは実物と交換できる「仮想通貨」?との解釈も)
・販売用に提供するアイテムにはポルノ、誹謗、中傷、ギャンブル(シミュレーションはOK)、
 それらに関連するものを含めない。



App Storeへのプロダクト登録


Storeで提供するプロダクトはすべて、iTunesConnectを通してApp Storeに登録する必要がある。
この辺り、テストユーザーを作ったりする流れについてはデベロッパーガイドで
詳しく解説されてるので、そちらを参照した方がわかりやすいです。
https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide_JP.pdf


プロダクトを登録する際には、
プロダクト名、説明、価格、AppStoreとアプリケーションで使用する
メタデータを設定する必要があります。


アプリ内では、これに割り振られるプロダクトIDを利用して
StoreKitAPIを利用する際にプロダクトの識別を行います。
次の4つの基本的な型のプロダクトがあります。

Consumable(消耗型)
 必要なときにユーザが毎回購入する。

Non-Consumable(非消耗型)
 特定ユーザが一度だけ購入する。
 一度購入すると、購入したユーザのiTunesアカウントに関連付けられた
 全てのデバイスに提供される。( =そうなる用に処理を組む必要あり)

Auto-renewable subscriptions(自動更新購読)
 非消耗型と同様、ユーザの全てのデバイスに提供される。
 期限が切れるたびに自動的に定期購読を更新する。
 アプリケーションは定期購読が現在アクティブで、最新のトランザクションに
 対する更新されたレシートも受け取れることを検証する責任がある。

Subscriptions(定期購読)
 基本的には使ってほしくない、古い定期購読の仕組み。
 ほとんどの定期購読では自前で外部サーバーを用意して
 購入しているユーザを識別などしなくてはいけない。




長々と書いたりはしましたが、これ公式ドキュメント読んだ方がいいですね。
必要なこと全部書いてありますし、日本語なんでそちらの参照をおすすめします。