相关疑难解决方法(0)

android在app结算购买验证失败

我在我的Android应用程序中实现应用程序计费时遇到问题.我收到购买签名验证失败.在第一次我很难,它是base64键,但我检查了很多次,我仍然得到错误,然后我看了一下Security.java文件,我发现我编辑的这个方法获取一些信息关于什么是错的:

    public static boolean verifyPurchase(String base64PublicKey, String signedData, String signature) {
    if (TextUtils.isEmpty(signedData) || TextUtils.isEmpty(base64PublicKey) ||
            TextUtils.isEmpty(signature)) {
        if(TextUtils.isEmpty(signedData)) Log.d(TAG, "SIGNED DATA EMPTY");
        if(TextUtils.isEmpty(base64PublicKey)) Log.d(TAG, "KEY IS EMPTY");
        if(TextUtils.isEmpty(signature)) Log.d(TAG, "SIGNATURE IS EMPTY");
        Log.e(TAG, "Purchase verification failed: missing data.");
        return false;
    }

    PublicKey key = Security.generatePublicKey(base64PublicKey);
    return Security.verify(key, signedData, signature);
}
Run Code Online (Sandbox Code Playgroud)

我得到"签名是空的".即使我按照以下步骤操作: - 使用我的发布密钥设置apk - 将其作为草稿添加 - 在设备上安装"adb -d install app.apk"

我正在测试真实购买.谢谢.

编辑购买流程很好,我打电话时收到错误queryInventoryAsync

android billing in-app-purchase in-app-billing android-billing

23
推荐指数
2
解决办法
3万
查看次数

应用内结算v3无法在没有网络连接或飞机/飞行模式下查询项目

通过我的项目修改它来完成v3示例文件工作正常.然而,我的朋友刚刚关闭wi-fi并打开飞机模式来测试代码.这似乎导致无法查询应用内广告资源.

// Listener that's called when we finish querying the items and subscriptions we own
private final IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
    @Override
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) {

        if (result.isFailure()) {
            // STOPS here and doesn't continue on with no network connection
            return;
        }

        ......
    }
};
Run Code Online (Sandbox Code Playgroud)

我认为在初次成功购买后,v3将其本地存储在其缓存中,以便它不必总是有网络连接来检查.还有其他人遇到过这个问题吗?我希望我遗漏了一些完全明显的东西,或者这是否应该如何运作.

android nullpointerexception in-app-purchase

12
推荐指数
1
解决办法
7210
查看次数

存储应用内购买的最佳方式

之前我问这个问题,我已经通过了的Android应用内结算文档,并像在计算器上一些类似的问题.此外,我猜这个问题可能会被关闭或者投票,因为它不是一个直接的编程问题,而且本质上是主观的.但是,它仍然存在.

实施工作正常.我的问题是在本地存储应用内购买的好方法.在我的情况下,只有一个一次性解锁项目可以解锁应用程序的全部功能,并且不会过期或被消耗.

共享偏好对于盗版来说似乎有点太容易了.即使查询Google Play工作正常并且看起来相对安全,它还可以依靠吗?由于文档建议以异步方式进行调用,因此支付解锁功能的用户可能不得不等待访问未锁定的功能并不是一个好主意.此外,当清除GP缓存时,它需要比平时更长的时间(这可能是一种罕见的情况).

但是看到有这么多的应用程序和开发人员,我想知道其他开发人员如何处理它?

android in-app-billing

4
推荐指数
1
解决办法
1418
查看次数