【问题标题】:Simulating a Windows 8 Store apps purchase模拟 Windows 8 应用商店应用购买
【发布时间】:2014-12-16 11:57:57
【问题描述】:

我正在尝试将模拟购买 Windows 8(商店)应用程序的代码放在一起。

代码非常简单,使用 Windows API:

var result = await CurrentAppSimulator.RequestProductPurchaseAsync("product", true);

// this is still false...
var active = CurrentAppSimulator.LicenseInformation.ProductLicenses["product"].IsActive;

第一次调用会打开一个对话框,让我可以模拟购买的返回码。

即使我选择 S_OK,下一行仍会检查许可证是否处于活动状态并返回 false。

这里有什么问题?

【问题讨论】:

标签: c# windows-8 windows-runtime in-app-purchase


【解决方案1】:

您正在更新WindowsStoreProxy.xml 文件吗?您必须这样做,否则购买将永远不会被设置为有效。您无需致电 RequestAppPurchaseAsync... 只需 requestProductPurchaseAsync. 这样做...

在调试模式下运行您的应用程序会在任何地方中断 打开 QuickWatch (SHIFT + F9) 并输入 Windows.Storage.ApplicationData.current.roamingFolder.path 并复制值(我的是C:\Users\jerfost\AppData\Local\Packages\{package name}\LocalState 浏览到该位置并打开 Microsoft\Windows Store\ApiData 目录 在文本编辑器中打开 WindowsStoreProxy.xml 文件 将 CurrentApp/LicenseInformation/App/IsTrial 更改为 false 将 CurrentApp/ListingInformation/Product/MarketData/Name 更改为您的唯一产品名称 那应该这样做。希望对您有所帮助。

【讨论】:

  • ProductId 呢?您也必须将 ProductId 更改为您的唯一产品名称,不是吗?
【解决方案2】:

您不必每次都手动编辑 XML,CurrentAppSimulator 会自动完成。

只需检查您在 WindowsStoreProxy.xml 中的设置并确保“IsTrial”设置为“假”-

<LicenseInformation>
    <App>
        <IsActive>true</IsActive>
        <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="1">
        <IsActive>false</IsActive>
    </Product>
</LicenseInformation>

记住 - 应用内购买不适用于应用的试用版。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多