• Categories
  • Recent
  • Tags
  • Popular
  • Solved
  • Unsolved
  • Users
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Darkly)
  • No Skin
Collapse
brainCloud Forums

Are there plans to support Storekit 2 receipt verification?

Scheduled Pinned Locked Moved Unsolved APIs
25 Posts 7 Posters 781 Views
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Michael CostaM Offline
    Michael CostaM Offline
    Michael Costa
    replied to peter last edited by
    #16

    Hello @peter.

    That's correct, you get the TransactionID from deserializing PendingOrder.Info.Receipt (at least that is the method I'm using 😅). The reason why you want the TransactionID and NOT the OriginalTransactionID is because renewed subscription purchases will have two different values for this.

    Just a couple questions so we have more context:

    1. Do you have the Bundle Id field filled on the Apple Platforms page on brainCloud? This is still a requirement for validating purchases. You'll need to make sure to have one set up for your app on Certificates, Identifiers & Profiles and that it matches the Bundle Identifier in your Unity Player Settings.

    2. Are you running CachePurchasePayloadContext() (docs) before VerifyPurchase()? This is also a requirement for purchases of itunes type.

    Please let me know so we can look deeper into this! Thanks 😄

    L 1 Reply Last reply
    0
  • P Offline
    P Offline
    peter
    wrote last edited by
    #17
    1. Yes, we still have the Bundle Id configured in the Application ID > Apple page on brainCloud.
    2. Yes, we are still calling CachePurchasePayloadContext() with itunes and the payload. This code path hasn't changed as we've upgraded from 5.8 to 5.9
    1 Reply Last reply
    0
  • L Offline
    L Offline
    LEE JONG GUN
    wrote last edited by
    #18
    This post is deleted!
    1 Reply Last reply
    0
  • L Offline
    L Offline
    LEE JONG GUN
    replied to Michael Costa last edited by
    #19

    @Michael-Costa

    "packetId": 13,
    "responses": [
    {
    "data": {
    "resultCode": 101,
    "errorMessage": "Transaction id not found.",
    "store": "itunes"
    },
    "status": 200
    }
    ]
    }

    After configuring the App Store Server API, enabling “Use App Store Server API for legacy receipts (optional)” appears to cause legacy receipt validation to stop working. Instead, the system starts requiring a transaction ID.

    In other words, checking it has the opposite effect.

    We are currently running a live service using the existing receipt-based flow, so we have this option turned off—meaning we are effectively using it in practice (because enabling it breaks legacy). We are very concerned that if this behavior gets “fixed” later, it could cause issues in our live service. Please take this into account and ensure any patch/change does not introduce regressions for live operations.

    1 Reply Last reply
    0
  • Paul WinterhalderP Offline
    Paul WinterhalderP Offline
    Paul Winterhalder brainCloudAdmin
    wrote last edited by
    #20

    HI Lee,

    Can you message into our support system with the appId involved - and the profileId of a user who had the issue?

    Thanks,

    Paul.

    L 1 Reply Last reply
    0
  • L Offline
    L Offline
    LEE JONG GUN
    replied to Paul Winterhalder last edited by LEE JONG GUN
    #21

    @Paul-Winterhalder

    Hello

    Project 14594
    Tester ID 1b5c9fce-a890-4d86-86aa-dd71263d0fc1

    App Store \Server API has been fully configured in the current BrainCloud settings, and “Use App Store Server API for legacy receipts (optional)” is turned OFF.
    This option must be disabled for the legacy receipt flow to function, so it is intentionally kept turned off in order to use the current setup.

    When checking Verify Purchase in the user ID logs, the client has not yet been updated, so it is not sending a transactionId and is instead sending the receipt, following the legacy receipt-based flow.

    1 Reply Last reply
    0
  • Paul WinterhalderP Offline
    Paul WinterhalderP Offline
    Paul Winterhalder brainCloudAdmin
    wrote last edited by
    #22

    Hi @LEE-JONG-GUN ,

    Is that a sandbox receipt for that user? We seem to have found a second flow for sandbox purchases - not sure why there are two - maybe for older vs. newer receipts?

    Anyway - we've created a patch and will be deploying it soon.

    Paul.

    L 1 Reply Last reply
    0
  • L Offline
    L Offline
    LEE JONG GUN
    replied to Paul Winterhalder last edited by
    #23

    @Paul-Winterhalder Yes, that’s correct. It is a sandbox account.

    After the patch, it would be good if existing receipts continue to work by default.

    1 Reply Last reply
    0
  • Paul WinterhalderP Offline
    Paul WinterhalderP Offline
    Paul Winterhalder brainCloudAdmin
    wrote last edited by
    #24

    Hi @LEE-JONG-GUN - the patch has been deployed. Let us know if it works better for you.

    L 1 Reply Last reply
    0
  • L Offline
    L Offline
    LEE JONG GUN
    replied to Paul Winterhalder last edited by
    #25

    @Paul-Winterhalder Now, purchase validation proceeds normally regardless of the “Use App Store Server API for legacy receipts (optional)” option setting.

    1 Reply Last reply
    0

  • Login

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Solved
  • Unsolved
  • Users