Wenn Sie sich in einer Testumgebung befinden
1) Im Fall von android.test.purchased kann ich die gefälschte Zahlung zurücksetzen, indem ich das Android-Gerät neu starte (das Inventar verbraucht).
2) In InApp util gibt es eine Datei namens Security.java, die vorübergehend wie folgt erstellt wird. Da die Testzahlung (Fälschung) aus Sicherheitsgründen immer falsch zurückgibt.
public static boolean verifyPurchase(String base64PublicKey,
String signedData, String signature) {
return true; }
Rufen Sie dann in Ihrem OnIabPurchaseFinishedListener fechInvForconsumeItem () auf
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
= new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result,
Purchase purchase)
{
if (result.isFailure()) {
// Handle error
Log.e("123","Failure");
return;
}
else if (purchase.getSku().equals(ITEM_SKU)) {
Log.e("123","PURCAsed");
fechInvForconsumeItem(); // Restart device if not consume
}
}
};
Das fechInvForconsumeItem () ist
public void fechInvForconsumeItem() {
mHelper.queryInventoryAsync(mReceivedInventoryListener);
}
IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
= new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result,
Inventory inventory) {
if (result.isFailure()) {
// Handle failure
Log.e("11","Failure");
} else {
Log.e("11","suc");
mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
mConsumeFinishedListener);
}
}
};
Consume Listener ist
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase,
IabResult result) {
if (result.isSuccess()) {
} else {
// handle error
Log.e("11","sucConsume");
}
}
};