【cocos2dx】アプリ内課金を実装する

アプリで収益を上げる方法はいくつかありますが、今回はその中で「アプリ内課金」をcocos2dxのプロジェクトに実装したくて勉強をしてみました。 今回は、「アプリ内課金」の実装を紹介したいと思います。

と偉そうに書きましたが、私は以下のサイトを見て実装しました。

プログラミング全然できない私でもできましたので、ぜひ参考にしてください。

実装をしてみての細かな注意点

実際にやってみて、色々と迷う所・時間がかかった所がありましたので、これを書いていきたいと思います。

iOS/Android - IDの統一

iTunesConnectGooglePlayにそれぞれ課金アイテムを登録する際に、アイテム判別用のIDを設定します。

2014-3-25-fdsasa
2014-3-25-fdsasa

これを別々に記載するとアプリから呼び出す際に少し工夫をしなくてはいけません。 こちらは同じアイテムでIDを統一したほうがいいでしょう。 注意点は、GooglePlay側では大文字が使えません。 IDを統一する場合は、大文字は入れないでください。

私の失敗例 [c]

//アプリ課金用コールバックメソッド void HelloWorld::didPuchButton(){

//Android用
Cocos2dxExt::InAppPuchase_Launcher::requestPurchasing("com.albatrus.inapppurchase0324");


//iOS用
Cocos2dxExt::InAppPuchase_Launcher::requestPurchasing("con.albatrus.InAppPurchase0324");

}

[/c]

Android - Google Play Billing Libraryの導入

Androidでアプリ内課金に必要なライブラリーをプロジェクトに追加する必要があるのですが、最初上手くいきませんでした。 これに関しては、AndroidSDKとGooglePlayBillingのバージョンが古かったためでした。

注意点として、Androidのライブラリーを最新のモノにアップデートをして行って下さい。

Android - ライブラリーのエラー

これは、アプリ内課金とは関係ないのですが、細かなエラーが出る時には一度Cleanするなり、eclipseを立ち上げ直すなりしたら直ったケースがありました。 もし、良くわからないエラーが出た場合、一度立ち上げなおして見るといいかもしれません。

Android - アプリのライセンスキーの入れ忘れ

Cocos2dActivityに、アプリ内科金のライセンスキーを入れる必要があります。 もちろん、入れ忘れには注意して下さい。 [c]

//この部分です。 String base64EncodedPublicKey = "ライセンス キー";

[/c]

ライセンスキーは、GooglePlayのアプリページ「サービスとAPI」の中にあります。

2014-3-25-fdsas

Android - JNIの設定

個人的にいつもよく分からなくなるのが、JNIです。 この部分でアプリを繋いでいます。

がおまるさんのブログを参考にJNIについて詳しく載っていますので、ぜひ参考にしてください。

Android - 実機でのテストについて

ここが中々上手く行かなかったポイントです。 実機でテストをするためにはテスト用のGoogleアカウントが必要になります。

テスト用のアカウントは、GooglePlayの「アカウントの詳細」でメールアドレスを登録するだけでとても簡単です。 例 hogehoge@gmail.com

2014-3-25-fdsasas

注意点は、Androidで設定しているGoogleアカウントと同じものにしないといけないことです。 これは、GooglePlayに登録しているアカウントとは別のメールアドレスを用意することを意味します。

場合によってはAndroidを初期化して、新たにGoogleアカウントを設定しなおさないといけません。 私も、この部分で上手くいかずAndroidを初期化しました。

テスト用のアカウントなのに、テストできない

原因は不明ですが、AndroidGoogleアカウントとテスト用のアカウントが同じなのに上手いかない状態が続きました。 「お客様はこの購入を行えません。」と表示されます。

これに関しては、何回はテスト用のアカウントを登録しなおしたら何故か上手くいきました。

【参考】

最後に

今回の実装は、1回限りの非消費型の実装方法でした。 ソーシャルゲームによくあるコインなどの消費型のアイテムは管理がとても大変そうですので、すぐに導入することはないと思います。

[消費型についてはこちら]

実装はできましたので、後はいかにゲームに組み込んでいくかです。 ただ単に用意するだけでは余り意味がないでしょう。 この部分がとても大切です。

とはいえ、上手くできてとても嬉しいです。今まで出来なかったことができるようになると、少し成長できたと実感します。 ぜひ何か参考になれば嬉しいです。

Cocos2d‐x開発のレシピ―iOS/Android対応Cocos2d‐x開発のレシピ―iOS/Android対応
松浦 晃洋,齊藤 建二,古木 映治

秀和システム
売り上げランキング : 73887

Amazonで詳しく見る