Hi, Thank you very much. This is wonderful post.
I didn't want to publish my app by just copying google's billing sample without understanding what is actually going on... This article helps me a lot:)
One question.
In BillingHelper#verifyPurchase, you only check the first purchase
latestPurchase = purchases.get(0);
While google's sample checking the each item in the ArrayList.
I guess it may be the reason you mention that "Caveats: May have issues with multiple purchases and network delays",
But do you know in which case the purchase can be multiple? It seems we can only specify one item id ( and can not specify the quantity ) in the "REQUEST_PURCHASE" billing request. Or it should be safe to check the first one only (same as your sample) with the current market implementation?
Best Regards,



that's how you learn