-
|
Recently I upgraded the package version from Closing the app and re-opening it and purchasing the product again results in the same issue. Or Implementation is as followed:
await requestPurchase({
type: "in-app",
request: {
ios: {
sku: "product-id-1",
quantity: 1,
},
},
});then the const { finishTransaction } = useIAP({
onPurchaseSuccess: async (purchase: Purchase) => {
const receipt = await getReceiptDataIOS();
assert(receipt, "Unable to retrieve receipt data");
await validateReceiptwithBackendEndpoint({ receipt });
await finishTransaction({
purchase,
isConsumable: true,
});
},
onPurchaseError: (purchaseError: PurchaseError) => {
console.log("purchaseError", purchaseError);
},
}); |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
|
Maybe this error has something to do with it. I got this a few times when calling |
Beta Was this translation helpful? Give feedback.
-
|
I have a little reproduction:
|
Beta Was this translation helpful? Give feedback.
-
|
@idlework After investigating, I can confirm this is not a bug but rather the expected behavior of iOS App Store receipts. Let me explain what's happening: Why You're Seeing the Same ReceiptiOS App Store receipts are cumulative - they contain ALL transactions for your app, not just the most recent one. This is by design in Apple's receipt system. Here's what happens in your flow:
The receipt data itself doesn't "change" in a way that makes it look different - it's still the same cumulative receipt file, just with more transactions inside. About the
|
Beta Was this translation helpful? Give feedback.
-
|
Thank you for pointing me in the right direction. I didn't know about the new JWS token, and I wasn't aware of the name change and the change in how it works. We had to refactor the backend for the JWS token, and now everything is working correctly. |
Beta Was this translation helpful? Give feedback.

@idlework After investigating, I can confirm this is not a bug but rather the expected behavior of iOS App Store receipts. Let me explain what's happening:
Why You're Seeing the Same Receipt
iOS App Store receipts are cumulative - they contain ALL transactions for your app, not just the most recent one. This is by design in Apple's receipt system.
Here's what happens in your flow:
finishTransaction()called ✅ - Transaction is finishedgetReceiptDataIOS()returns - The same receipt blob (which now includes both transactions)The receipt data itself doesn't "change" in …