我目前正在为Windows 8工作的应用中实施应用内购买。
后这会告诉您该应用是否是试用版,以及使用应用内购买的产品列表。
CurrentApp:在实时环境中。这仅适用于商店中批准应用程序的情况,因此您需要在打包之前进行此更改以提交到商店。
CurrentAppSimulator:调试和测试。
2.A。如果您在试用模式下运行应用,则购买应用调用: CurrentApp.RequestAppPurchaseAsync(true)
该参数请求获取包含XML的字符串,该字符串表示应用程序的所有收据以及任何应用内购买。如果includeReceipt设置为false,则此字符串为空。
2.b中。验证服务器的购买。 Reference
我们要验证从服务器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,我怎样才能实现服务器端验证?如何在商店中没有应用程序的情况下测试所有这些?
谢谢, 佩德罗
答案 0 :(得分:3)
没有沙箱环境可以对Windows Store
进行此类端到端测试。这应该会让你更进一步:
CertificateId
目前使用的Store
为b809e47cd0110a4db043b3f73e83acd917fe1336
(这可能会随着时间的推移而发生变化,因此您的代码应该通过签名收据以编程方式获取)
证书下载网址变为:
https://go.microsoft.com/fwlink/?LinkId=246509&cid=b809e47cd0110a4db043b3f73e83acd917fe1336
这是一个示例收据,您可以测试您的代码,解析要在上面的CertificateId
中使用的URL
值,以及使用{{1}返回的证书验证签名是否有效的代码上面:
URL