1

私のWindows Phone 8プロジェクトには、製品IDキーを持つ製品があるかどうかをテストするこのコードがあります。MockIAP を使用すると開発中はすべて機能しますが、アプリのリリース後、オンライン ストアで購入できません。ゲームがクラッシュします。

私のアプリは phonegap 2.3.0 を使用しており、iframe を介して読み込まれます。コルドバ プラグインを使用して buy() を実行します。

これは、他の人々が WP8 アプリに IAP を実装している方法ですか (つまり、最初にすべてのリスト情報をダウンロードします)?

    private async void buy()
        {
            ListingInformation li = await Store.CurrentApp.LoadListingInformationAsync();

            if (li.ProductListings.ContainsKey(package_id))
            {
                string pID = li.ProductListings[package_id].ProductId;
                var receipt = await Store.CurrentApp.RequestProductPurchaseAsync(pID, true);
                parseXML(receipt);
                prepData();
                httpPostData();
                Store.CurrentApp.ReportProductFulfillment(pID);
            }
        }

これはアプリストアに入力されたものです:

  • アプリ内商品ID:pack1
  • タイプ: 消耗品
  • アプリ内アイテム エイリアス: 1000 クレジット
  • 基本価格: 0.99 米ドル
  • 状態: 公開済み
  • タグ: 利用可能な情報がないか、何も提供されていません
  • キーワード: 利用可能な情報がないか、何も提供されていません
  • デフォルトの言語: 英語
  • タイトル: 100 クレジット
  • アプリ内製品の説明: 利用可能な情報がないか、何も提供されていません

もっと詳しく:

buy() が実行されるステップは次のとおりです。

  1. ポストメッセージは、iframe 内の Web アプリから、cordova プラグインを実行するラッパーに送信されます。

    pm.bind('purchase', function(e){ cordova.exec(app.purchase_success, app.purchase_failure, "InAppPurchase", "purchase", [e.package_id, e.user_id]) }, rooturl);

  2. 次に、json オブジェクトを package_id 変数と user_id 変数に逆シリアル化します。

  3. 次に、buy(); を実行します。
4

1 に答える 1

0

UI スレッドから Buy を呼び出していることを確認してください。Store.CurrentApp.RequestProductPurchaseAsync は、呼び出されない場合にクラッシュしていました。

于 2013-03-23T10:35:36.327 に答える