Problem statement:
In my app using Google Play Billing V5.2.0, the billing screen showed "Purchase successful" message after clicking buy-button for consumable product. However, my codes did not receive "OK" response code to execute in-app entitlement to user. So, I logged the onConsumeResponse code to check what code responded by billing server, it was "0" that represents "OK" which means a success. How can I overcome this issue? Or what mistake did I make?
Log:
I/onConsumeResponse: onConsumeResponse: 0
Code:
ConsumeResponseListener listener = new ConsumeResponseListener() {
@Override
public void onConsumeResponse(@NonNull BillingResult billingResult, @NonNull String purchaseToken) {
Log.i("onConsumeResponse", "purchaseToken: "+ purchaseToken);
Log.i("onConsumeResponse", "onConsumeResponse: "+ billingResult.getResponseCode()+ " " + billingResult.getDebugMessage());
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK){
//Handle success of consume operation: grant coins
grantCoins(purchase.getProducts());
billingClient.endConnection();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(BillingActivity.this, "Product consumed successfully, restart app to see changes", Toast.LENGTH_SHORT).show();
}
});
}else{
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(BillingActivity.this, "Product consume error, please contact developer", Toast.LENGTH_LONG).show();
}
});
}
}
};