So I guess you could say I feel like I find myself in a void. Here's the way I understand the order for distriqt inappbilling - android setup Init the billing getProducts(send_in_array_of_products) Now that it's done I can send requests for consume, purchase etc.
The first time I ran the program it returned the products. I made a test purchase but the purchase failed - it made it to the android login and verify credit card - then the purchase failed event was triggered (I have no idea why it failed at this time). I closed the game at this point and did some updates to track more of what was going on.
When I went to run the game the second time it failed getting the products list - turns out it gave me the following error: 1003 - Error refreshing inventory (querying owned items). Okay - now what??
I can't load the getProducts() because of this error. I have tried sending a consume for each product and that fails. It seems like I'm stuck in a spot where I can't do anything with the store because I can't load the product list.
Android says you are suppose to call to the store to get a list of products that that the person owns but I don't see that type of function in the distriqt package.
Can anyone explain what I have to do to get the store working again. How do I request a product list by leaving out the products that they own if I don't know what products they own? Also, if I do know what they own - shouldn't Consume(product) remove it from being a purchased product?
Does anyone know if you can run consume(product) without doing a getProducts() command first?
Thanks for any help you can provide.
This answer really applies to Distriqt InAppBilling ANE but it might help with other people having the same problem using different programming methods. After about a week of messing around I finally figured it out.
You have to make sure the call the
InAppBilling.service.finishPurchase(purchase-information)
command.
Otherwise the play store will see this as an open transaction and when you try to get the product list - it fails with the error code
1003 - Error refreshing inventory (querying owned items)
.To fix this I made the finishPurchase call to all of my products. Once that was done everything started working correctly again. Just be sure to call the
finishPurchase
command on all returned purchase events. I missed that call in the fail event and that was the one that caused my headache. You would think if the purchase failed that google would just close the transaction but no - you still have to tell them that it's finished. Hope this helps someone!