RevenueCat / RevenueCat/react-native-purchases

Transaction Identifiers do not match in Sandbox for iOS

Open
#1,093 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
1.2k
Forks
117
Avg merge
14h 40m
Merged PRs (30d)
40

Description

Describe the bug
For iOS Sandbox transactions, the "transaction_id" field in the webhook is something like "StoreKitTest_Transaction_7d5df4466d669078a079d2c0d58f65d9_3" while in-app the result of purchaseProduct will have transactionIdentifier equal to just "3". I'm expecting these two things to match up for some fulfillment logic.

  1. Environment
    1. Platform: iOS
    2. SDK version: 8.2.1
    3. OS version: iOS 18.0 (also tried in 16.4)
    4. Xcode/Android Studio version:
    5. React Native version: 0.73.6
    6. SDK installation (CocoaPods + version or manual):
    7. How widespread is the issue. Percentage of devices affected.
  2. Debug logs that reproduce the issue
  3. Steps to reproduce, with a description of expected vs. actual behavior
    1. Call purchaseProduct for a consumable product in iOS simulator
    2. Examine result.transaction.transactionIdentifier
      1. Expected: this value is unique and matches the txn id in the webhook request
      2. Actual: this value is not unique and does not match the txn id in the webhook request
  4. Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)

Additional context
N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named. Start by reproducing the iOS simulator flow with purchaseProduct for a consumable, then compare transaction.transactionIdentifier with the webhook transaction_id. Done means the identifier behavior is consistent and unique across both results, or the supported limitation is clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, react-native, typescript
Domain
api, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.