模拟Windows 8商店应用购买

时间:2013-04-26 17:17:33

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

我正在尝试整理模拟购买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。

这里有什么问题?

2 个答案:

答案 0 :(得分:11)

您是否正在更新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更改为您唯一的产品名称 应该这样做。希望有所帮助。

答案 1 :(得分:3)

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

只需检查WindowsStoreProxy.xml中的设置,并确保'IsTrial'设置为'false' -

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

请记住 - 应用内购买在应用的试用版中无效。