gpt4 book ai didi

android应用内计费安全验证方法总是返回false

转载 作者:行者123 更新时间:2023-11-29 19:23:11 24 4
gpt4 key购买 nike

我已经构建了一个 android 应用程序,为用户提供购买商品的能力,谷歌购买对话框成功返回付款,但在 Activity 结果中,应用程序在 Security.java 验证方法中失败总是返回 false "sig .verify(Based64.decode(signature))".

任何帮助为什么会发生以及我必须做什么。我已将应用程序发布到 Play 商店,但我不使用 android.test.* sku 我有自己的 skus

最佳答案

你是否正确初始化了它?

获取公钥:

public PublicKey getAPKKey(String keyFactoryAlgorithm) throws Exception{
byte[] decodedKey = Base64.decode("...your google play public key...", Base64.DEFAULT);
KeyFactory keyFactory = KeyFactory.getInstance(keyFactoryAlgorithm);
return keyFactory.generatePublic(new X509EncodedKeySpec(decodedKey));
}

您可以在 Google Play 开发者控制台中找到您的公钥。

然后验证签名:

// get purchase data
Bundle ownedItems = ... query purchases
String purchaseData = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST").get(0); // just index 0 for demonstration
String signature = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE_LIST").get(0); // just index 0 for demonstration

PublicKey pkey = getAPKKey("RSA");
Signature sig = Signature.getInstance("SHA1withRSA");
sig.initVerify(pkey);
sig.update(purchaseData.getBytes());

if(sig.verify(Base64.decode(signature, Base64.DEFAULT))) {
// ok
} else {
// not ok
}

关于android应用内计费安全验证方法总是返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com