私の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() が実行されるステップは次のとおりです。
ポストメッセージは、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);
次に、json オブジェクトを package_id 変数と user_id 変数に逆シリアル化します。
- 次に、buy(); を実行します。