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(定期購読) 基本的には使ってほしくない、古い定期購読の仕組み。 ほとんどの定期購読では自前で外部サーバーを用意して 購入しているユーザを識別などしなくてはいけない。
長々と書いたりはしましたが、これ公式ドキュメント読んだ方がいいですね。
必要なこと全部書いてありますし、日本語なんでそちらの参照をおすすめします。