I can't load in app item in my app also with invalidClient error

Hello everyone,

We are trying to load our in-app-item into our app but it doesn’t work.
We have been working with this issue around 3 days already and nothing seems to work  :(.

We get these two errors
1. the item you were attempting to purchase could not be found.
2. invalidClient

Following are works that we have done

  1. Package of the app and the one on server is exactly the same.

  2. Keystore is exactly the same.

  3. We use tester account, which is not a developer account to test our app.

  4. We know that store.loadProducts() doesn’t work with IAP V2.

  5. Test product ID works fine.

  6. Item in developer console is active

  7. the App is published (to beta tester)

  8. We use Pro version of Corona.

Below is our code

local t = display.newText("Test Billing",0,0,native.systemFont,12); local store = require("store") display.setStatusBar( display.HiddenStatusBar ) io.output():setvbuf('no') local count = 0 local googleProductList = {  "com.mad.testonly.item1", } function transactionCallback( event )  local infoString = "";  count = count+1  t.text = t.text .. "\n\n transactionCallback     " .. count;  if event.transaction.state == "purchased" then   t.text = t.text .. "\nTransaction successful!"  elseif  event.transaction.state == "restored" then   -- Reminder: your app must store this information somewhere   -- Here we just display some of it   infoString = "Restoring transaction:" ..        "\n   Original ID: " .. tostring(event.transaction.originalTransactionIdentifier) ..        "\n   Original date: " .. tostring(event.transaction.originalDate)   t.text = t.text .. "\n" .. infoString  elseif  event.transaction.state == "refunded" then   infoString  =  "\nFor product ID = " .. tostring(event.transaction.productIdentifier)   descriptionArea.text = infoString   t.text = t.text .. "\nA previously purchased product was refunded by the store." .. infoString  elseif event.transaction.state == "cancelled" then   t.text = t.text .. "\nTransaction cancelled by user."  elseif event.transaction.state == "failed" then           infoString = "Transaction failed, type: " ..     tostring(event.transaction.errorType) .. " " .. tostring(event.transaction.errorString)   t.text = t.text .. "\n" .. infoString  else   infoString = "Unknown event"   t.text = t.text .. "\n" .. infoString  end  t:setReferencePoint(display.TopLeftReferencePoint);  t.x,t.y = 0,0;  store.finishTransaction( event.transaction ) end function loadProductsCallback( event )  t.text = t.text .. "\nAfter store.loadProducts, waiting for callback";  t.text = t.text .. "\n purchase :com.mad.testonly.item1";  store.purchase( {"com.mad.testonly.item1"} ); end function setupMyStore(event)  if store.canLoadProducts then   store.loadProducts( googleProductList, loadProductsCallback )    else   t.text = t.text .. "\nCan't loadProducts";     t.text = t.text .. "\n purchase :com.mad.testonly.item1";   store.purchase( {"com.mad.testonly.item1"} );  end end if store.availableStores.google then  store.init("google", transactionCallback)  t.text = t.text .. "\nUsing Google's Android In-App Billing system.";   t:setReferencePoint(display.TopLeftReferencePoint);  t.x,t.y = 0,0;  else  t.text = t.text .. "\nIn-app purchases is not supported on this system device.";   t:setReferencePoint(display.TopLeftReferencePoint);  t.x,t.y = 0,0;  end  

Would really appreciate some help with this issue  :wub:

Cheers!
Nate

Finally we can fix it, so I would like to share information for this issue (hopefully this is helpful).

  1. I can use my developer ID to test my IAP. I make my ID to be a tester then I can test the app (go to Setting in Google developer console, you’ll see “Gmail accounts with testing access” put your email in that box).

  2. I don’t have to wait for 4 - 6 hours, as soon as the app is up on Google Play I can test it.

  3. to load the product just use store.purchase( {“Your item ID”} ); NOT store.purchase( {“com.your game.your item ID”} );

Cheers!

Finally we can fix it, so I would like to share information for this issue (hopefully this is helpful).

  1. I can use my developer ID to test my IAP. I make my ID to be a tester then I can test the app (go to Setting in Google developer console, you’ll see “Gmail accounts with testing access” put your email in that box).

  2. I don’t have to wait for 4 - 6 hours, as soon as the app is up on Google Play I can test it.

  3. to load the product just use store.purchase( {“Your item ID”} ); NOT store.purchase( {“com.your game.your item ID”} );

Cheers!

I am having the same problem, but I am doing all steps ok…I can’t see my error. android.test.purchased works ok, but I can’t test my active product id , always element not found and errorType: invalidClient.

I have tried with iap v3 plugins, adding license, removing it,all ways possible… but I cant test them.

transactionCallback: Received event storeTransaction
I/Corona  (20605): state: failed
I/Corona  (20605): errorType: invalidClient
I/Corona  (20605): errorString:

I am afraid to publish the app with iap not sure if working or not. My app is in draft mode and my products active.

I am having the same problem, but I am doing all steps ok…I can’t see my error. android.test.purchased works ok, but I can’t test my active product id , always element not found and errorType: invalidClient.

I have tried with iap v3 plugins, adding license, removing it,all ways possible… but I cant test them.

transactionCallback: Received event storeTransaction
I/Corona  (20605): state: failed
I/Corona  (20605): errorType: invalidClient
I/Corona  (20605): errorString:

I am afraid to publish the app with iap not sure if working or not. My app is in draft mode and my products active.