【问题标题】:ReloadSimulatorAsync produces "Value does not fall within the expected range" exceptionReloadSimulatorAsync 产生“值不在预期范围内”异常
【发布时间】:2017-04-07 21:21:23
【问题描述】:

在我的通用 Windows 应用程序中,我测试了 iap 购买。我之前在另一个应用程序中做过这个,它有效。不知道为什么这次它不起作用。 代码如下:

    StorageFolder proxyDataFolder = await Package.Current.InstalledLocation.GetFolderAsync("Assets");
    StorageFile proxyFile = await proxyDataFolder.GetFileAsync("WindowsStoreProxy.xml");
    CurApp.LicenseInformation.LicenseChanged += () => Log("License info changed");
    await Windows.ApplicationModel.Store.CurrentAppSimulator.ReloadSimulatorAsync(proxyFile);

并且 ReloadSimulatorAsync 产生“值不在预期范围内”异常!假设它与xml解析有关,但是文件当然存在并且具有正确的格式:

<?xml version="1.0" encoding="utf-16" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>[my app id]</AppId>
      <LinkUri>https://www.microsoft.com/store/apps/[my app store code]</LinkUri>
      <CurrentMarket>en-US</CurrentMarket>
      <AgeRating>7</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>MyTestApp</Name>
        <Description>AppDescription</Description>
        <Price>0.0</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
    <Product ProductId="product2" LicenseDuration="0" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>Durable1</Name>
        <Price>0.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </Product>
    <Product ProductId="amnt1" LicenseDuration="0" ProductType="Consumable">
      <MarketData xml:lang="en-us">
        <Name>Consumable1</Name>
        <Price>0.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </Product>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="product2">
      <IsActive>true</IsActive>
    </Product>
  </LicenseInformation>
  <ConsumableInformation>
    <Product ProductId="amnt1" TransactionId="00000001-0000-0000-0000-000000000000" Status="Active"/>
  </ConsumableInformation>
</CurrentApp>

为什么会发生这种情况?

【问题讨论】:

    标签: c# windows-store-apps in-app-purchase win-universal-app windows-8.1-universal


    【解决方案1】:

    如果我使用您提供的 XML,我可以重现您的问题,因为 AppId 可能不正确,这里您可能需要提供 GUID。您可以将 [my app id] 替换为 Microsoft 提供的 988b90e4-5d4d-4dea-99d0-e423e414ffbc,然后重试。

    更多关于XML的详细信息可以参考in-app purchase

    我也找到Store sample(demonstrates trials and in-app purchase)你可以参考。

    这是我的 XML:

    <?xml version="1.0" encoding="utf-16" ?>
     <CurrentApp>
      <ListingInformation>
    <App>
      <AppId>988b90e4-5d4d-4dea-99d0-e423e414ffbc</AppId>
      <LinkUri>http://apps.microsoft.com/webpdp/app/988b90e4-5d4d-4dea-99d0-e423e414ffbc</LinkUri>
      <CurrentMarket>en-us</CurrentMarket>
      <AgeRating>3</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>In-app purchases</Name>
        <Description>AppDescription</Description>
        <Price>5.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </App>
    <Product ProductId="product1">
      <MarketData xml:lang="en-us">
        <Name>Product 1</Name>
        <Price>1.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="product2">
      <MarketData xml:lang="en-us">
        <Name>Product 2</Name>
        <Price>2.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
       </ListingInformation>
     <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="product1">
      <IsActive>true</IsActive>
    </Product>
    <Product ProductId="product2">
      <IsActive>false</IsActive>
       </Product>
    </LicenseInformation>
     </CurrentApp>
    

    【讨论】:

    • 谢谢!但是我在哪里可以找到指南?关于应用程序的详细信息,我只能看到带有数字字母索引的姓氏和市场链接,但这不是指南。
    • 啊,刚刚发现 - 您可以使用任何 guid 进行测试。我到电脑前会检查它
    • 使用随机引导它终于奏效了。我认为它使用的是旧代码(Windows Phone 7+),当您必须使用 guid 而不是家庭 id 时,因此需要 guid。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多