You should first clean up your coinManager save function. Save should do what it says: save. What you currently do is as well manipulate coin score and it is responsible for displaying it as well. Separate that into different functions.

Now that you have them divided, you can add two more: boolean hasEnoughCoins(int amount) and reduceCoins(int amount). You would call your first function with a simple check against your coin amount and return true or false if he can afford to unlock your level. If he has, you can call the second function to reduce the total amount. After each add/ remove coin amount, you want to call your save.

On a side note: If you are allowing IAP for more coins, the total amount of coins should not be handled locally but server side.