在应用程序购买工作,但方法不执行?
我已成功将应用内购买添加到我的应用中,并且通过罚款:
但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"))
仍然没有通过?
谢谢,
Ruchir
在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); }