I'm not even halfway through the video and just have to say, THANK YOU! I finished building my game and this parts of testing on devices and connecting to playstore/ios have been awful due to the little documentation you can find around any of these. THANK YOU, THANK YOU, THANK YOU
A long, but well-articulated video. I did run into an issue where I forgot to remove the 'pass' keyword in my code, which prevented it from working. Aside from that, everything went smoothly. It would appear that testing the purchase on a physical device does in fact process a payment, so I went a requested a refund. lol
I'm glad it helped! I did not know it actually charged you! When I ran mine I didn't actually get charged so that's crazy! If you have any feedback or anything you'd like me to cover in the future let me know!
I am sure most of the guys here know this already, but for someone new. If you just want to have the godot logs you can use adb logcat -s godot instead of adb logcat
Just to those that don't know when writing gdscript you are supposed to remove the "pass" from the function when you write any code inside the function, it exists only to say that a function is empty.
Can anyone help? The game on the phone is only in landscape mode, but the in-app opens only in portrait mode and the game in the background change view and looks horrible. How can I block this behavior or have the in-app open only in landscape mode?
Great tutorial. Just a question , might sound dumb, but we don't need to store the user data in any kind of database right ? The Google cloud thing will take care of it ?
oops hm, I wanted to take another doubt with you, first is about this "token" is it this mini panel that the Play Store displays when we are going to make a purchase in games? And the other question is about the money, where does it go? Like, does the agent register a bank account on Google Play services or does it go to the developer's account and from there have a way to transfer it to a bank account so that we can then carry out the "withdrawal"?
Great tutorial¡ I would really appreciate it if you could make a version of this video for in-app purchases on iOs. I had no problems with versions prior to 3.3, but with the new plugin system for iOS I am totally lost.
Great tut. Could you make a video on how to code the usage of the in app purchase in game? I'm kinda lost on that and i don't see any videos describing it.
Hello, first of all, thank you very much for the tutorial ❤ My question is, will we make any changes to the code for an in app puchase with real money (example $10)? Or what should we do?
Hi! This is a great content and easy to follow as well. I had a problem though when installing the app for internal testing. It is my first app so I thought it would take a few hours for the app to install in my device remotely. How long will it take typically for first apps?
I plan on doing a basics with Godot tutorial on CSG meshes next. I have a Trello board with all my ideas/future videos I should advertise it more... trello.com/b/cJWPaVyV/godot-tutorials I think you can comment on it as well if you have idea or want a specific one.
@@FinePointCGI Ok, the list seems healthy and the tutorials-to-come exciting. Can't wait for all of them to come online. I still have some suggestions though. One of those suggestions could be a part 2 of this tutorial: 1. Download (buy) a theme (or skin in game) and apply it to change the entire look of game menu and set it as default such that the applied skin is loaded automatically on starting the game everytime. 2. Godot-Android code to get a list of all image/sound files on the device. I had a project that neede this but deleted it because I could not achieve this after a month's hard trying and did not want to waste any more time on that. I wanted to implement this feature inside the game to allow local modding like changing the texture and background music. I somehow wrote the code to mod, but the images and sound files had the be in a specific folder only; which is not desirable for everyone. Therefore, it would be great if you make a tutorial on this one; I would be much grateful to you. Both these tutorials will be great not only in your catalogue, but also for serious godot users like me. Thank you once again.
@@ajdhgsldhdgwielbw736 I have added them to my list of things to look at. Number 2 will be complicated because android sandboxes everything I think you need a storage permission to do it.. so it'll be interesting to look at that's for sure!
hi! Thank you so much for this amazing tutorial! I just want to ask if how about for subscriptions? How can I purchase subscriptions and query its details? thank youuu
Thank you very much for this tutorial. Unfortunately it does not work anymore. I have inserted a "print ("TEST")" line after the "If Engine.has_singleton("GodotGooglePlayBilling"):" And "TEST" never gets printed. What does it mean? That the plugin cannot be found? If I click the Buy Button I get the following Error: "Invalid call. Nonexistent function 'purchase' in base 'Nil'." I am using Godot 3.5. I searched the web, and there are other people with the same problem. Do you have any idea how to solve this problem @FinePointCGI ? Or someone else? Having no option for IAP in Godot is a HUGE bummer.
Yes that means that your plugin is not being loaded. Some things to check is the plugin version it's possible that might be causing a problem or it's possible that you may not have it enabled in the export settings
@@FinePointCGI The problem was that I was trying to test in on desktop (via the editor), and this does not work. When I was testing it on my smartphone, it worked. Which makes sense when I think about it. Thank you
Another great tutorial! Maybe a stupid question but can you test IAP`s with a test device as you can test Admob ads? Also for a future tutorial Using ADB LOGCAT for dubugging would be useful.
Hey so you have to download it from the play store for it to have a link to the IAP api. You can test it with your test device but you need to send it to that device though google play. I show it some where around 26:18 is where I start the deployment process and 41:41 is where I download it to my test device.
@@FinePointCGI Maybe a short video on using adb logcat? You use it a lot in your tutorials and it is obviously an invaluable tool but it's a bit confusing how to use it properly.
Hey friend, I wanted to clear up a doubt with you here, I know that to publish a game on the Google Play Store we must pay a fee of 25 dollars, my doubt is about this fee, like, if I pay this fee of 25 dollars I can i publish as many games as i want? Or do I have to pay this fee every time I publish a game?
@@FinePointCGI oops hm, I wanted to take another doubt with you, first is about this "token" is it this mini panel that the Play Store displays when we are going to make a purchase in games? And the other question is about the money, where does it go? Like, does the agent register a bank account on Google Play services or does it go to the developer's account and from there have a way to transfer it to a bank account so that we can then carry out the "withdrawal"?
Hello, I have a question: I thought that the "connected" signal should only get fired if we establish a connection to the Google API. I am using the signals from the official Godot docs (they differ slightly from the ones you are using in the video) -> payment.connect("connected", self, "_on_connected") Then I am using: func _on_connected(): print ("connection successful") The problem: Even if my smartphone does not have an internet connection, the connected signal gets fired and the print command gets executed. What could be the reason for this? I do not fire the signal anywhere by myself. ChatGPT said that it might be that the signal gets fired when the GooglePlayBilling module gets initialized, regardless of the connection status. But how am I supposed to check if the connection to Google was successful or not then? I would appreciate any help very much! *edit* On the other side, the "_on_sku_details_query_completed" signal gets never fired.
Will this work on 3.5.1? I saw some comments below about replacing a line for 3.4 and I'm also curious about what might be different for making an aab versus apk
I'm in the process of debugging the latest plugin pre release (2.0) of Google Play Billing from the same person who created the one in this video with Godot 3.5.2. Note that NativeLib does not show anything listed in the new version of Godot, but any plugins that were already there appear to still work in the export to apk or aab. However, my purchases are no longer using the item that is bought from the store, but still charging the customer. I'm trying yield(get_tree().create_timer(3), "timeout") in some new locations to see if I can get it to work as this helped in the version in this video a year ago as I had to have it after the billing.querySkuDetails code. I'm now stuck with a message when I try to purchase a consumable item from the store where nothing was consumed saying that I already own the item. So I'll have to temporarily adjust my code to not purchase the item and consume it. In the meantime, I had to turn off all of my stores purchase items so that I do not rip off any customers. This is frustrating and I hope I can either fix it myself or find an updated plugin from timoschwarzer. If you can help us FinePointCGI, please do as you are the sharpest at these concepts that I have found. Thank you!
@@radiandrzgaming8708 interesting...I was tempted to mess with the gdap and aar files on the 2.0 pre release but your experience is making me nervous to. at the same time, what do I really have to lose?
@@ryancraven6720 I have since debugged and got this all working. The item that couldn't be found in the store was due to my scene not using the correct script file. It was using an older one with a slightly different extension. Strange. I clicked detach script and then reattached the script I was working on and it solved it. I was at that for a long time before I noticed it. I have the latest version of Google Play Billing and that is working just fine. There is some slightly different changes in code. I forget right off where I found that. I may have the link. I have trouble pasting things on here for some reason. Also, I have since got GDNative plugins to show up with a slight modification that I also found. I'll take a look for the links.
@@radiandrzgaming8708 I'm not at all familiar with GDNative plugins? Why do I need it and what exactly does it do? Can't I just replace my aar and gdip files with the link you provided to TimoSchwarzer's RC candidate?
the only thing i didn't really see in this tutorial is the reward for the sku purchase. something like in the ad tutorial that counted when it was purchased
Thank you! This was an awesome tutorial! I am having problems with getting the "Test Card" to work, however. When I test the in-app purchasing, it pulls up the Google Play screen for purchasing the testsku, but it wants me to actually purchase it with either google play credit or a card. I've done a lot of searching, but I can't really find a solution to this. I added my testing account to internal testing and License testing but it still requires me to make a real purchase. Am I missing something?
@@FinePointCGI After 2 days of trial and error, the test card just started working all of a sudden. My only guess is that either reinstalling the add-on fixed it or Google's servers had to take a few days to let me use the test card.
@@FinePointCGI It's all good, it wasn't your fault that happened lol. Thank you once again for creating this tutorial!! Also, saw you had a "Brawlhalla"-like game on your list of tutorials to-do. Look forward to seeing that whenever you get around to it =)
saddlyy !! "We've detected this app uses an unsupported version of Play billing. Please upgrade to Billing Library version 4 or newer to publish this app." this billing plugin need update
Hey thanks for the vid. I'm still having problems making the iaps work since I'm using a slightly different approach. Could I write you somewhere so you can have a look?
@@FinePointCGI When you say to call the second function once you get the acknowledgement, do you mean having "billing.consumePurchase(itemToken)" after "if items.size() > 0: itemToken = items[items.size() - 1].purchase_token"? I'm trying to consume the item once it's been purchase but it doesn't seem to work since I get a "You Already Own This Item" error when I try to purchase a second one. This isn't an issue when I have two separate buttons. Not sure if it's a different issue that I'm not aware of, but I can't seem to combine them together.
No you can't host google play stuff on windows to do in app purchases for windows you would need to host it yourself, use something like steam/windows store or one of my favorite frameworks Nakama. heroiclabs.com/docs/in-app-purchase-validation/
Hello thank you for tutorial, i have a question, currently testing on godot 3.5 and saw that querySkuDetails(["testsku"], "inapp") returns null, do you have any idea about it?, currently querySkyDetails returns nothing, i already defined testsku item on the google console
@@FinePointCGI Thanks! I have been looking forward to switching to Godot 4, but since I make mobile games the thing keeping me from doing so are the admob & Google play plug-ins
Sir, I have a doubt about how can I call the local server (call an API from my local pc) in Godot, I did a simple python server and it works well in Godot but when I move to the device nothing happens, I tick the internet and network permissions in the editor.
Yes its totally doable. The problem is you would need to use microsoft or steam to host your IAP items. That or you would need to build your own api to handle it. for steam you could use github.com/Gramps/GodotSteam It seems to support DLC. I have added it to my trello board. trello.com/b/cJWPaVyV/godot-tutorials
I'm currently in the same situation with Google now requiring Google billing version 4 for any app updates. Also, I cannot get NativeLib to work properly with Godot v3.5.2 and I need this version in order to run Android 31 as Google requires it for new uploads and updates.
Hi, I'm testing. It seems that it is not necessary to upload the application to google play store to test the iap plugin. I export in apk and install it on my smartphone avoiding the step of uploading to google play store. Am I wrong it is necessary to upload the file to play store for some reason?
Yes you can install without uploading to the app store however the link to your app and Google's servers for your IAP may not work. In my testing I was unable to purchase anything without uploading it .
@@FinePointCGI Hello, I have not been able to corroborate what you say because google did not allow me to buy at any time from my developer account, not even by uploading the ".aab" file to the play store. What I have observed is that it is not possible to buy from the developer account, that is, if I enter my developer address in the testers list and I try to buy from that account, Google does not allow it and tells me that "the product does not is it availabe". Then, I enter my alternative email in the tester list, then from this account I can buy but the payment is made! I don't want to pay because I'm only doing tests, how did you manage to buy and not pay to test the purchases? .
@@FinePointCGI I can't find the link I posted in the comment. I have a problem with the translations that I have to do, I am from Spain. Do you have a register of that message? Can you put the link to the official doc in the video description? this will inform users on how to create a test payment card.
No you will I'm sorry you got buried down in my inbox.. I'll try to get one out on this but last I knew it was going to need to get updated and changed so I was waiting on that mostly.
I cant beleive you use such a short password for your Google account. My password is like 20 characters. Your google account is practically your life , must be highly protected
@@AbdouMadjidi_. It really depends on my work schedule but I will get to it. I know its been requested by a few people at this point so itll be done sooner then later.
One important thing I was missing: developer.android.com/google/play/billing/security#verify - Never trust the data given by the Android app, because it can be manipulated. Always do a server to server check with that token. I know this would blowup your tutorial, but you should have mentioned it.
Hey thanks for the feedback, I didnt even know that this little article existed. I will probably need to do a follow on tutorial with some of these details. Thanks for the help!
Yeah that's kinda the freaking thing to me, I remember reading an article about a dev messing with google firebase database and haveing to pay a lot of money to them. Anyway @finepointCGiI, it would be great to make a tutorial on how to implement google fire database in a proper way.
Great stuff, Mitch. Thanks for putting this together many moons ago. I can verify that it still works as of July, 2023, in Godot 3.5.2. :)
Hello, which Google Play Billing version did you download?
I believe the Godot developers are at 5.2.1
@@FinePointCGIthanks for the answer! So just to know, there is no specific version for Godot 3.5 or Godot 4? I just have to download 5..2.1 version?
Thank you for such in-depth tutorials. I love how you also tell you to explain everything and just don't say do this then do that, Great job man.
Hey thanks! If there's anything you'd like me to cover in the future let me know!
I'm not even halfway through the video and just have to say, THANK YOU!
I finished building my game and this parts of testing on devices and connecting to playstore/ios have been awful due to the little documentation you can find around any of these.
THANK YOU, THANK YOU, THANK YOU
How does this legendary video not have 10k views yet. Man you deserve atleast 10x the subs as me.
Could you make a video about iap for ios?
A long, but well-articulated video. I did run into an issue where I forgot to remove the 'pass' keyword in my code, which prevented it from working. Aside from that, everything went smoothly. It would appear that testing the purchase on a physical device does in fact process a payment, so I went a requested a refund. lol
I'm glad it helped! I did not know it actually charged you! When I ran mine I didn't actually get charged so that's crazy! If you have any feedback or anything you'd like me to cover in the future let me know!
Thank you so much. That's really cool.
I am sure most of the guys here know this already, but for someone new. If you just want to have the godot logs you can use
adb logcat -s godot
instead of
adb logcat
I keep forgetting this thanks for the reminder...
Just to those that don't know when writing gdscript you are supposed to remove the "pass" from the function when you write any code inside the function, it exists only to say that a function is empty.
I end up having a bunch of pass statements left in my code lmao. Doesn't do anything if you leave them.
Can anyone help? The game on the phone is only in landscape mode, but the in-app opens only in portrait mode and the game in the background change view and looks horrible. How can I block this behavior or have the in-app open only in landscape mode?
Great tutorial. Just a question , might sound dumb, but we don't need to store the user data in any kind of database right ? The Google cloud thing will take care of it ?
Awesome tutorial, this has helped me alot, thanks man
Of course if there anything you'd like for me to cover in the future let me know!
oops hm, I wanted to take another doubt with you, first is about this "token" is it this mini panel that the Play Store displays when we are going to make a purchase in games? And the other question is about the money, where does it go? Like, does the agent register a bank account on Google Play services or does it go to the developer's account and from there have a way to transfer it to a bank account so that we can then carry out the "withdrawal"?
Great tutorial¡ I would really appreciate it if you could make a version of this video for in-app purchases on iOs. I had no problems with versions prior to 3.3, but with the new plugin system for iOS I am totally lost.
Yeah I'd like to get a Mac and start doing iOS as well but I'll have to wait Macs are crazy expensive
Great tut. Could you make a video on how to code the usage of the in app purchase in game? I'm kinda lost on that and i don't see any videos describing it.
So useful, thank you so much.
Thanks so much, your videos are amazing
Hello, first of all, thank you very much for the tutorial ❤
My question is, will we make any changes to the code for an in app puchase with real money (example $10)? Or what should we do?
If you make an iAP tutorial video for iOS, you would do me a great favor🙏
Hi! This is a great content and easy to follow as well. I had a problem though when installing the app for internal testing. It is my first app so I thought it would take a few hours for the app to install in my device remotely. How long will it take typically for first apps?
It's usually instant for internal testing.. try getting a copy able link to share it and use that to go to your store location so you can install it.
It was a great tutorial. Thank You. What's next tutorial going to be about?
I plan on doing a basics with Godot tutorial on CSG meshes next.
I have a Trello board with all my ideas/future videos I should advertise it more...
trello.com/b/cJWPaVyV/godot-tutorials
I think you can comment on it as well if you have idea or want a specific one.
@@FinePointCGI Ok, the list seems healthy and the tutorials-to-come exciting. Can't wait for all of them to come online. I still have some suggestions though. One of those suggestions could be a part 2 of this tutorial:
1. Download (buy) a theme (or skin in game) and apply it to change the entire look of game menu and set it as default such that the applied skin is loaded automatically on starting the game everytime.
2. Godot-Android code to get a list of all image/sound files on the device. I had a project that neede this but deleted it because I could not achieve this after a month's hard trying and did not want to waste any more time on that. I wanted to implement this feature inside the game to allow local modding like changing the texture and background music. I somehow wrote the code to mod, but the images and sound files had the be in a specific folder only; which is not desirable for everyone. Therefore, it would be great if you make a tutorial on this one; I would be much grateful to you.
Both these tutorials will be great not only in your catalogue, but also for serious godot users like me.
Thank you once again.
@@ajdhgsldhdgwielbw736 I have added them to my list of things to look at. Number 2 will be complicated because android sandboxes everything I think you need a storage permission to do it.. so it'll be interesting to look at that's for sure!
@@FinePointCGI Wow, Ok, Thank you. Would love to see that happening!
@@FinePointCGI Ugh. This makes it both better and worse. Great ideas - I just want to watch them all now ;)
hi! Thank you so much for this amazing tutorial! I just want to ask if how about for subscriptions? How can I purchase subscriptions and query its details? thank youuu
Can you make a video on IOS inapp-purchase payment instructions, pls
Thank you very much for this tutorial. Unfortunately it does not work anymore.
I have inserted a "print ("TEST")" line after the "If Engine.has_singleton("GodotGooglePlayBilling"):"
And "TEST" never gets printed. What does it mean? That the plugin cannot be found?
If I click the Buy Button I get the following Error: "Invalid call. Nonexistent function 'purchase' in base 'Nil'."
I am using Godot 3.5.
I searched the web, and there are other people with the same problem.
Do you have any idea how to solve this problem @FinePointCGI ?
Or someone else?
Having no option for IAP in Godot is a HUGE bummer.
Yes that means that your plugin is not being loaded. Some things to check is the plugin version it's possible that might be causing a problem or it's possible that you may not have it enabled in the export settings
@@FinePointCGI The problem was that I was trying to test in on desktop (via the editor), and this does not work. When I was testing it on my smartphone, it worked. Which makes sense when I think about it. Thank you
Ah that makes good sense! Yeah you have to run all Android plugins on the device
Another great tutorial!
Maybe a stupid question but can you test IAP`s with a test device as you can test Admob ads?
Also for a future tutorial Using ADB LOGCAT for dubugging would be useful.
Hey so you have to download it from the play store for it to have a link to the IAP api. You can test it with your test device but you need to send it to that device though google play. I show it some where around 26:18 is where I start the deployment process and 41:41 is where I download it to my test device.
@@FinePointCGI Thanks. I usually watch your video from to start to finish. Then have to go back for the detail. Thanks again.
@@richardlongshaw8079 No problem if you need anything hit me up!
@@FinePointCGI Maybe a short video on using adb logcat?
You use it a lot in your tutorials and it is obviously an invaluable tool but it's a bit confusing how to use it properly.
thank you for sharing your knowledge with us,
the plugin is only working on godot 3.2.2 ?
No this plugin should work with Godot 3.4 are you running into any issues?
@@FinePointCGI thank you for responding, I haven't started yet, I'll let you know if something goes wrong
Hey friend, I wanted to clear up a doubt with you here, I know that to publish a game on the Google Play Store we must pay a fee of 25 dollars, my doubt is about this fee, like, if I pay this fee of 25 dollars I can i publish as many games as i want? Or do I have to pay this fee every time I publish a game?
It is a one-time developer charge you can publish as many apps as you want.
@@FinePointCGI OK, thanks :)
@@FinePointCGI oops hm, I wanted to take another doubt with you, first is about this "token" is it this mini panel that the Play Store displays when we are going to make a purchase in games? And the other question is about the money, where does it go? Like, does the agent register a bank account on Google Play services or does it go to the developer's account and from there have a way to transfer it to a bank account so that we can then carry out the "withdrawal"?
Hello, I have a question:
I thought that the "connected" signal should only get fired if we establish a connection to the Google API.
I am using the signals from the official Godot docs (they differ slightly from the ones you are using in the video)
-> payment.connect("connected", self, "_on_connected")
Then I am using:
func _on_connected():
print ("connection successful")
The problem: Even if my smartphone does not have an internet connection, the connected signal gets fired and the print command gets executed.
What could be the reason for this? I do not fire the signal anywhere by myself. ChatGPT said that it might be that the signal gets fired when the GooglePlayBilling module gets initialized, regardless of the connection status. But how am I supposed to check if the connection to Google was successful or not then?
I would appreciate any help very much!
*edit*
On the other side, the "_on_sku_details_query_completed" signal gets never fired.
Will this work on 3.5.1? I saw some comments below about replacing a line for 3.4 and I'm also curious about what might be different for making an aab versus apk
I'm in the process of debugging the latest plugin pre release (2.0) of Google Play Billing from the same person who created the one in this video with Godot 3.5.2. Note that NativeLib does not show anything listed in the new version of Godot, but any plugins that were already there appear to still work in the export to apk or aab.
However, my purchases are no longer using the item that is bought from the store, but still charging the customer. I'm trying yield(get_tree().create_timer(3), "timeout") in some new locations to see if I can get it to work as this helped in the version in this video a year ago as I had to have it after the billing.querySkuDetails code.
I'm now stuck with a message when I try to purchase a consumable item from the store where nothing was consumed saying that I already own the item. So I'll have to temporarily adjust my code to not purchase the item and consume it.
In the meantime, I had to turn off all of my stores purchase items so that I do not rip off any customers. This is frustrating and I hope I can either fix it myself or find an updated plugin from timoschwarzer.
If you can help us FinePointCGI, please do as you are the sharpest at these concepts that I have found. Thank you!
@@radiandrzgaming8708 interesting...I was tempted to mess with the gdap and aar files on the 2.0 pre release but your experience is making me nervous to. at the same time, what do I really have to lose?
@@ryancraven6720 I have since debugged and got this all working. The item that couldn't be found in the store was due to my scene not using the correct script file. It was using an older one with a slightly different extension. Strange. I clicked detach script and then reattached the script I was working on and it solved it. I was at that for a long time before I noticed it.
I have the latest version of Google Play Billing and that is working just fine. There is some slightly different changes in code. I forget right off where I found that. I may have the link. I have trouble pasting things on here for some reason.
Also, I have since got GDNative plugins to show up with a slight modification that I also found. I'll take a look for the links.
@@radiandrzgaming8708 I'm not at all familiar with GDNative plugins? Why do I need it and what exactly does it do? Can't I just replace my aar and gdip files with the link you provided to TimoSchwarzer's RC candidate?
Also I added you on reddit, should be easier to communicate directly on there
Hello, it is easier to debug if you run a cmd, go to the folder where the adb.exe is located and run the command "adb logcat -s godot"
the only thing i didn't really see in this tutorial is the reward for the sku purchase. something like in the ad tutorial that counted when it was purchased
for items like a remove ad purchase, would you just not consume the item?
Why didnt you get charged for the purchase? That's what i really wanna get set up
Thank you! This was an awesome tutorial! I am having problems with getting the "Test Card" to work, however. When I test the in-app purchasing, it pulls up the Google Play screen for purchasing the testsku, but it wants me to actually purchase it with either google play credit or a card. I've done a lot of searching, but I can't really find a solution to this. I added my testing account to internal testing and License testing but it still requires me to make a real purchase. Am I missing something?
I haven't ran into this is possible something with the add-on has changed
@@FinePointCGI After 2 days of trial and error, the test card just started working all of a sudden. My only guess is that either reinstalling the add-on fixed it or Google's servers had to take a few days to let me use the test card.
Nice! I'm glad it worked for you I'm sorry for all the trouble.
@@FinePointCGI It's all good, it wasn't your fault that happened lol. Thank you once again for creating this tutorial!! Also, saw you had a "Brawlhalla"-like game on your list of tutorials to-do. Look forward to seeing that whenever you get around to it =)
If you run a playtest on windows... will the GodotGooglePlayBilling be null?
saddlyy !! "We've detected this app uses an unsupported version of Play billing. Please upgrade to Billing Library version 4 or newer to publish this app." this billing plugin need update
They do have a rc candadate out for it but yes its last updated in 2020 sadly.
Hey thanks for the vid. I'm still having problems making the iaps work since I'm using a slightly different approach. Could I write you somewhere so you can have a look?
You can email me, im not sure how much help ill be. finepointcgi@gmail.com
How can the item be consumed as soon as it is purchased? without the need for a second button.
You can just call the second function directly once you get your acknowledgement
@@FinePointCGI Many thanks for the reply! I have another question: how do I get the item prices? they come through "details".
@@Daniel-su8yr They should just come back with your return object from the google server when you query the IAP item by id.
@@FinePointCGI When you say to call the second function once you get the acknowledgement, do you mean having "billing.consumePurchase(itemToken)" after
"if items.size() > 0:
itemToken = items[items.size() - 1].purchase_token"?
I'm trying to consume the item once it's been purchase but it doesn't seem to work since I get a "You Already Own This Item" error when I try to purchase a second one. This isn't an issue when I have two separate buttons. Not sure if it's a different issue that I'm not aware of, but I can't seem to combine them together.
Does this work for a non Android game?, im working on a game and I want to check if this works for Windows desktop games
No you can't host google play stuff on windows to do in app purchases for windows you would need to host it yourself, use something like steam/windows store or one of my favorite frameworks Nakama. heroiclabs.com/docs/in-app-purchase-validation/
@@FinePointCGI thank u so much :3
🔥🔥🔥🍻🍻💯
Hello thank you for tutorial, i have a question, currently testing on godot 3.5 and saw that querySkuDetails(["testsku"], "inapp") returns null, do you have any idea about it?, currently querySkyDetails returns nothing, i already defined testsku item on the google console
Are you getting any errors when using ADB logcat?
@@FinePointCGI thanx for help, looks like i just needed time for the querying. Currently everything works fine.
Hey I'm glad!
Are planning on making a Godot 4 version 🤔
Once godot 4 is released the plugin can be updated and I'll update the video
@@FinePointCGI Thanks! I have been looking forward to switching to Godot 4, but since I make mobile games the thing keeping me from doing so are the admob & Google play plug-ins
Yeah Godot 4 has thrown a lot of wrenches into the mix ... I've had to redo a few tutorials and update stuff because they keep changing stuff lol
@@FinePointCGI have you redone this for godot 4 yet?
Sir, I have a doubt about how can I call the local server (call an API from my local pc) in Godot, I did a simple python server and it works well in Godot but when I move to the device nothing happens, I tick the internet and network permissions in the editor.
I have a few questions are you trying to host IAP yourself? If you are it wont work you must use google play to handle your IAP for Android.
Hey is there any way to make In Game Purchase for PC? I don't even find a tutorial for that even for Unity
Yes its totally doable. The problem is you would need to use microsoft or steam to host your IAP items. That or you would need to build your own api to handle it.
for steam you could use
github.com/Gramps/GodotSteam
It seems to support DLC.
I have added it to my trello board.
trello.com/b/cJWPaVyV/godot-tutorials
play store asks for google billing library V4, the github repository is still under development.
I'm currently in the same situation with Google now requiring Google billing version 4 for any app updates. Also, I cannot get NativeLib to work properly with Godot v3.5.2 and I need this version in order to run Android 31 as Google requires it for new uploads and updates.
@@radiandrzgaming8708 tried uploading a version tonight and it was asking for billing version 5 now...
Hi, I'm testing.
It seems that it is not necessary to upload the application to google play store to test the iap plugin.
I export in apk and install it on my smartphone avoiding the step of uploading to google play store.
Am I wrong it is necessary to upload the file to play store for some reason?
Yes you can install without uploading to the app store however the link to your app and Google's servers for your IAP may not work. In my testing I was unable to purchase anything without uploading it .
@@FinePointCGI Hello, I have not been able to corroborate what you say because google did not allow me to buy at any time from my developer account, not even by uploading the ".aab" file to the play store.
What I have observed is that it is not possible to buy from the developer account, that is, if I enter my developer address in the testers list and I try to buy from that account, Google does not allow it and tells me that "the product does not is it availabe".
Then, I enter my alternative email in the tester list, then from this account I can buy but the payment is made! I don't want to pay because I'm only doing tests, how did you manage to buy and not pay to test the purchases? .
You may need to post what you did again because RUclips ate your comment
@@FinePointCGI I can't find the link I posted in the comment. I have a problem with the translations that I have to do, I am from Spain.
Do you have a register of that message? Can you put the link to the official doc in the video description? this will inform users on how to create a test payment card.
@@FinePointCGI I wanted to put an image so that the option can be seen but google does not allow it either :(
wanna redo this for ios and android on godot 4?
No you will I'm sorry you got buried down in my inbox.. I'll try to get one out on this but last I knew it was going to need to get updated and changed so I was waiting on that mostly.
@@FinePointCGI awesome , cuz your video kicks butt man! but somethin for ios/android in godot 4 is what we all need from you!
@@FinePointCGI Hi, any updates for Godot 4? I "HAVE TO" implement IAP for my game ASAP, my users are getting angry for that ads :)
Is there something like that available for pc
update please¡
Understood +-, but how to add Coins in the game, after the payment? (If the consumer buys Coins)
I cant beleive you use such a short password for your Google account. My password is like 20 characters. Your google account is practically your life , must be highly protected
I like to live dangerously! Actually that's a account built for this it's not my main one!
try to do a tutorial on how to make a skin selector in godot for BEGGINERS
I will add that to my list! It is a big list at this point so it may take a little bit.
trello.com/b/cJWPaVyV/godot-tutorials
@@FinePointCGI okay, I'm waiting.
is it going to take a month or something like that?
@@AbdouMadjidi_. It really depends on my work schedule but I will get to it. I know its been requested by a few people at this point so itll be done sooner then later.
Furthe4r more we ruin gaming world with in app buyings : /
Good tutorial tho
For those who watch this
On 3.3.4 null is replaced with is_instance_valid()
Playstore only accept abb! and apk is no more
One important thing I was missing: developer.android.com/google/play/billing/security#verify - Never trust the data given by the Android app, because it can be manipulated. Always do a server to server check with that token. I know this would blowup your tutorial, but you should have mentioned it.
Hey thanks for the feedback, I didnt even know that this little article existed. I will probably need to do a follow on tutorial with some of these details. Thanks for the help!
I'm 6+ years native Android dev and had to implement it with server to server verification. That's why I know it.
Yeah that's kinda the freaking thing to me, I remember reading an article about a dev messing with google firebase database and haveing to pay a lot of money to them. Anyway @finepointCGiI, it would be great to make a tutorial on how to implement google fire database in a proper way.
never mind already found your tutorial :)
@@naruto3zo And I was just about to link them!