我正在尝试整理模拟购买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。
这里有什么问题?
答案 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>
请记住 - 应用内购买在应用的试用版中无效。