IAP plugin “This In-App Purchase has already been bought. It will be restored for free.” issue


I can reproduce the issue on Cocos Creator 1.6.2 with IAP version following these steps

  1. Click ‘purchase’ item
  2. Go to the home screen (don’t kill the app)
  3. Click ‘buy’ button in system IAP dialog
  4. Wait for the purchase successful screen
  5. Kill the app
  6. Restart the game
  7. Try to purchase the same item
  8. This In-App Purchase has already been bought.
  9. None of the callbacks are called thus freezing the game


OK, I’ll try your case, on iOS 11 device ?


iOS 11 and iOS 10.3


Any update regarding this issue?


I would like to know,too.
My users constantly get the issue, and I have nothing to do.


Hi, We have this issue as well with our game.

Repro steps:

  1. Using Sandbox account, attempt to make a Non-Consumable purchase.
  2. Before completing purchase, force quit app.
  3. After app is force quitted, complete purchase.
  4. On returning to app and attempting to repurchase said item, message displays " This In-App Purchase has already been bought. It will be restored for free." and on dismissing it, nothing happens.

SDKBox Version used: 2.317.6

Please advise whether we can do anything to fix this!


i got follow messages
Confirm Your In-App Purchase
->You've already purchased this. Would you like to get it again for free
->purchase result, onSuccess event

how about invoke restore when app launch, if the last purchase was interrupted.


Thanks for replying.

I think I missed out an important detail: This happens on Non-Consumable purchases. We are verifying whether it happens for Consumable Purchases as well at the moment.

I’ve edited my original post to say that purchase must be Non-Consumable.

Let me know if you can get a repro for the issue!

As for Invoking Restore, we have a “Restore” purchase button that works in the normal case. But it does not successfully Restore the purchase in this case. Does invoking restore at app launch have a different effect from invoking restore from a user action?


I make a video, check your steps with consumable item.

And @IvanLoo, I checked non-consumable item, same result with @htlxyz.

UPDATE: check with https://github.com/sdkbox/sdkbox-sample-iap


It happens for Consumable Purchases as well, that’s why I started this thread.
And I can reproduce it via your steps.


The steps in my video are right?


What if you terminated app (maybe use Xcode) before you press buy?


before you press buy?

so, when the Confirm Your In-App Purchase Dialog show, terminated app, the Buy button have not pressed?


how about make a sample project to us.

create a empty project.
import iap
config your iap product info
give a detail steps.

use https://github.com/sdkbox/sdkbox-sample-iap to reproduce, and give us a detail steps.


Hi htxyz,

The repro method in video is wrong because you need to force quit the app BEFORE finishing purchase.

I have a video of the repro steps, but can’t upload it. Any way I can send you the video?


you can convert video to mov format.

ffmpeg -i input_file.mp4 -acodec copy -vcodec copy -f mov output_file.mov


Thanks for the quick response.

When I try to upload, I get the error saying “Sorry, New Users can not upload attachments”.


you can email me , jimmy.yin5 AT gmail

And I also test with terminate app by click QUIT button. same result.


Sent an email as requested!



i follow your steps, but i can repurchase. and i got message “You’ve already purchased this. Would you like to get it again for free” and your message is “restore for free” when repurchase.

BTW, i tested on iOS11
FYI, https://discussions.apple.com/thread/7502948?start=0&tstart=0