我将Google Play测试帐户的公钥放入了该方法,但此方法返回了假值。我将Android SDK的market_billing项目用于InApp结算。除了InApp结算中使用的公钥之外,是否还有其他任何值。
logcat output-
有人告诉我验证过程。
最佳答案
verify
代码看起来不错。您如何生成publicKey
?它看起来应该像这样:
protected PublicKey generatePublicKey(String encodedPublicKey) {
try {
byte[] decodedKey = Base64.decode(encodedPublicKey);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_FACTORY_ALGORITHM);
return keyFactory.generatePublic(new X509EncodedKeySpec(decodedKey));
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (InvalidKeySpecException e) {
Log.e(BillingController.LOG_TAG, "Invalid key specification.");
throw new IllegalArgumentException(e);
} catch (Base64DecoderException e) {
Log.e(BillingController.LOG_TAG, "Base64 decoding failed.");
throw new IllegalArgumentException(e);
}
}
从DefaultSignatureValidator中检查AndroidBillingLibrary类。可能有帮助。
关于android - 在Android中购买的InApp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12218315/