我目前正在为 Windows 8 工作的应用程序中实现应用程序内购买。
阅读文档后:
- 请求应用程序的许可证信息:msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.store.licenseinformation.aspx
这会告诉您应用程序是否处于试用状态,以及使用应用程序内购买的产品列表。
- 要执行购买,您需要使用以下对象:
CurrentApp:在实时环境中。这仅在应用程序在商店中被批准时才有效,因此您需要在打包提交到商店之前进行此更改。
CurrentAppSimulator:调试和测试。
2.a. 如果您在试用模式下运行应用程序,则购买应用程序调用:CurrentApp.RequestAppPurchaseAsync (true)
该参数请求获取一个包含 XML 的字符串,该字符串表示应用程序的所有收据和任何应用程序内购买。如果 includeReceipt 设置为 false,则此字符串为空。
2.b。从您的服务器验证购买。参考
我们要验证从服务器 2.a 获得的收据是否真实。要验证收据的真实性,您可以使用公共证书检查收据的签名。要获取此证书,请使用以下 URL:go.microsoft.com/fwlink/?LinkId=246509&cid= 收据的 CertificateId 在哪里。
这是来自 CurrentAppSimulator 的真实收据:
<?xml version="1.0" encoding="utf-8"?>
<Receipt Version="1.0" ReceiptDate="2012-08-23T14:21:40Z" CertificateId="" ReceiptDeviceId="9d6b1f28-cab8-421f-8f8d-23df2dc3abbe">
<ProductReceipt Id="d9437a12-4f91-4ef0-b0bf-527ab9da2ec9" AppId="Zolmo.JamiesRecipes_40cj6885yhw56" ProductId="JMPK_0004" PurchaseDate="2012-08-23T14:21:40Z" ProductType="Durable" />
</Receipt>
没有 CertificateId,如何实现服务器端验证?如果在商店中没有应用程序,我如何测试所有这些?
谢谢,佩德罗