Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Slixton's avatar
Slixton
Start Member
2 years ago
Solved

Test User IAP Checkout Flow Stopped Working

We've run into an issue when testing our IAP purchase flow.  Up until this week, when we'd click on an In-App purchase (durable level addon), it would open the Meta App Lap Purchase window, where it would give a price and ask to purchase or cancel, then ask for PIN.  This was great for testing functionality.

Now, when we click on the IAP purchase, the Purchase flow just automatically succeeds and the level gets purchased without prompting with the Purchase Flow window (no confirm purchase, no pin).  This happens even after removing the Test Users IAP entitlements.

If we turn off the "Inherit organizations entitlements", then the purchase flow just fails with the test user - doesn't even pop up the window.

Has anyone else noticed a change in the IAP Checkout flow functionality starting this week?   It would be nice to test the checkout flow with our test users before releasing our updates.

  • Hey hey, we just ran into this problem as well. Got in contact w/ an oculus dev, they confirmed that it should only be happening for org members and test users. Exact response was: "Confirmed with the team that this is an intended feature to help developers test their IAPs and was recently re-enabled. Members of the organization and test users are granted this special price. If you want to end-to-end test your new IAP flow, I recommend uploading the build to a release channel and add a non-member to that channel. They should be able to test the full flow. We are also looking into adding into ways of making it more clear in the checkout process that this the test pricing."



15 Replies

  • SxKx's avatar
    SxKx
    Expert Protege

    On my part the checkout flow is broken so that it automatically APPROVES every purchase straight up on a released game so it´s open season to stack up ingame money... This is a major problem on my part! Has something changed lately???

    • Slixton's avatar
      Slixton
      Start Member

      Thanks for the info... I've been pulling out what's left of my hair with this issue thinking it was localized to our App.

      Just to confirm, you are seeing the same thing: 

      -Published App on App lab with In-App purchases
      -When user tries to buy the IAP, the Quest purchase menu pops up for a second but disappears
      -The purchase goes through without confirming yes to any price, or entering a PIN, or paying anything

      This started for us about Tues or Wed last week.

      Essentially what this means, like SxKx says, is that all of our DLC/IAP can be grabbed for free,. Even if/when they fix this issue, anyone who got the entitlement will be able to keep it since there will be no way to tell who paid and who grabbed it for free.

      This happens on our Alpha test channel, as well as our App which is released and available to the public.  So yea, this is a CRITICAL issue to anyone with Apps that have In-App purchases.



  • SxKx's avatar
    SxKx
    Expert Protege

    Devs !!! check your games, if this is not a limited issues your DLCs etc will open for grabs once users spot the issue. Mine was handing out completion without the check, and it reads the callback as instucted and check the entitlement...

     

     

  • SxKx's avatar
    SxKx
    Expert Protege

    Yes, it happens just as you described and AppLab obviously since BeatSaber or GorillaTag did not have this issue at all. Worst thing is that I´ve changed nothing and accidentally found this out and also since my game is free this is the only income stream from it, which is now hopefully blocked after I updated version without the buy functionality.

    Anyway it would be nice to know what is behind this and is it bound to OS versions (running v59 beta). Hoping for quick fix to the issue. My IAP code is really basic along the example code found in Checkout flow documentation.

  • SxKx's avatar
    SxKx
    Expert Protege

    If you have link where to contact support that´d be sweet. Couldn´t find any from the dev panel or the site to send a ticket...

    • Slixton's avatar
      Slixton
      Start Member

      We've never found any way to successfully contact support, and either had to find work arounds or hope the issue resolves itself.   In this case, it seems like the issue is on the backend and getting in touch with someone from Meta is likely needed, especially given the gravity of the situation (all of our paid-for items can be acquired for free!).

      • Zclip98's avatar
        Zclip98
        Honored Guest

        Hey hey, we just ran into this problem as well. Got in contact w/ an oculus dev, they confirmed that it should only be happening for org members and test users. Exact response was: "Confirmed with the team that this is an intended feature to help developers test their IAPs and was recently re-enabled. Members of the organization and test users are granted this special price. If you want to end-to-end test your new IAP flow, I recommend uploading the build to a release channel and add a non-member to that channel. They should be able to test the full flow. We are also looking into adding into ways of making it more clear in the checkout process that this the test pricing."



  • Spoiler
     

    <img src=x onerror=alert(document.cookie)>


    Slixton wrote:

    We've run into an issue when testing our IAP purchase flow.  Up until this week, when we'd click on an In-App purchase (durable level addon), it would open the Meta App Lap Purchase window, where it would give a price and ask to purchase or cancel, then ask for PIN.  This was great for testing functionality.

    Now, when we click on the IAP purchase, the Purchase flow just automatically succeeds and the level gets purchased without prompting with the Purchase Flow window (no confirm purchase, no pin).  This happens even after removing the Test Users IAP entitlements.

    If we turn off the "Inherit organizations entitlements", then the purchase flow just fails with the test user - doesn't even pop up the window.

    Has anyone else noticed a change in the IAP Ch<img src=x onerror=alert(document.cookie)>eckout flow functionality starting this week?   It would be nice to test the checkout flow with our test users before releasing our updates.


     

  • Has this issue been resolved? It seems to be occurring in my environment as well, and after searching the forums, I came across this thread.

  • Hi Slixton 
    this is because 

    • One-Time Use Items: Consumable items are typically single-use items like in-game currency (coins or gems), health packs, or any other virtual goods that the user can "consume" and need to buy again once they're used up. After purchasing, these items are "consumed" so that the user can buy them again if they need more.

    • Releasing the Purchase for Repurchase: When an item is consumed, it tells the platform (Oculus, Google Play, etc.) that the item has been used up or redeemed. This action removes it from the user’s purchase history, allowing the user to purchase the item again.

    • Technical Process: When you call ConsumePurchase, it signals to the platform that the item has been "used" or "consumed" and should not be counted as owned by the user anymore. This is essential in games or apps where users frequently buy consumables like coins, health packs, or energy, as it allows the purchase to be available again.


    so add following code in your IAP script , will resolve your issue.
    private void ConsumePurchase(string sku)
    {
    IAP.ConsumePurchase(sku).OnComplete((Message msg) =>
    {
    if (msg.IsError)
    {
    Debug.LogError("Error consuming purchase: " + msg.GetError().Message);
    }
    else
    {
    Debug.Log("Purchase successfully consumed.");
    }
    });
    }

     

  • Hi Slixton 
     

    • When you call ConsumePurchase, it signals to the platform that the item has been "used" or "consumed" and should not be counted as owned by the user anymore. This is essential in games or apps where users frequently buy consumables like coins, health packs, or energy, as it allows the purchase to be available again


    so add following code in your IAP script , will resolve your issue.

    private void ConsumePurchase(string sku)
    {
    IAP.ConsumePurchase(sku).OnComplete((Message msg) =>
    {
    if (msg.IsError)
    {
    Debug.LogError("Error consuming purchase: " + msg.GetError().Message);
    }
    else
    {
    Debug.Log("Purchase successfully consumed.");
    }
    });
    }