Windows 8 应用商店应用,如何测试应用内购买?

3

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

文档上看,似乎很简单。但是,当我尝试实现它时,我发现在从CurrentAppSimulator.requestProductPurchaseAsync返回S_OK后,CurrentAppSimulator.licenseInformation.productLicenses.lookup(main.licenseName).isActive不会改为true。

然后我发现这个答案:CurrentAppSimulator.RequestProductPurchaseAsync purchasing simulation,提到了一些关于在调用requestProductPurchaseAsync之前先调用RequestAppPurchaseAsync的内容。我确实这样做了,并且这种方式下,我看到商店弹出窗口两次。选择两次S_OK后,isActive被设置为true。然而,这个状态不是持久的。第二次运行此应用程序(通过按F5进行调试)将清除此标志,整个购买过程必须再次运行。

答案还提到了“正确模拟”的问题,但没有提及这个过程是否适用于实际的商店应用程序。我目前有一个为应用内购买配置好的Windows商店开发人员帐户,但是还没有上传二进制文件。当我尝试使用CurrentApp购买时,显示“该产品从Windows商店中不再可用”的消息。

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


我正在使用PhoneGap(JavaScript)开发,并正在寻找JavaScript代码/本地桥接,以便在Windows 8中完成应用内购买。您能发布一些示例代码吗?谢谢。 - nomaam
1个回答

3
你是否在更新WindowsStoreProxy.xml文件?如果没有更新,购买将永远不会被设置为激活状态。你不需要调用RequestAppPurchaseAsync... 只需要调用requestProductPurchaseAsync。按照以下步骤操作:
  • 以调试模式运行你的应用程序
  • 打开QuickWatch(SHIFT + F9),输入Windows.Storage.ApplicationData.current.roamingFolder.path并复制该值(我的是
  • 浏览到该位置并打开Microsoft\Windows Store\ApiData目录
  • 使用文本编辑器打开WindowsStoreProxy.xml文件
  • 将CurrentApp/LicenseInformation/App/IsTrial更改为false
  • 将CurrentApp/ListingInformation/Product/MarketData/Name更改为您的唯一产品名称
这样就可以了,希望能帮到你。

抱歉,您从哪里得到这个信息的?在http://msdn.microsoft.com/en-us/library/windows/apps/hh694067.aspx中没有提到这一点。 - He Shiming
我应该自己以编程方式更新这个WindowsStoreProxy.xml文件吗?像普通的文件读写一样?没有API可以做到这一点吗?还是真正的“CurrentApp”会自动完成这个任务? - He Shiming
1
好的,根据我从微软论坛中得到的信息,关于 WindowsStoreProxy.xml 的整个问题仅与模拟器有关,而模拟器不会保留许可证数据。CurrentApp 类将负责所有内容。来源:http://social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/58752aa7-5d86-4e14-a44b-3b658e43ab0c/ - He Shiming

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接