3

我的应用程序是用 Javascript 创建的。我需要它来支持应用内购买以进行功能解锁。

文档来看,它看起来非常简单。但是,当我尝试实现它时。我注意到S_OKCurrentAppSimulator.requestProductPurchaseAsync, 回来后CurrentAppSimulator.licenseInformation.productLicenses.lookup(main.licenseName).isActive不会更改为 true。

然后我发现了这个答案CurrentAppSimulator.RequestProductPurchaseAsync 购买模拟,提到了一些关于调用RequestAppPurchaseAsync一次的事情requestProductPurchaseAsync。我做到了,这样,我看到商店弹出两次。并选择S_OK两次后,isActive设置为true。但是,这种状态不是持久的。第二次运行此应用程序(通过按 F5 进行调试)将清除此标志,并且必须再次运行整个购买过程。

答案也只提到了“正确的模拟”,但没有说明这个程序是否适用于直播商店应用程序。我目前有一个为应用内购买配置的 Windows 应用商店开发者帐户,但尚未上传二进制文件。当我尝试购买时,CurrentApp我收到一条消息,即 Windows 商店不再提供该产品。

我想要一些可行的选项来确保我的应用内购买得到正确实施。

4

1 回答 1

3

您是否正在更新 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 更改为您的唯一产品名称

那应该这样做。希望有帮助。

于 2013-04-15T14:21:21.723 回答