Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
23
Help us understand the problem. What is going on with this article?
@itmarlin

アプリ内課金の追加

More than 3 years have passed since last update.

「SenchaTouch + Cordova」のiOS、Androidアプリ開発ではまったことを少しメモする。

プラグイン追加

iOSのみ対応する場合:

$ cd cordova
$ cordova plugin add cc.fovea.cordova.purchase

Androidも対応する場合:

$ cd cordova
$ cordova plugin add cc.fovea.cordova.purchase --variable BILLING_KEY="ライセンスキー"

参考元:https://github.com/j3k0/cordova-plugin-purchase

iOSの実装メモ

問題1

fatal error: '''Foundation/Foundation.h''' file not found

解決:

StoreKit.frameworkが正しくリンクされていませんでした。
Xcode6.1 -> Xcode6.1.1 へアップデートすることで解決

問題2

問題1の影響かもしれないですが、
Build Phases -> Compile Sources -> InAppPurchase.m が正しく追加されていません。
※ Xcode6.1.1更新後に、別のアプリだったら問題ありませんでした。

解決:

手動で InAppPurchase.m を追加しました。

Androidの実装メモ

問題1

認証エラー:<認証が必要です。Googleアカウントにログインしてください。>

解決:

開発者以外のアカウントで試すとうまくいった。

Javascript側の簡単なサンプル

複数登録の際に、参考元にある registerProducts メソッドがなぜかうまく動作できず、下記のように一個一個登録します。

// イベント登録
document.addEventListener('deviceready', initializeStore, false);

function initializeStore() {
    // 購入登録
    store.register({
      id: "product.id1",
      type: store.CONSUMABLE
    });
    store.register({
      id: "product.id2",
      type: store.CONSUMABLE
    });

    // 購入完了イベント
    store.when("product.id1").approved(function(product) {
        product.finish();
    });

    // プレミアムチェック
    store.when("product.id1").updated(checkIsPremium);

    // エラーハンドリング
    store.error(function(e){
        console.log("ERROR " + e.code + ": " + e.message);
    });

    // 準備完了
    store.ready();

    // 更新
    store.refresh();
}

// プレミアムチェック 個別
function checkIsPremium(product) {
    if (product.owned) {
        window.isPremium = true;
    } else {
        window.isPremium = false;
    }
}

// アイテムの購入方法
store.order("product.id1");

// アイテムの復元方法
store.restore();

実装済みアプリ

23
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
itmarlin
いろんな技術を利用し、良いアプリを作成したい! そして、アプリを通して皆様のお役に立ちたい! 自分が困った所を共有し、みんなでいいものを作り上げて行きましょう。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
23
Help us understand the problem. What is going on with this article?