2016-03-30 3 views
1

başarıyla Uygulamama uygulama satın alma halinde ekledik ve bunun cezası geçer:Uygulama alımlarında çalışma, ancak yöntem yürütmüyor mu?

enter image description here

ama if (purchase.getSku().equals("android.test.purchased")) geçmez ve bu yüzden premium sürümü ile benim UI güncelleştirmek olamaz !

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(); 
      } 
}; 

Neden if (purchase.getSku().equals("android.test.purchased")) Ödeme başarılı olsa bile geçiyor değil?

sayesinde

Ruchir

cevap

0

Security.java, yöntemde verifyPurchase(), bu ekleyin:

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

Yani, toplam yöntem bu gibi görünmelidir:

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); 
    }