Just noticed this, and found out we have the same bug in a live game, giving away values for thousands of dollars every day. Yet another Corona f###up where you ignore several similar user reports and are totally ignorant. This issue better be fixed fast. [import]uid: 21746 topic_id: 35459 reply_id: 143491[/import]
Hi Joshua,
I implemented In App Billing into the Google’s Dungeon sample app, for v2. I am using same current package id, and same keystore and key alias as my app.
The great thing is, it cleared all the purchases, like it called all store.finishTransaction().
Now when I back to my game compiled with Corona, there is no more unfinish transaction callback, just quiet.
But when I made 2 purchases, the list begin, n * n unfinish transactions.
This shows that the problem is from Corona side, not Google side.
1 thing worth mention: I copy and pasted the license key/public key from my Google Play console, into the Dungeon sample app, this steps seems missing from Corona IAB. [import]uid: 143031 topic_id: 35459 reply_id: 142995[/import]
I’ve experience the same issue.
Unmanaged products are reported multiple times in callback (N*N times, where N is a number of purchases before).
Steps to reproduce:
- Create unmanaged in-app purchase (the only way to implement consumable items so far)
- Purchase it first time: you’ll see one callback
- Purchase same item once more: you’ll see 4 callbacks
…
N) You’ve now got really a lot of coins/stars/potions, other consumables
Current workaround is to store transaction history locally and process only new items. [import]uid: 199969 topic_id: 35459 reply_id: 143155[/import]
Actually it happens to managed and unmanaged. Managed products still coming back, after calling store.finishTransaction().
[import]uid: 143031 topic_id: 35459 reply_id: 143163[/import]
I’ve got the same issue as everyone else is seeing, where my test accounts are reporting multiple copies of all the unmanaged transactions previously done. Can anyone verify if this is happening with live apps, or perhaps its only something wrong with test accounts?
Also, thanks for your help on all this Joshua…do you have any updates on if anything has been found regarding the finish transactions? [import]uid: 122310 topic_id: 35459 reply_id: 144194[/import]
Everyone,
We were finally able to reproduce the issue. It turned out it was caused by a fix we made to [lua]store.finishTransaction()[/lua] last December in daily build #984. Now, that fix was necessary at the time because Google Play was always returning an immediate error, but I’m guessing Google later fixed that issue on their end. What’s odd is that our change made in December was still causing the Google Play app to return success results when we were sending it CONFIRM_NOTIFICATIONS requests, but it appears that the Google Play app was not really sending them out. There were no errors in the log. In any case, reverting our in-app purchase code to the way it was before December solves the problem.
Long story short… this issue is now fixed. This fix will be made available in daily build #1036.
Also note that [lua]store.finishTransaction()[/lua] will cause errors to be returned to your transaction listener if your app has not been uploaded to Google Play or if you have signed your app with a debug keystore. It didn’t used to do this before, but I’m guessing this is now by Google’s design.
[import]uid: 32256 topic_id: 35459 reply_id: 144239[/import]
Dear Corona Staff,
we actually experience the same problem with in-app purchases on Android as colleagues stated above. We noticed all the shit started when we first used build 1024. Since that time, the problem appears in any daily build we use.
Seems like function store.finishTransaction( transaction )
is not working properly. With any new purchase made, we receive all the purchases user has made before. EVEN WHEN USER MAKES STORE.RESTORE()
, HE RECEIVES ALL THE UNMANAGED (!!!) PURCHASES HE MADE BEFORE WITH THIS ACCOUNT. So this is definitely A BUG. Please fix it ASAP. As it is a CRITICAL BUG. We actually cannot publish a new release because of it.
Probably this can help you with identifying the bug: if we rebuild our app with stable build 971, everything is ok. finishTransaction is working properly with that build.
Kind regards,
Supreme team [import]uid: 195776 topic_id: 35459 reply_id: 143463[/import]
Everyone, we’re going to give this issue a deeper look later this week.
supremevc, if reverting to an older build works-around this issue, then that suggests that our fix in daily build #984 is responsible.
http://developer.coronalabs.com/release/2012/984/
Back in December, Google Play updated their in-app purchase system to version 3 which completely broke store.finishTransaction(), causing it to always return a failure. This means purchases did not work at all and you would never receive any payments (at least now you currently receive payments). We discovered in Google’s dungeons sample code that they’ve added a “nonce” to their CONFIRM_NOTIFICATIONS response which was not documented. When we added it to our code, it resolved the issue and allowed purchases to work again. But after downloading their newest dungeons sample code I’ve discovered that the “nonce” has been removed, matching the old behavior. Sounds like Google changed their mind again. This “might” be the cause of the issue because it’s the only discrepancy I’ve seen, although a bit surprising because extra information in Bundle object should not cause any harm.
In any case, we’ll dig into this more later this week. The important thing is for us to reproduce the problem and confirm the fix for ourselves. I don’t want to waste time guessing/speculating what the issue is. Thank you for your patience.
[import]uid: 32256 topic_id: 35459 reply_id: 143485[/import]
Just noticed this, and found out we have the same bug in a live game, giving away values for thousands of dollars every day. Yet another Corona f###up where you ignore several similar user reports and are totally ignorant. This issue better be fixed fast. [import]uid: 21746 topic_id: 35459 reply_id: 143491[/import]
Thanks for the response.
If only 1 developer report the issue, maybe is the developer’s mistake,
If there are 2 developers report the issue, it still can be the developers’ mistakes,
if more than 2 developers reported the issue, DEFINITELY is a bug.
This bug causes money loses, and wasted my whole damn week trying to find my own ‘problem’, compile in native Java, another few days cooking my own solutions, extra testing, register new credit card for test… etc.
Just hope next time you can prioritize the severe of the bug. [import]uid: 143031 topic_id: 35459 reply_id: 144366[/import]
I’ve got the same issue as everyone else is seeing, where my test accounts are reporting multiple copies of all the unmanaged transactions previously done. Can anyone verify if this is happening with live apps, or perhaps its only something wrong with test accounts?
Also, thanks for your help on all this Joshua…do you have any updates on if anything has been found regarding the finish transactions? [import]uid: 122310 topic_id: 35459 reply_id: 144194[/import]
Hi Joshua, thanks for the bug fix! It is never easy to find the root of problem when the bug is hard to reproduce.
I myself can never reproduce the iap problem, but I have received quite a number of angry emails regarding IAP charge money but did not get the in-game items(consumable) since December.
Hope this daily build fixed the problem! [import]uid: 49513 topic_id: 35459 reply_id: 145094[/import]
Everyone,
We were finally able to reproduce the issue. It turned out it was caused by a fix we made to [lua]store.finishTransaction()[/lua] last December in daily build #984. Now, that fix was necessary at the time because Google Play was always returning an immediate error, but I’m guessing Google later fixed that issue on their end. What’s odd is that our change made in December was still causing the Google Play app to return success results when we were sending it CONFIRM_NOTIFICATIONS requests, but it appears that the Google Play app was not really sending them out. There were no errors in the log. In any case, reverting our in-app purchase code to the way it was before December solves the problem.
Long story short… this issue is now fixed. This fix will be made available in daily build #1036.
Also note that [lua]store.finishTransaction()[/lua] will cause errors to be returned to your transaction listener if your app has not been uploaded to Google Play or if you have signed your app with a debug keystore. It didn’t used to do this before, but I’m guessing this is now by Google’s design.
[import]uid: 32256 topic_id: 35459 reply_id: 144239[/import]
Thanks for the response.
If only 1 developer report the issue, maybe is the developer’s mistake,
If there are 2 developers report the issue, it still can be the developers’ mistakes,
if more than 2 developers reported the issue, DEFINITELY is a bug.
This bug causes money loses, and wasted my whole damn week trying to find my own ‘problem’, compile in native Java, another few days cooking my own solutions, extra testing, register new credit card for test… etc.
Just hope next time you can prioritize the severe of the bug. [import]uid: 143031 topic_id: 35459 reply_id: 144366[/import]
Hi Joshua,
I implemented In App Billing into the Google’s Dungeon sample app, for v2. I am using same current package id, and same keystore and key alias as my app.
The great thing is, it cleared all the purchases, like it called all store.finishTransaction().
Now when I back to my game compiled with Corona, there is no more unfinish transaction callback, just quiet.
But when I made 2 purchases, the list begin, n * n unfinish transactions.
This shows that the problem is from Corona side, not Google side.
1 thing worth mention: I copy and pasted the license key/public key from my Google Play console, into the Dungeon sample app, this steps seems missing from Corona IAB. [import]uid: 143031 topic_id: 35459 reply_id: 142995[/import]
I’ve experience the same issue.
Unmanaged products are reported multiple times in callback (N*N times, where N is a number of purchases before).
Steps to reproduce:
- Create unmanaged in-app purchase (the only way to implement consumable items so far)
- Purchase it first time: you’ll see one callback
- Purchase same item once more: you’ll see 4 callbacks
…
N) You’ve now got really a lot of coins/stars/potions, other consumables
Current workaround is to store transaction history locally and process only new items. [import]uid: 199969 topic_id: 35459 reply_id: 143155[/import]
Actually it happens to managed and unmanaged. Managed products still coming back, after calling store.finishTransaction().
[import]uid: 143031 topic_id: 35459 reply_id: 143163[/import]
Hi Joshua, thanks for the bug fix! It is never easy to find the root of problem when the bug is hard to reproduce.
I myself can never reproduce the iap problem, but I have received quite a number of angry emails regarding IAP charge money but did not get the in-game items(consumable) since December.
Hope this daily build fixed the problem! [import]uid: 49513 topic_id: 35459 reply_id: 145094[/import]
Dear Corona Staff,
we actually experience the same problem with in-app purchases on Android as colleagues stated above. We noticed all the shit started when we first used build 1024. Since that time, the problem appears in any daily build we use.
Seems like function store.finishTransaction( transaction )
is not working properly. With any new purchase made, we receive all the purchases user has made before. EVEN WHEN USER MAKES STORE.RESTORE()
, HE RECEIVES ALL THE UNMANAGED (!!!) PURCHASES HE MADE BEFORE WITH THIS ACCOUNT. So this is definitely A BUG. Please fix it ASAP. As it is a CRITICAL BUG. We actually cannot publish a new release because of it.
Probably this can help you with identifying the bug: if we rebuild our app with stable build 971, everything is ok. finishTransaction is working properly with that build.
Kind regards,
Supreme team [import]uid: 195776 topic_id: 35459 reply_id: 143463[/import]
Everyone, we’re going to give this issue a deeper look later this week.
supremevc, if reverting to an older build works-around this issue, then that suggests that our fix in daily build #984 is responsible.
http://developer.coronalabs.com/release/2012/984/
Back in December, Google Play updated their in-app purchase system to version 3 which completely broke store.finishTransaction(), causing it to always return a failure. This means purchases did not work at all and you would never receive any payments (at least now you currently receive payments). We discovered in Google’s dungeons sample code that they’ve added a “nonce” to their CONFIRM_NOTIFICATIONS response which was not documented. When we added it to our code, it resolved the issue and allowed purchases to work again. But after downloading their newest dungeons sample code I’ve discovered that the “nonce” has been removed, matching the old behavior. Sounds like Google changed their mind again. This “might” be the cause of the issue because it’s the only discrepancy I’ve seen, although a bit surprising because extra information in Bundle object should not cause any harm.
In any case, we’ll dig into this more later this week. The important thing is for us to reproduce the problem and confirm the fix for ourselves. I don’t want to waste time guessing/speculating what the issue is. Thank you for your patience.
[import]uid: 32256 topic_id: 35459 reply_id: 143485[/import]