7

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

这里有什么问题?

4

2 回答 2

11

你在更新WindowsStoreProxy.xml文件吗?您必须这样做,否则购买将永远不会被设置为有效。您不需要RequestAppPurchaseAsync...只调用requestProductPurchaseAsync.Do this ...

在调试模式下运行您的应用程序,在任何地方中断打开 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为您的唯一产品名称 应该这样做。希望对您有所帮助。

于 2013-04-27T08:46:42.577 回答
3

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

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

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

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

于 2013-05-09T17:29:05.117 回答