我已成功将应用内购买添加到我的应用中,并且一切顺利:
但是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/