Why did I receive a CONSUMPTION_REQUEST for the same transaction_id the day after I already received a REFUND for it?
I received a CONSUMPTION_REQUEST, but due to a program error, I failed to submit the customer information. Later, I was notified with a REFUND, indicating that the transaction had been refunded. However, the next day, I received another CONSUMPTION_REQUEST notification for the same transaction_id.
In-App Purchase
RSS for tagOffer extra content, digital goods, and features directly within your app using in-app purchases.
Posts under In-App Purchase tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I have a question with isEligibleForIntroOffer(for: groupId) that in which case that isEligibleForIntroOfferForGroupId changes from false to true. I found that a few user of our app isEligibleForIntroOffer changes. they used to buy a renewing-subscription with 3-day free trial. but 3 days later. i got from logs their isEligibleForIntroOffer becomes true. We rely on this field to determine whether to display products with free trials. there is only one product with free trial introductory offer.
I encounter a problem that duplicate charges for a single purchase. iI received two transactions with the same appAccountToken but different original transactionId.(a non-renewing subscription product). One of them is from Transaction.updates. The user of our app has already given us feedback twice. the phone runs iOS 18.0.1.
I have some questions regarding the specifications of the receipt information that can be obtained from https://developer.apple.com/documentation/appstoreserverapi/get_transaction_info.
When a subscription is newly purchased, it is expected that the purchaseDate should reflect the time of purchase and should not be later than this time, such as an hour after the purchase. Is this understanding correct?
We observed a phenomenon where, when a user purchased a new subscription between 17:30 and 20:00 JST on November 3, 2024, the purchaseDate in the received receipt was delayed by one hour compared to the actual purchase time. Is this a specification or an issue?
When validating the receipt for a newly purchased subscription, if the purchaseDate reflects a time later than when the purchase was made, should I regard the user as having subscription rights at the time of validation?
How can I check the orders from my app's users? Sometimes users may encounter issues with their payments, so I need to verify the transactions when there are problems reported by my app's users.
I'm currently in the process of submitting a new app with a single non-consumable In-App Purchase.
After creating the IAP in AppStore Connect, I created a synced StoreKit config in Xcode which correctly loaded the purchase.
After making sure that the transaction works as expected within the app, I submitted the app in AppStore connect, including the In-App Purchase.
Since then, the In-App Purchase can not be found in the StoreKit configuration and isn't displayed in the app, which lead to the submission being rejected.
As requested by the review team, I have resubmitted the In-App Purchase, so it's currently "Waiting for Review" but still not showing up in the StoreKit configuration in Xcode.
I'm not quite sure what I'm doing wrong here. I have other apps live in the AppStore with IAPs and no outstanding agreements to sign.
I got this error if I buy my IAP on the simulator with a sandbox account. Any solutions? On android it's working very well.
<SKPaymentQueue: 0x6000018b8430>: Payment completed with error: Error Domain=ASDErrorDomain Code=530 "(nu11)" UserInfo={NSUnderlyingError=0x600001512970 (Error Domain=AMSErrorDomain Code=100 "Authentication Failed The authentication failed." UserInfo={NSMultipleUnderlyingErrorsKey=( "Error Domain=AMSErrorDomain Code=2 \"Password reuse not available for account The account state does not support password reuse.\" UserInfo={NSDebugDescription=Password reuse not available for account The account state does not support password reuse., AMSDescription=Password reuse not available for account, AMSFailureReason=The account state does not support password reuse.}", "Error Domain=AMSErrorDomain Code=0 \"Authentication Failed Encountered an unrecognized authentication failure.\" UserInfo={NSDebugDescription=Authentication Failed Encountered an unrecognized authentication failure,, AMSDescription=Authentication Failed, AMSFailureReason=Encountered an unrecognized authentication failure,}" ), AMSDescription=Authentication Failed, NSDebugDescription=Authentication Failed The authentication failed., AMSFailureReason=The authentication failed,}}, storefront-country-code=USA, client-environment-type=Sandbox)
Hi, I am testing payment on simulator. It worked previously but stopped. I am getting an error:
<SKPaymentQueue: 0x600000031200>: Payment completed with error: Error Domain=ASDErrorDomain Code=530 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=USA, NSUnderlyingError=0x600000c61fe0 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed The authentication failed." UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 "Password reuse not available for account The account state does not support password reuse." UserInfo={NSDebugDescription=Password reuse not available for account The account state does not support password reuse., AMSDescription=Password reuse not available for account, AMSFailureReason=The account state does not support password reuse.}",
"Error Domain=AMSErrorDomain Code=0 "Authentication Failed Encountered an unrecognized authentication failure." UserInfo={NSDebugDescription=Authentication Failed Encountered an unrecognized authentication failure., AMSDescription=Authentication Failed, AMSFailureReason=Encountered an unrecognized authentication failure.}"
), AMSDescription=Authentication Failed, NSDebugDescription=Authentication Failed The authentication failed., AMSFailureReason=The authentication failed.}}}
Hello, I am currently encountering an issue while using the server-side API for in-app purchase integration. Suppose a user has already purchased a product, and the App Store returns a transactionId of 1. After some time, the user repeats the purchase for some reason, and the App Store returns a transactionId of 2. However, when I use the Get Transaction History interface to query the transaction information for transactionId 2, I see that the data returned by the App Store does not include the transaction data for transactionId 2; it only contains the transaction data for transactionId 1.
In this situation, my guess is that when the user makes a repeat purchase, the App Store recognizes that the user has already purchased the item and has not executed a refund. Therefore, the App Store generates a new transactionId for this request (the user's purchase) and associates it with the previous purchase's transaction data. This is my inference.
If this user has made 5 repeat purchases, when the user successfully requests a refund, if I query the transaction information through the Get Transaction History interface, will the revocationDate for all 5 transactions in the App Store's official database be modified to the same date? Additionally, after the user successfully refunds and makes another purchase, will the new transactionId still be associated with the previous transaction data?
Hi!
I'm currently developing an app to support artists.
This should include a shop where artists can buy digital resources to use in their projects.
Now the issue is how I handle this.
I know there are consumable and non-consumable IAPs and there is a limit of 10.000 IAPs per app.
Because my shop will have more than 10.000 items eventually, I try to use a different approach:
For every price I want to have, I create a generic consumable IAP with the price I want. Then I assign this IAP to the product.
To keep transactions safe, users need to sign-up before making a purchase.
When a user intends to purchase the item, I create a transaction with the item a user wants to purchase along with the user in my database and return a unique uuid. Then I attach this uuid with the transaction appAccountToken.
Then I listen to App Store Server Notifications and unlock the item for the user based on appAccountToken.
I already read about this extensively and other people seemed to be able to use it after explaining everything to Apple.
I tried to submit the first version of the app and it was rejected with reason:
Guideline 2.3.2 - Performance - Accurate Metadata
We noticed that the display names and descriptions for your promoted in-app purchase products are the same, which makes it hard for users to identify what they are purchasing from the App Store.
Next Steps
To resolve this issue, please revise the display names or descriptions for your promoted in-app purchase products to ensure each individual metadata item is unique.
Please note that display names for promoted in-app purchases can be up to 30 characters long, while descriptions can be up to 45 characters long.
If you have no future plans on promoting this in-app purchase product, you can delete the associated promotional image in App Store Connect.
All my consumable IAPs are named the same because it is generic and I don't really see how I would change this.
What kind of information do I need to supply to Apple to approve it?
Any insights or tips are highly appreciated.
I uploaded my app over 1 month ago, but my 5 IAP' have not been approved. The app was approved over a month ago now.
Hi everyone,
I was just wondering if anyone could point me in the right direction on how to properly handle inquiries about refunding in-app purchases.
I've seen multiple posts saying to direct them to Apple's support, but is there no other direct way of handling this?
Also, does Apple not provide an API to interface with so you can issue refunds on behalf of the customer?
Thanks.
Hello everyone,
I’m submitting my app for the first time, and I’m running into an issue with fetching my in-app purchase products in the release environment.
In the sandbox environment, everything works perfectly: my app can fetch and display the products from StoreKit without any issues. However, when I switch to the release environment, my app is unable to retrieve the in-app purchase products from App Store Connect.
Because the app can’t fetch the products, this results in an error when either a user or the App Review team attempts to make a purchase, effectively blocking the purchase process.
Has anyone encountered this before? Any guidance on troubleshooting or common mistakes to watch out for would be much appreciated. Thanks!
Hello everyone,
I’m submitting my app for the first time, and I’m running into an issue with fetching my in-app purchase products in the release environment.
In the sandbox environment, everything works perfectly: my app can fetch and display the products from StoreKit without any issues. However, when I switch to the release environment, my app is unable to retrieve the in-app purchase products from App Store Connect.
Because the app can’t fetch the products, this results in an error when either a user or the App Review team attempts to make a purchase, effectively blocking the purchase process.
Has anyone encountered this before? Any guidance on troubleshooting or common mistakes to watch out for would be much appreciated. Thanks!
Hi,
We do not see In-App Renewable Subscription option. See screen copy (sorry screen is in French, nobody's perfect).
We have already :
signed the Paid App contract
managed from Admin Accounf
generate an In-App Key (User > Integration > In-App)
Still, no option.
Thanks for your help.
Yves
Hi,
I want to apply in app purchases in my app. I have set it up in xcode and on appstoreconnect, it is saying ready to submit.
I dont understand what i need to do now to connect the two. I have read i need to send my app for review for them to be reviewed, but i want to test the in app purchases first on test flight and on sandbox before i send my app for review.
Please can someone clarify for me and help me?
Hi Everyone,
We want to build an app for a client and have a business Challenge. On the one hand, the app will have a component that will require and in-app-purchase.
On the other side, we will have a subscription service that will be paid for outside the app.
Is that something apple allows to do, or will we get in trouble when doing in-app purchase?
as title mentions, i've had a subscription approved for being used with my app, however when i want to add this subscription to the new version im uploading, the entire 'in-app purchases and subscriptions' group section is missing so i can't add anything.
I have previously had this section showing prior to the subscription approved, but since the subscription was approved, it's no longer possible to even add it
Hi,
I am trying to build an app where users can upload music and sell it to other users on the app and have the money go straight to their account in such a way where stripe connect would be useful. I am wondering if I can use stripe for this or do I have to use in app purchases? If I have to use in app purchase how can i achieve this?
If I have a monthly subscription offering for an app and also a yearly subscription offering for the same app.
And if I set up a win-back offer through App Store Connect on the yearly subscription offering.
Will this win-back offer be shown to lapsed subscribers of both the monthly and yearly offerings?
Or would it be necessary to create a different win-back offer for each offering if we want lapsed subscribers to see a win-back offer regardless of which subscription they had previously purchased?
Thanks so much in advance!