我将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/

10-13 04:38