@doubleslashdesign, glad to hear my posts are timely for you. 
@3 Dreams Gaming, store.finishTransaction() function is called from inside the transactionCallback, and transactionCallback is called when I initialize the store in main.lua.
Edit: So, I think, calling once (i.e., initializing once) at the start of the game is enough… Ah, but I see, if the user left the game in some suspended state, how do we initialize the store again when the user resume from some suspended state? I suppose if it was suspended, the store is still active (and eventually resume listening for the transaction). At least that seems like how it should be handled? Hmmm… good question though. May need some further testing on that one.
Here’s the relevant code structure, and in the order they show up:
[lua]-- main.lua
function transactionCallback(event)
if transaction.state == “purchased” then
elseif transaction.state == “restored” then
elseif transaction.state == “refunded” then
elseif transaction.state == “cancelled” then
elseif transaction.state == “failed” then
else
end
store.finishTransaction( transaction )
end
– Connect to store at startup
if store.availableStores.apple then
store.init(“apple”, transactionCallback)
elseif store.availableStores.google then
store.init(“google”, transactionCallback)
end [/lua]
To fill out the details, might be wroth reading up on this tutorial blog post:
http://blog.anscamobile.com/2012/03/getting-started-with-android-in-app-billing/
Naomi [import]uid: 67217 topic_id: 24973 reply_id: 101427[/import]