Selling In-App Products on Android: Implementing Google Play Billing V4

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 200

  • @antoniorafaelsantos4650
    @antoniorafaelsantos4650 Год назад +3

    Finally I've found a tutorial that is more than a Hello World. Many things that a dont know. Thank you my friend.

  • @researchlabtools6448
    @researchlabtools6448 3 года назад +1

    Community was beggin' you! Thanks a lot.

  • @loeyardinata1823
    @loeyardinata1823 3 года назад +21

    Can you make a video tutorial about how to implement Subscription with Play Billing V4?

    • @nikhar2407
      @nikhar2407 3 года назад +1

      yes please.
      @Codeible it's need of the hour. Please

    • @randomxd8693
      @randomxd8693 3 года назад

      200 likes required for video please everybody like

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад +1

      @codeible, please, we need the subscription purchase video tutorial

    • @chadisfeir3809
      @chadisfeir3809 3 года назад +2

      yess Pleaseeeee!!

    • @EduardoLynchAraya
      @EduardoLynchAraya 3 года назад +3

      @Codeible, please subscription purchase video tutorial.

  • @kostia7401
    @kostia7401 3 года назад +5

    Sir, you have great videos! Please make a video tutorial about creating subscribtion as soon as possible!

  • @lanreakintayo3443
    @lanreakintayo3443 3 года назад +10

    Thanks a lot for this man... Please, can u make a video on subscription and also, can the same code in the server be used to verify subscription purchase?

    • @Codeible
      @Codeible  3 года назад

      Hello, yes. However, for subscriptions, it requires additional steps to handle the purchases.

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад +4

      Bro! Please, when will you make a tutorial on subscription billing... We really need the video... No video has been comprehensive and efficient as the one you did for the in app purchase... We are hoping that you will release the subscription billing very soon

    • @erichalim
      @erichalim 2 года назад +2

      yup... i'm waiting for subscription purchases too... please

  • @chadisfeir3809
    @chadisfeir3809 3 года назад +3

    Hope we get the 200 likes!!!!
    🙏

  • @akshatoxy
    @akshatoxy 3 года назад +6

    Great tutorial just loved the way you explained everything. Can u please make a video for subscription too it will be a great help. Thank you ❤️❤️

  • @CountMoliere
    @CountMoliere 2 года назад +1

    Nothing is loading in my cloud storage when I purchase. Why is this?

  • @TheTugBoat
    @TheTugBoat 3 года назад +2

    Excellent tutorial. Upgraded existing subscription code that I had become unfamiliar with overtime to Billing Lib 4 quite easily with your video. A lot of nasty legacy code to the bin..!

  • @ChefZubairKitchenUrdu
    @ChefZubairKitchenUrdu 3 года назад +2

    this is really great tutorial for Inapp billing Lib v4

  • @mihalsidorczyk5131
    @mihalsidorczyk5131 2 года назад +3

    Very good and detailed tutorial. I have one comment though.
    From what you have accomplished here it is clearly visible that Firebase service, which is paid service in BLAZE plan after all, is not needed at all. Its whole functionality is just to log the purchases. Probably Firebase (or other external backend server) is needed when handling the subscriptions, but this type of purchase you haven't dealt with in this video. Am I correct?
    Although it is very good to learn how to work with the backend server anyway 🙂

  • @jorji3p577
    @jorji3p577 3 года назад +4

    As i understand, we need to give item to user instead of toast message. Question is... If I have 2+ different products, how can I figure out which product the user bought?

    • @Codeible
      @Codeible  3 года назад +5

      Hello, all you have to do is to loop through all the product ids that was processed in the verifyPurchase() method:
      AcknowledgePurchaseParams acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build();
      billingClient.acknowledgePurchase(
      acknowledgePurchaseParams,
      new AcknowledgePurchaseResponseListener() {
      @Override
      public void onAcknowledgePurchaseResponse(@NonNull BillingResult billingResult) {
      if(billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
      for(String sku: purchase.getSkus()) {
      Log.e("MainAct", "Product ID" + sku);
      }
      }
      }
      }
      );

    • @jorji3p577
      @jorji3p577 3 года назад

      @@CodeibleThank you so much.

  • @ЕвгенийВорожбянов-г7б

    Please tell us how to migrate your code to the new version 5

  • @lyawileh.a8741
    @lyawileh.a8741 2 года назад

    Nice explanation with few words and more actions.

  • @mipelirroja
    @mipelirroja 2 года назад +1

    Thank you so much, clear explanation :D

  • @Pezcraft
    @Pezcraft 2 года назад

    Does this method detect refunded one-time purchases as not purchased?

  • @clipcraftvision
    @clipcraftvision 3 года назад +1

    I did it, but List return null. List is empty. Please help

  • @Rassy_
    @Rassy_ 3 года назад +1

    What if someone doesn't have a back-end server, they just have a simple app/game & want to integrate IAPs?

  • @TukkTukkz
    @TukkTukkz 2 года назад +4

    This tutorial helped me alot, thank you! Very well made. I´m new to programming so i have a question, i want to give my users coins via purchases. so i put the method to collect coins into the onPurchaseUpdated method (hope thats right). It works with one InApp Item, but if ill add another i dont know where to put in the collectable coins.. :/ i´ve put the second item into the getProductDetails method and made a new textView, Button and itemInfo for it (again, hope thats the correct way). how can i get different items for different purchases?

  • @selimozbay
    @selimozbay 2 года назад +1

    Thanks for turtorial. I do not wanna see "You already have this item" with out backend service. What can i do for that?

    • @Codeible
      @Codeible  2 года назад +1

      Hello, If the purchase was not acknowledged yet, you just have to wait 3 minutes and that message will go away.
      Or if you want to test purchasing an item multiple times, use consumeAsync() instead.

  • @shcreations-bd4757
    @shcreations-bd4757 3 года назад +1

    How could I remove ads for subscription and non-consumable for may App??
    Please make a tutorial

  • @harshalpudale7037
    @harshalpudale7037 3 года назад +1

    Very good explanation, subbed

  • @pickemparty
    @pickemparty 2 года назад

    Question, you are not utilizing the base64Key public key to sign your purchases? Isnt that required to ensure they are Prod transactions?

  • @nickadams2361
    @nickadams2361 2 года назад +1

    Very good

  • @GilayEdits
    @GilayEdits Год назад +1

    Hi great tutorial everything is very clear, thanks!, I am facing a problem that the products do not show on the activity, Did exactly the same as you did, I do not have any errors either, what can I do?

    • @Codeible
      @Codeible  Год назад

      Hi, thanks. What do you mean by activity?

  • @bradleyhillis8028
    @bradleyhillis8028 2 года назад +1

    Can you do a part two that uses a mysql server for verification? My goal (and I'm sure the same can be said for others) is max ROI, using firebase pay as you go can eat into that ROI. If a user owns their own server(s), then by using php scripts to communicate with the MySql database, that work can be done with owned resources and cut out third party services. Great video and easy to follow!

  • @joseabiliosanchez3109
    @joseabiliosanchez3109 3 года назад +3

    Excellent. One question, can this be used for subscriptions?

    • @Codeible
      @Codeible  3 года назад +9

      Thank you. This is mainly for In-App products. For subscriptions, it requires some modifications and additional steps.
      A video on that will be released soon.

    • @loeyardinata1823
      @loeyardinata1823 3 года назад

      @@Codeible I'm waiting for it

    • @hakanakkaya6564
      @hakanakkaya6564 3 года назад

      @@Codeible Hi, im waiting your video. Thanks for sharing.

    • @nikharsachdeva9600
      @nikharsachdeva9600 3 года назад

      @@Codeible I'm waiting for it. Please upload

    • @randomxd8693
      @randomxd8693 3 года назад

      @@nikharsachdeva9600 like the video

  • @jorji3p577
    @jorji3p577 3 года назад +1

    Sometimes my purchases can't be consumed... usualy when i make first purchase after cold starting app. Any idea? Logs says:
    W/BillingHelper: Couldn't find purchase lists, trying to find single data.
    W/BillingHelper: Received a bad purchase data.
    W/BillingHelper: Couldn't find single purchase data as well.

    • @jorji3p577
      @jorji3p577 3 года назад

      Im change function server to nearest to me, and increase timeup... Also make triple answer from server with short pause to be shure... Now... Loks like every purchase will consume... but i still think that this function far from perfect... (

  • @ManishGupta-v2n
    @ManishGupta-v2n Год назад

    Can we use AWS cloud in place of GCP in this RTDN integration. I never integrated aws before with google play billing system . To configure Google Cloud Pub/Sub we set up the project_id, subscriber, and the topic from the developer console in it. But I dont know how do I set up these parameters in AWS cloud function for RTDN integration

  • @heyy3028
    @heyy3028 2 года назад +1

    thank you for this tutorial, but i guess other tutorial is not including setup a firebase or backend.
    so I wonder about what is different between using firebase and not. can you help me? or am I confused?

    • @Codeible
      @Codeible  2 года назад +1

      Hello, you do not need to use Firebase.
      The purpose in this case is to verify the purchase and make sure the purchase is valid.

    • @heyy3028
      @heyy3028 2 года назад

      @@Codeible ok thank you so much, i hope you're happy

  • @positive.boom-mind
    @positive.boom-mind Год назад

    why it was automatically refunded within 3days.? is there any issues with Acknowledging?

  • @GameAndJokes
    @GameAndJokes 2 года назад

    Hey there thanks it worked and how can i verify that they have purchase a subscription at the start of the app

  • @chiranjeevshubham690
    @chiranjeevshubham690 Год назад

    Will it work fine without creating a Cloud Function Project ?

  • @noobdev4181
    @noobdev4181 2 года назад +1

    Great, thank you.

  • @izayoi9703
    @izayoi9703 2 года назад

    @Codeible hi, great video, I have a problem that checks are not displayed in firebase, could you upload the json code file somewhere?

  • @pickemparty
    @pickemparty 2 года назад

    Question, how do you verify if this transaction is a Production request vs lets say a "sandbox" request when testing?

  • @atickfaisal3740
    @atickfaisal3740 2 месяца назад

    Thanks!

  • @stanislavomelchenko5271
    @stanislavomelchenko5271 2 года назад

    Hi, I've two questions. 1: How to handle purchase state - PENDING?, 2: what is purchase state UNSPECIFIED_STATE? Thank you for tutorial.

  • @MieysoFelix
    @MieysoFelix 2 года назад +1

    Does that work in c++ too?

  • @ManishGupta-v2n
    @ManishGupta-v2n Год назад

    do we really need this RTDN service in google play billing integration

  • @mathixvw
    @mathixvw 3 года назад

    Thanks a lot for this video ! I just did not understand in what part of the process you handle the product to the user.
    For instance, if I offer a simple purchase to remove ads from the app, based on a user profile param (e.g. boolean isPremium = true), where do I set the "isPremium = true", and also how do I retrieve the item that got purchased that was made ?
    Thanks in advance :)

  • @randomxd8693
    @randomxd8693 3 года назад +1

    Sir , when will you upload the subscription video ?

    • @Codeible
      @Codeible  3 года назад +1

      Hello, next week.

  • @chadisfeir3809
    @chadisfeir3809 3 года назад +1

    When will be the tutorial about subscriptions?

  • @nganyong9904
    @nganyong9904 3 года назад +1

    i have a question! how do i consume a purchase that consists of consumable and non-consumable skus?

    • @Codeible
      @Codeible  3 года назад +2

      Hello, if your app constantly have new products, their info should be stored in a database. Then you will retrieve each product info from the data base.
      When the user purchase an item, you will compare the purchased product with all the other products and determine whether they are consumable or non-consumable.
      If your app products do not change often and do not want to use a database, then you can put all your product information in the app and do the same.

  • @0.250k
    @0.250k Год назад

    teaches how to make this in-app play story but in unreal engine I want to create a game with purchases but in unreal for play story

  • @chisacsolutions2379
    @chisacsolutions2379 Год назад

    How can I fix this error in functions logs>>> : Value for argument in documentPath must point to a document, but was "purchases/$(purchasesInfo/purchasesToken)" . Your path does not contain an even number of components.

    • @Codeible
      @Codeible  Год назад +2

      Make sure your values are inside the
      ` ` and not " "
      The ` is the button next to the 1 key.
      You have a slash instead of a period.
      Here is the correct version.
      `purchases/$(purchasesInfo.purchasesToken)`
      The `` are template strings in JavaScript. Read more about it here:
      www.tektutorialshub.com/javascript/tagged-templates-in-javascript/#:~:text=We%20can%20create%20a%20Template%20String%20in%20JavaScript,sign%20and%20curly%20braces%20%28%20%24%20%7Bexpression%7D%20%29.
      Essentially, it is a way to put variables inside a string using ` `

    • @chisacsolutions2379
      @chisacsolutions2379 Год назад +1

      UPDATE: You won't believe it! The one thing that was causing the error is me using ' instead of ` . Code is now running fine. I did one thing after that, close my laptop go for a beer! This is the best tutorial on this subject. Thanks again..

  • @SubhajitMondal51
    @SubhajitMondal51 2 года назад +1

    Error: purchase not acknowledeged.refunded all time.

    • @Codeible
      @Codeible  2 года назад

      Hello, you need to acknowledge the purchase by calling AcknowledgePurchase or ConsumeAsync()

  • @taruns6044
    @taruns6044 2 года назад

    Nice tutorial, can you also made similar video for subscription purchase and verify.

  • @lanreakintayo3443
    @lanreakintayo3443 3 года назад +1

    Volley is sending a request twice.. Please, how will I make it send a request only once

    • @Codeible
      @Codeible  3 года назад

      Hello, it is sending the request twice because when the purchase flow UI is closed, it will go back to the app and onResume() will be called which is intended. This will not affect the outcome since it checks to see if the returned JSON object isValid property first before making the acknowledgement.

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      Thank you man. I hope it doesn't matter as a Purchase is getting duplicated in the firestore database

    • @Codeible
      @Codeible  3 года назад +1

      @@lanreakintayo3443 Nope, it does not matter

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      Thanks man, I really appreciate it.

  • @aliasstudio4077
    @aliasstudio4077 3 года назад +1

    Sir, I have a issue, how come the response all get back "isValid":false 33:46 (so can not check the acknowledge.. things)

    • @Codeible
      @Codeible  3 года назад

      Hello, if you are getting false every time, you need to check your code.

    • @VictorAyalaSpooner
      @VictorAyalaSpooner 3 года назад +1

      same thing with me, did you solve it? Because I have recjeck the code I dont see why always retur false in the isValid field.

    • @jorji3p577
      @jorji3p577 3 года назад

      Find the bug - you must use ` instead '

    • @ursgeissbuhler6626
      @ursgeissbuhler6626 3 года назад

      @@VictorAyalaSpooner
      there is a bug, just compare the order:
      purchaseToken: req.query.purchaseToken,
      orderId: req.query.orderId,
      purchaseTime: req.query.purchaseTime,
      isValid: false
      vs:
      "purchaseToken=" + purchase.getPurchaseToken() + "&" +
      "purchaseTime=" + purchase.getPurchaseTime() + "&" +
      "orderId=" + purchase.getOrderId() ;
      it will work, if you do it like that:
      "purchaseToken=" + purchase.getPurchaseToken() + "&" +
      "orderId=" + purchase.getOrderId() + "&" +
      "purchaseTime=" + purchase.getPurchaseTime();

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      I'm also facing the same problem here. Have u been able to solve it?

  • @alokeshnath4269
    @alokeshnath4269 Год назад

    Please help:-
    how to solve:
    BillingClient: Error consuming purchase with token. Response code: 6 and
    BillingClient: Error consuming purchase!
    I am really confuse right now....

    • @Codeible
      @Codeible  Год назад

      Is that error occurring when you purchase or when you are displaying the item?

  • @alishahbazbal
    @alishahbazbal 2 года назад

    i am getting "Service connection is disconnected" -1 error code. Please help

  • @miguelgomez5529
    @miguelgomez5529 2 года назад

    Hi. Great tutorial. My question is that the database rules allow any user to delete or overwrite the database.
    Any ideas or help on how to configure the rules to prevent this from happening without affecting the validation of the purchase tokens?
    Thanks in advance.

    • @Codeible
      @Codeible  2 года назад

      Hello, it depends if you are using authentication with Firebase as well.
      You will add the user id to the purchaseToken JSON.
      This will be the configuration:
      allow update: if request.resource.data.uid == request.auth.uid;

    • @miguelgomez5529
      @miguelgomez5529 2 года назад

      @@Codeible Thanks for the quick reply. The application is very simple, and to use it does not require user authentication. Maybe is there any other way?

    • @Codeible
      @Codeible  2 года назад

      @@miguelgomez5529 If data is only being uploaded through Cloud Functions, you can set read and write to false.
      This will prevent anyone except Cloud Functions to modify.

    • @miguelgomez5529
      @miguelgomez5529 2 года назад +2

      @@Codeible Thanks again. I will give a try to your suggestion and happy new year.

  • @GilayEdits
    @GilayEdits Год назад

    For some reason it not letting me reply to your comment :\ The problem is that the textView and the itemName is not changing and I have no indication whats wrong :(

    • @GilayEdits
      @GilayEdits Год назад +1

      Still on it, if you can throw me a hint 🙌🏻

    • @Codeible
      @Codeible  Год назад

      Hmm pretty hard to tell since I do not see the code, maybe create a new thread and loop to reset the items to see if it updates. This way, it can verify that you are getting the items.

  • @extreme_rota
    @extreme_rota 2 года назад

    billingflowparam not launch :(
    video min: 17:37

  • @shlomibenshabat7430
    @shlomibenshabat7430 2 года назад

    Hi, there have been several updates since you made this video, and some functions have been deprecated, but when I call billingClient.queryProductDetailsAsync(...), I get this error "Response Code: SERVICE_UNAVAILABLE, Debug Message: An internal error occurred." . Can't find any solution🙏

  • @jeremyheng8573
    @jeremyheng8573 2 года назад

    very helpful tutorial! How we handle subscription if user cancel it?

  • @randomxd8693
    @randomxd8693 3 года назад +5

    quite successful ))))
    Upload an video on Subscription please

  • @loeyardinata1823
    @loeyardinata1823 3 года назад

    hello, may i ask a question? Why can't my product/order be consumed? I have tried using acknowledge & consume code, but it doesn't work. after making a purchase, and want to buy the same product again, the message always appears that I already own this item.

    • @Codeible
      @Codeible  3 года назад

      Hello, if the product was acknowledged using the acknowledgePurchase() method, it cannot be unlocked.

    • @VictorAyalaSpooner
      @VictorAyalaSpooner 3 года назад +1

      @@Codeible I do have the same result, and the reason is that the firebase cloud function always retun isValid false...I have recheck the code and I can not find why...

    • @ursgeissbuhler6626
      @ursgeissbuhler6626 3 года назад

      @@VictorAyalaSpooner
      there is a bug, just compare the order:
      purchaseToken: req.query.purchaseToken,
      orderId: req.query.orderId,
      purchaseTime: req.query.purchaseTime,
      isValid: false
      vs:
      "purchaseToken=" + purchase.getPurchaseToken() + "&" +
      "purchaseTime=" + purchase.getPurchaseTime() + "&" +
      "orderId=" + purchase.getOrderId() ;
      it will work, if you do it like that:
      "purchaseToken=" + purchase.getPurchaseToken() + "&" +
      "orderId=" + purchase.getOrderId() + "&" +
      "purchaseTime=" + purchase.getPurchaseTime();

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      @Victor Ayala Spooner, I'm also facing the problem. Have u been able to resolve the issue?

  • @adrianlealcaldera2405
    @adrianlealcaldera2405 2 года назад

    hey man, could you plase make a tutorial about subscriptions? I´ll pay you

  • @lanreakintayo3443
    @lanreakintayo3443 3 года назад

    @codeible, the response from the server is giving me False, so, I'm not able to acknowledge the purchase. Also, in the firestore database, it's only one item I found there after storing more than one item

    • @Codeible
      @Codeible  3 года назад +1

      Hello, can you put your Cloud Functions code here?

    • @larrycode9551
      @larrycode9551 3 года назад

      @@Codeible RUclips is hiding my comment.. Is there another way I can send the code to you?

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      @Codeible, RUclips has been deleting the code. I don't know if there is another means for me to send the code to you

  • @bartomiejsiewierski9712
    @bartomiejsiewierski9712 3 года назад

    Hey, I have a question where can we add the logic that after a one-time purchase it is to unlock, for example, a button?

    • @Codeible
      @Codeible  3 года назад

      If I am understanding you correctly, you are talking about consuming it so you can purchase the item again?
      If so, you put it after your purchases was verified.

    • @bartomiejsiewierski9712
      @bartomiejsiewierski9712 3 года назад

      @@Codeible The point is for the user to buy once and have it unlocked forever.

    • @jorji3p577
      @jorji3p577 3 года назад

      ​@@bartomiejsiewierski9712 i think u must store you purchase list somewhere... in sqlite database may be... or you can use shared prefferences. Or you ask about how to restore purchase... after reinstal programm? i think you must sincronise purchase on you server for this feature...

    • @bartomiejsiewierski9712
      @bartomiejsiewierski9712 3 года назад +1

      @@jorji3p577
      From what I understand, Cloud Firestore should be responsible for it only the problem is that after buying nothing in Cloud Firestore and looking at Functions -> Logs it displays "Function execution took 335 ms, finished with status: 'crash' "
      Maybe someone has a think how to fix it?

    • @bartomiejsiewierski9712
      @bartomiejsiewierski9712 3 года назад

      @@Codeible I fixed writing JSON object but still have problem unlocking button. Pleas ,could you tell me where to put the logic after the purchase?

  • @tokosuburselalu8689
    @tokosuburselalu8689 3 года назад

    Thanks for the video sir!
    I have a problem, I created 4 app dummy, they have exactly the same code (literally I copy-paste). But 2 can launch the google play purchase, while the others 2 cannot.
    Please, do you know how to solve this issue?

    • @Codeible
      @Codeible  3 года назад

      Did you import Google Play Billing in all 4?

    • @tokosuburselalu8689
      @tokosuburselalu8689 3 года назад

      @@Codeible Yeah i did. I found the issue, my android billing always return 0 skuDetails. I already added skuList in android studio & product in google play console.

    • @Codeible
      @Codeible  3 года назад

      @@tokosuburselalu8689 Ok

  • @raulgh135
    @raulgh135 3 года назад

    hello, thank you for this tutorial, how about subscriptions, how can we know if a user has been subscribed "lets say for a premium account" or not without a cloud functions or an external servers???? in in-app billing V3 ( Boolean b = bp.getSubscriptionListingDetails("productId").purchaseInfo )

  • @aliasstudio4077
    @aliasstudio4077 3 года назад

    It work, but there some problem, when user re-install the app, they have to buy again

    • @Codeible
      @Codeible  3 года назад +3

      It that happens in test mode.

  • @manavpatni
    @manavpatni Год назад

    Make a video on same topic but with multiple items and by using google billing v5+

  • @ChillHouseMusic
    @ChillHouseMusic 3 года назад

    Hey I need help. I have done everything you did until 32:38. I opened cloud firestore and couldn't find the transaction. Can you help me ?

    • @Codeible
      @Codeible  3 года назад +1

      Hello, did you change the Firestore rules so you can add data to Firestore? 31:52

    • @ChillHouseMusic
      @ChillHouseMusic 3 года назад

      @@Codeible yes I did that

    • @ChillHouseMusic
      @ChillHouseMusic 3 года назад

      @@Codeible i purchase the product and go to firestore database and under data there is no purchases and the purchase receipt like in the video why is that ? Help ?

    • @Codeible
      @Codeible  3 года назад

      @@ChillHouseMusic Hello, to debug your code, manually create the URL with your Cloud Functions request URL and then try it on the browser.
      Example: ?purchaseToken=123&orderId=123&purchaseTime=0
      You can try using this URL:
      us-central1-playbillingtutorial.cloudfunctions.net/verifyPurchases?purchaseToken=123&orderId=123&purchaseTime=0
      It will give you a JSON object back.
      Let me know the update.

    • @chisacsolutions2379
      @chisacsolutions2379 Год назад

      @@Codeible I got "Error: could not handle the request"

  • @lanreakintayo3443
    @lanreakintayo3443 3 года назад

    "The item you requested is not available for purchase"
    Please, how am I going to solve this issue? I've checked stackoverflow and I've followed all the steps needed. Yet, It is still bringing out this same error message

    • @Codeible
      @Codeible  3 года назад +1

      Hello,
      1) Add the account you are using for the test in the Google Play Console
      2) Uninstall the app on the device
      3) Go to the app settings on the phone and clear all the data/cache for the Google Play app
      4) Go to the Google Play App and log in with the testing account you added on the Google Play Console
      5) Run the app again
      Extra: Make sure the device has the Google Play app.

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      I've done what you said I should do, but the error persists

    • @Codeible
      @Codeible  3 года назад

      ​@@lanreakintayo3443​Did it work before? and then this issue occur?

    • @lanreakintayo3443
      @lanreakintayo3443 3 года назад

      It didn't work at all.. But the products were able to load from the google play console

    • @Codeible
      @Codeible  3 года назад

      @@lanreakintayo3443 Ok.
      Are you using the emulators? It happens sometimes when you are using the emulators - simple fix should just be emptying the memory and cache from the Google Play App.
      Try on a phone first to see if it is working properly. Then:
      1) Rebuild the project with a different version code and upload a new release.
      2) Repeat the steps from earlier, but this time, run the new version first then uninstall it manually on the emulator.

  • @adagabranca
    @adagabranca 2 года назад

    what a great tutorial, thanks for the info :D

  • @Tutorialwork
    @Tutorialwork 2 года назад +1

    You are not correctly verifying the in-app purchase. You should call the Google API to check if the purchase token is valid. When you not check this, I can send random tokens to your backend, and it responds that the purchase is valid.

    • @TuneTown246
      @TuneTown246 2 года назад

      ya.. I was also thinking about that.....

  • @khalilahmad2659
    @khalilahmad2659 2 года назад +1

    🧡🧡🧡🧡🧡

  • @shahmirulhassan1764
    @shahmirulhassan1764 3 года назад +3

    Please Upload an video on Subscription... we are waiting...💖💖💖💖💖💖💖💖💖💖💖💖💖💖

  • @akashdeepkashyap9806
    @akashdeepkashyap9806 Год назад

    Can we use AWS cloud instead of firebase

    • @Codeible
      @Codeible  Год назад

      Yes

    • @akashdeepkashyap9806
      @akashdeepkashyap9806 Год назад

      @@Codeible could you please eloborate how do we integrate aws cloud function for RTDN with google play billing.

    • @Codeible
      @Codeible  Год назад

      @@akashdeepkashyap9806 The concept is the same as Firebase, you'll need to use AWS Lambda + API Gateway for the API logic and maybe AWS RDS for data storing.
      1. Create AWS Lambda functions that accept incoming data and store it in a database like RDS
      2. Create API using API Gateway
      3. When the API is called, it'll trigger the Lambda and then everything is similar to Firebase.

    • @akashdeepkashyap9806
      @akashdeepkashyap9806 Год назад

      @@Codeible As In FireBase Integration we setup our application in it. Now my ques is how this API gateway's API will be triggered if we go with your API-gateway & lambda function approach .

    • @Codeible
      @Codeible  Год назад

      @@akashdeepkashyap9806 The same way as in the video.
      Once you have the API, you call it.

  • @Rohan_is_discovering
    @Rohan_is_discovering Год назад

    Is it good for google play billing v5?
    please help

    • @Codeible
      @Codeible  Год назад +1

      The concept is similar with minor adjustments

    • @Rohan_is_discovering
      @Rohan_is_discovering Год назад

      @@Codeible can you tell me the changes please...

    • @Codeible
      @Codeible  Год назад +1

      @@Rohan_is_discovering Sure, this post gives all the code changes.
      developer.android.com/google/play/billing/migrate-gpblv5

  • @winicruz1450
    @winicruz1450 2 года назад

    does not save data in firestore

  • @vladimirvulchev9427
    @vladimirvulchev9427 2 года назад

    How much Google charges for InApp purchases?

    • @Codeible
      @Codeible  2 года назад

      As of January 1, 2022, that service fee is equivalent to:
      For developers who are enrolled in the 15% service fee tier, the service fee is:
      15% for the first $1M (USD) of earnings each year,
      30% for earnings in excess of $1M (USD) each year.
      For developers who are not enrolled in the 15% service fee tier, the service fee is 30%.
      For automatically renewing subscription products purchased by subscribers, the service fee is 15%.
      support.google.com/googleplay/android-developer/answer/112622?hl=en

  • @ЕвгенийВорожбянов-г7б

    Good afternoon.
    Tell me why all payments are returned after three days

    • @Codeible
      @Codeible  3 года назад +1

      Hello, payments may be returned after 3 days if you have not acknowledged the payments.

    • @ЕвгенийВорожбянов-г7б
      @ЕвгенийВорожбянов-г7б 3 года назад

      @@Codeible Right. Question. In the video, the payment confirmation code was described?

    • @Codeible
      @Codeible  3 года назад

      @@ЕвгенийВорожбянов-г7б Yes,

    • @ЕвгенийВорожбянов-г7б
      @ЕвгенийВорожбянов-г7б 3 года назад

      @@Codeible As I understand it, what you wrote in onResume is payment verification

    • @Codeible
      @Codeible  3 года назад

      @@ЕвгенийВорожбянов-г7б You need to do it in the onPurchasesUpdate callback

  • @randomxd8693
    @randomxd8693 3 года назад +1

    Video reach is 200 like

  • @AmitSingh-fb9ou
    @AmitSingh-fb9ou 3 года назад

    Can you provide source file of this please

    • @Codeible
      @Codeible  3 года назад

      Hello, you can download the project here: codeible.com/coursefiles/googleplayinapp

  • @dogukangulu4650
    @dogukangulu4650 3 года назад

    can you please create a subscription?

  • @renatokuiava1254
    @renatokuiava1254 3 года назад

    Pleaseee, make the subs video

  • @CountMoliere
    @CountMoliere 2 года назад +1

    doesnt work at all

  • @hamuelagulto796
    @hamuelagulto796 2 года назад

    Yuck, Java

  • @TuneTown246
    @TuneTown246 2 года назад

    I wonder if keep acknowledge code in client side. it possible that someone could prevent acknowledgePurchase() ( reverse engineering ) they could easily get refund and the server considers them as a legit purchase.

  • @chadisfeir3809
    @chadisfeir3809 2 года назад +1

    why the toast message not show in onAcknowledgePurchaseResponse ? thank you

    • @Codeible
      @Codeible  2 года назад

      Oh, that is because the toast is overridden by the purchase flow. You can use Log to display message in console.

    • @chadisfeir3809
      @chadisfeir3809 2 года назад

      @@Codeible thank you !