如何在我的服务器上验证应用程序是否已通过 Android Market 成功购买?
我有一个接收优质内容的 Android 应用程序,我想在服务器端验证该应用程序是通过 Android Market 购买的。我可以使用许可服务来检查应用程序的访问权限,有没有办法从服务器连接到许可服务?如果没有,我可以使用 Google Checkout API 数据来验证购买吗?
I have an Android app that receives premium content and I want to validate server-side that the app was purchased via the Android Market. I can used the Licensing Service to check access on the app, is there a way to connect to the Licensing Service from a server? If not, can I use Google Checkout API data to validate the purchase?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Android Market 许可服务响应使用私钥进行签名,并且签名与签名数据一起发送。使用开发者控制台中的公钥,您可以验证签名对于已签名的数据是否有效。只有使用私钥生成的签名对于给定数据才有效。同样,如果数据已被更改,签名将不再正确。
在您的 Android 应用程序中,您可以将签名和签名数据发送到内容服务器,内容服务器可以验证签名并在签名有效时允许访问内容。
如果您使用 PHP,可以使用函数 openssl_verify 来验证签名。
如果您使用 Java,您可以在 LicenseValidator.verify 中了解 Android 库如何验证签名。
Android Market Licensing Service responses are signed using a private key, and the signature is sent along with the signed data. Using the public key from the Developer Console you can verify that the signature is valid for the signed data. Only a signature generated with the private key will be valid for the given data. Likewise, if the data has been altered, the signature will no longer be correct.
In your Android app you can send the signature and the signed data to your content server which can verify the signature and allow access to the content if the signature is valid.
If you are using PHP, you can use the function openssl_verify to verify the signature.
If you are using Java, you can see how the Android library verifies a signature in LicenseValidator.verify.