0

我已经使用 MockIAP 库在 Windows Phone 8 应用程序中测试了应用内购买 - 一切正常。我还在我的服务器上测试了收据签名验证码(基于 Robert Richards 的 xmlseclibs),并从这里测试 Microsoft 清单,它通过了验证。我听说在 beta 模式下,应用程序内是免费的,并且不会给你签名的收据,但是当我创建了一个 beta 应用程序并尝试从中进行购买时,我有一个签名的收据并且它有版本2.0(msft 样本有 1.0)!

我已经跟踪验证并发现两个收据(msft 样本和我得到的一个)具有相同的 CanonicalizationMethod、SignatureMethod、Transforms 和 DigestMethod,并且 msft 样本一切正常,但摘要值(Signature/SignedInfo/Reference/ DigestValue) 在我的收据中是错误的。

另外我发现如果我只评论摘要验证,签名验证就会成功。所以罪恶的根源在于这个错误的摘要值。

也许是故意的?我的意思是也许我在使用 beta 应用程序时不应该注意摘要检查?还是 MSFT 使用了一些未记录的摘要方法?

更新: 尝试使用 MSFT验证示例检查退回的收据,验证失败。有人有 WP8 应用内购买收据验证的经验吗?看起来在他们将格式更改为 2.0 版后,应用程序开发人员应该会遇到验证问题,因为现在收据未通过验证。

我已经删除了所有不需要的字符,并且我的代码适用于示例 WP8 和 Windows Store 收据,但是要检查这些新的 WP8 收据,必须跳过摘要检查。我会在生产中尝试这个。

4

1 回答 1

0

实际上这是一个测试版应用程序的问题。实际发布版本发送正确签名的收据和正确的摘要。

更新:似乎有些收据的摘要值错误。

于 2014-06-11T06:14:25.100 回答