IAP在真正的WP8商店中不起作用

本文关键字:不起作用 WP8 IAP | 更新日期: 2023-09-27 18:05:08

我有这个代码在我的windows phone 8项目,测试是否有一个产品与产品id键。当我使用MockIAP时,一切都在开发中,但在我的应用发布后,我无法在在线商店购买。游戏崩溃了。

我的应用程序正在使用phonegap 2.3.0,并通过iframe加载。它使用cordova插件执行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);
            }
        }

这是在app store中输入的内容:

  • 应用内产品ID: pack1
  • 类型:消耗品
  • 应用内产品别名:1000 credits
  • 基本价格:0.99美元
  • 状态:已发布
  • 标签:No available information或nothing is given
  • 关键词:No available information或nothing is not提供
  • 默认语言:英文
  • 标题:100学分
  • 应用内产品描述:No available information或nothing was提供

更多细节:

下面是buy()执行的步骤

  1. 一个postmessage从iframe内的web应用发送到执行cordova插件的包装器

    点。绑定("购买",函数(e) {cordova.exec(应用程序。采购成功,app.采购失败,"InAppPurchase", "purchase", [e]。package_id e.user_id])}, rooturl);

  2. 然后将json对象反序列化为package_id和user_id变量

  3. 然后执行buy();

IAP在真正的WP8商店中不起作用

确保从UI线程调用Buy。Store.CurrentApp.RequestProductPurchaseAsync如果不从它调用,会崩溃