java - 在应用程序购买中工作,但方法未执行?

标签 java android arrays database string

我已成功将应用内购买添加到我的应用中,并且一切顺利:

enter image description here

但是if (purchase.getSku().equals("android.test.purchased"))没有通过,所以我无法使用高级版本更新我的 UI!

    public void buy(View v) {

        mHelper.launchPurchaseFlow(this, "android.test.purchased", 10001,
                mPurchaseFinishedListener, "developerPayLoadString");

    }

    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
            = new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            if (result.isFailure()) {

                Toast.makeText(MainActivity.this, "Unable to make purchase.", Toast.LENGTH_SHORT).show();
                return;
            } else if (purchase.getSku().equals("android.test.purchased")) {
                Toast.makeText(MainActivity.this, "Successfully bought product!", Toast.LENGTH_SHORT).show();
            }
};

为什么不是 if (purchase.getSku().equals("android.test.purchased"))支付成功了还继续走吗?

谢谢

鲁奇

最佳答案

Security.java中,方法verifyPurchase(),添加以下内容:

 if (BuildConfig.DEBUG) {
            Log.v("myActivity", "Debug :)");
            return true;
        }

所以,整个方法应该如下所示:

  public static boolean verifyPurchase(String base64PublicKey, String signedData, String signature) {

        if (BuildConfig.DEBUG) {
            Log.v("myActivity", "Debug :)");
            return true;
        }

        if (TextUtils.isEmpty(signedData) || TextUtils.isEmpty(base64PublicKey) ||
                TextUtils.isEmpty(signature)) {
            Log.e(TAG, "Purchase verification failed: missing data.");
            return false;
        }



        PublicKey key = Security.generatePublicKey(base64PublicKey);
        return Security.verify(key, signedData, signature);
    }

关于java - 在应用程序购买中工作,但方法未执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298320/

相关文章:

java - 在 Java 中使用多级 HashMap 的最佳实践

java - getClass() 文档中的 "the erasure of the static type of the expression on which it is called"是什么意思?

java - java中的HTTP GET请求

java - 从字符串中获取用户名 = 'testuserMM' 的正则表达式

javascript - 在 Javascript 中,将数组的最后一个元素带到开头的最紧凑、优雅和高效的方法是什么?

android - 提示用户输入路径/文件名

android - WebView 在某些手机上不显示加载的 Html

android - 删除doOnTextChanged上的文本会删除我以编程方式设置的编辑文本的特殊格式

javascript - mongodb 错误 Mongoose 不推数组 $pushAll 中的对象

java - Sqlite 列到字符串数组