大分前にAdobeAIRでアプリ内課金を実装したんですけど、流石に今頃書くのもどうかなぁと思いつつ、やっぱり書くことにしました。iOSかつ一番簡単な非消耗型です
1.App Store Connectで必要な設定周りを行う。
ここらへんは他言語と変わらないので適当にググって下さい。アイテム登録だけでなくSandboxテスター登録もしましょう。
2.ANEを調達する
ここが難問。安牌とされているのはMilkman GamesのANEですが有料です。何とか無料で出来ないかフリーのやつ試したりとか模索していたのですが、結局Adobe公式のGamingSDK内にあるアプリ内課金用のANE(productStore.ane)になりました。
ただ公式に普通に置いてあるのは(多分まだ)32bit版のままで今となっては使えません。公式フォーラムとか64bit対応の告知記事から64bit版を落としてください。
3.実装する
後はパブリッシュ設定からANEを組み込み、SDKに同梱されてるリファレンス(英語)を読みながら実装します。上記で64bit版を落としなさいと指示しといてなんですが、リファレンスは32bit版にしかついてないので結局両方落とした方がいいっていう ANEのクラスのメソッド名等、ほとんどネイティブに被せてあるので、他言語の実装ガイドを見ながらやれば大丈夫かと。
- 注意事項
- トランザクション内のレシート(検証用にトークンみたいな文字列入ってるやつ)と、レシート検証で帰ってくるレシート(Appleが仕様公開してるやつ)は別物なので注意
- 購入してない時に復元すると、SUCCESSもFAILも飛ばずにいきなりCOMPLETEが呼ばれるというトラップがあるので注意
- 復元時にレシートプロパティが空になってしまう。
- 本来はレシートもついてくるっぽいんですが、ANEが処理しきれずreceiptプロパティが空文字だったりnullだったりします。
- このため復元はトランザクション内の商品idを元にするしかありません。
- 本来はレシートもついてくるっぽいんですが、ANEが処理しきれずreceiptプロパティが空文字だったりnullだったりします。
参考:
ANE でアプリ内課金(In App Purchase)を Flash CC (Animate CC) で導入する手順
他多数