Edited at

いまさらAdobe AIRでアプリ内課金実装

大分前にAdobeAIRでアプリ内課金を実装したんですけど、流石に今頃書くのもどうかなぁと思いつつ、やっぱり書くことにしました。iOSかつ一番簡単な非消耗型です:expressionless:


1.App Store Connectで必要な設定周りを行う。

ここらへんは他言語と変わらないので適当にググって下さい。アイテム登録だけでなくSandboxテスター登録もしましょう。


2.ANEを調達する

ここが難問。安牌とされているのはMilkman GamesのANEですが有料です。何とか無料で出来ないかフリーのやつ試したりとか模索していたのですが、結局Adobe公式のGamingSDK内にあるアプリ内課金用のANE(productStore.ane)になりました。

ただ公式に普通に置いてあるのは(多分まだ)32bit版のままで今となっては使えません。公式フォーラムとか64bit対応の告知記事から64bit版を落としてください。


3.実装する

後はパブリッシュ設定からANEを組み込み、SDKに同梱されてるリファレンス(英語)を読みながら実装します。上記で64bit版を落としなさいと指示しといてなんですが、リファレンスは32bit版にしかついてないので結局両方落とした方がいいっていう:sweat_smile: ANEのクラスのメソッド名等、ほとんどネイティブに被せてあるので、他言語の実装ガイドを見ながらやれば大丈夫かと。


  • 注意事項


    • トランザクション内のレシート(検証用にトークンみたいな文字列入ってるやつ)と、レシート検証で帰ってくるレシート(Appleが仕様公開してるやつ)は別物なので注意

    • 購入してない時に復元すると、SUCCESSもFAILも飛ばずにいきなりCOMPLETEが呼ばれるというトラップがあるので注意

    • 復元時にレシートプロパティが空になってしまう。


      • 本来はレシートもついてくるっぽいんですが、ANEが処理しきれずreceiptプロパティが空文字だったりnullだったりします。


        • このため復元はトランザクション内の商品idを元にするしかありません。







参考:

ANE でアプリ内課金(In App Purchase)を Flash CC (Animate CC) で導入する手順

他多数