Subscriptions

RSS for tag

Give users access to content, services, or premium features in your app on an ongoing basis with subscriptions, a type of in-app purchase.

Posts under Subscriptions tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Issue with "Transaction.currentEntitlements": Some paid users cannot use the features of our subscription plan
Some paid users are unable to use the paid features unlocked by purchasing our subscription plan. It seems that this is due to StoreKit 2's Transaction.currentEntitlements not working the way we would expect it to work. Are you also encountering this issue? Do you have any idea to improve this situation? At launch, our app checks if the user is subscribed to the plan, using Transaction.currentEntitlements. As a result, the currentEntitlements array was empty. Our app then fetches the products from StoreKit 2 using Product.products(for:). As a result, the Product.SubscriptionInfo.RenewalState value of the corresponding Product (product.subscription.status.first.state) is subscribed, which confirms that the user has indeed purchased our plan, but seems to contradict the absence of the corresponding transaction in Transaction.currentEntitlements. Proactive in-app purchase restore and a restore purchase button calling the AppStore.sync() method are implemented, but using the button did not solve the issue.
1
1
275
Sep ’24
Manage Subscriptions prompts for a sandbox user credential that belongs to another app
When I trigger the 'you've already purchased this subscription' alert and go to "Manage" my subscriptions, I'm prompted for a password to: a Sandbox test account that belongs to a different app and I no longer have access to Key Details: I no longer have access to that Sandbox user, as I no longer work for that company. I have long-since removed my AppleID from all of those apps using the appropriate flow to remove myself from their development accounts. As such, I cannot delete these sandbox users myself. I have wicked psychological damage from working at that company, and cannot 'reach out to them' to have them delete the sandbox accounts. I'm taking damage every time I see this alert as it is. I'm NOT logged into my iPhone as a Sandbox tester, but with my AppleID proper. NO purchases/iTunes email separate from my AppleID. The prior AppStore Connect + App that it's asking me for credentials for did not offer subscriptions of any kind. We only use Purchases Sandbox. We DON'T use StoreKit. Questions: Why am I being asked for this when I cannot ever succeed at providing it? How do I work around this problem, so I can view and manage my test subscriptions? Screenshots: This alert: Leads to this alert, which is an email address that belongs to a sandbox account that was created for an entirely different application on an entirely different AppStore Connect account, that I no longer develop for. I want to make this 100% crystal clear that there is no association whatsoever with my current application and the sandbox user this alert is asking me to provide credentials for.
1
0
222
Sep ’24
Redeem Promo Codes
Hi, I have implemented support for promo codes using StoreKit’s built-in SubscriptionStoreView and have created subscription promo codes in App Store Connect. When pressing the “Redeem Code” button in the SubscriptionStoreView, the “redeem code view” is presented. However, when trying to redeem a code using a released version of the app (downloaded from the App Store), I receive an error message saying the code cannot be redeemed. Does anyone know why this might be happening?
1
0
292
Sep ’24
Clear Purchase History for a Sandbox Apple ID doesn't work
Hello, I'm trying to clear the purchase history made with a sandbox Apple ID on my test device but it does not work. The past purchases are still returned by StoreKit. I've waited many hours but it seems to persist. When I use for await result in Transaction.currentEntitlements { in my app, my non-consumable product is still here. Is it expected? How long should it take to reset the history? Is is supposed to work also for non-consumable products? Thanks Axel
2
0
356
Sep ’24
Recent update encountered in-app purchase can not normally pull the offer information
I recently submitted an App update, but it was rejected several times, because the free 3-day trial of the subscription product was not displayed, but the app interface advertised the free trial. At present, this subscription product has been approved by AppStore. Previous versions have 3 days of free promotional information appeared. This version was rejected after the update, after local testing found that even if we use the new sandbox test account test, always can not get free 3-day discount information. I then tested other apps that had already been developed and were unable to get the 3-day free offer. However, my application update this time did not change the code logic related to in-app purchase, but the experience optimization of other functions. I guess it is because of the new product conference of Apple on September 10th, and whether Apple's policies and systems have been updated? Since this pop-up interface is StoreKit pop-up, the developer can not do anything about it. I wonder if anyone else has had the same problem as me? I hope relevant developers or technicians can provide technical help, thank you very much!
0
0
230
Sep ’24
Recent updates The in-app purchase can not normally pull the free trial offer information
I recently submitted an App update, but it was rejected several times, because the free 3-day trial of the subscription product was not displayed, but the app interface advertised the free trial. At present, this subscription product has been approved by AppStore. Previous versions have 3 days of free promotional information appeared. This version was rejected after the update, after local testing found that even if we use the new sandbox test account test, always can not get free 3-day discount information. I then tested other apps that had already been developed and were unable to get the 3-day free offer. However, my application update this time did not change the code logic related to in-app purchase, but the experience optimization of other functions. I guess it is because of the new product conference of Apple on September 10th, and whether Apple's policies and systems have been updated? Since this pop-up interface is StoreKit pop-up, the developer can not do anything about it. I wonder if anyone else has had the same problem as me? I hope relevant developers or technicians can provide technical help, thank you very much!
1
0
214
Sep ’24
Reponse in blank by "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/subscriptions" in spite of passing valid transactionId
Hello, A user subscribed by in-app purchase subscription in the app "Target Leaderboard". We have got the transaction Id and base64 encoded receipt data in response. We can generate the JWT by the In-app purchase key file and key Id. But when we try to fetch all subscriptions by "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/subscriptions" by passing the transaction Id, blank response is returned. Why it is happening? Also, when we are try to fetch original transaction Id by "https://sandbox.itunes.apple.com/verifyReceipt" by passing the base64 encoded receipt data and SharedSecret, code 21003 is returned. Why it is happening? Please help.
4
0
426
Sep ’24
Need understanding of transaction_id, orginal_transaction_id
Hello there, I understand that the "transaction_id" key is always unique whenever any transaction happens, whether it occurs due to auto-renewal of a subscription. The "original_transaction_id" always remains the same across all transactions of a single subscription. But why does it stay the same when the subscription expires or is canceled, and we purchase the same subscription again with the same Apple account? Why does the "original_transaction_id" stay the same? The reason I'm concerned is this: let's consider a situation where User1 purchases a subscription, and then their subscription is canceled or expires. Then User2, using the same Apple account, purchases the same type of subscription, and we get the same "original_transaction_id" for User2 as well. In this case, User1’s receipt also gets updated with the latest "expires_date_ms," which can cause one subscription to benefit two users. I hope I explained my query correctly. Regards, Shivam
0
0
217
Sep ’24
Why I am seeing "Grace Period" events for my new subscription app?
Dear All, I've recently released a new app with a subscription. It has a 3-day free trial and a 1-year subscription, and I've enabled a grace period of 16 days, but the grace period is enabled only for paid-to-paid renewals. As it's a new app, no-one has reached the end of their subscription yet; there will not have been any paid-to-paid renewals. Yet I see a small number of "enter grace period" and "renewal from grace period" events reported in App Store Connect. Can anyone explain why this could be?
3
1
431
Sep ’24
Best Distribution Method
We have a companion app to our Web App that we are about to distribute. My question is this: Our customers sign up and pay for an annual subscription for our services (travel planning service) via our website. They can then access and use the services via our site, but we are also planning to add a free companion app that ties into CarPlay (although approved) as well as full functionality of our web app. From what I've read in the Distribution Manual, it seems as though I can release this as a free app and still take payment via our primary web app according to section: 3.1.3(f) Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (e.g. VoIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app. My question is, am I reading this correctly?
0
0
253
Sep ’24
iOS In-App Purchase works in sandbox and flight test, but was rejected by apple
We recently submitted an update to an existing app that already has an in app purchase for an annual subscription which works perfectly fine. However, the update has been rejected 5 times by Apple stating the in app purchase does not work. We have not made any changes to the update regarding the in app purchase AND the in app purchase works perfectly fine on device testing AND in flight test. Can some one please help? Anyone know what is going on?
3
0
436
Sep ’24
Showing .subscriptionPromotionalOffer() does not render any available offers if user already subscribed
Hi, I working with the new .subscriptionPromotionalOffer() modifier of SubscriptionStoreView, with the goal of presenting available promotional offers to users that have or have not yet subscribed to one of my subscriptions. In the former case, the promotional offers are rendered correctly along with the relevant subscription plan. But in the latter, if the user has already subscribed to the subscription, the promotional offers are not rendered at all, and the UI displays a grayed out "Current Plan" button. I expect the user to be able to enjoy this promotional offer, even it he's subscribed to the plan and he hasn't been offered the offer before. Why is it not showing for this user? Should not existing promotional offers be available to existing subscribers? struct SubscriptionsView: View { var subscriptions: [String] var offerId: String? var body: some View { SubscriptionStoreView(productIDs: subscriptions) { // UI content } .subscriptionPromotionalOffer( offer: { product, subscriptionInfo in return subscriptionInfo.promotionalOffers.first(where: { $0.id == offerId }) }, signature: { product, subscriptionInfo, promotionalOffer in return try await store.getSignature(product: product,subscriptionInfo: subscriptionInfo, promotionalOffer: promotionalOffer ) }) } }
2
0
325
4w
Apple payments vs Stripe
Hi, we are a subscription based (Patreon-like) platform and we use Stripe to distribute the incomes to the creators. Each payment is split to 90% procent which goes to the creators account and 10% which goes to us as a platform. We are legally not allowed to distribute the 90% and that is why we are partnered with Stripe who performs so. Stripe cares about KYC of the creators and distributes money to them. If we were to implement Apple app payments - how could we implement such? I studied the documentation and Stripe does not support such money splitting and does not provide alternative to "Connected accounts" like in Stripe? So if I understand correctly: We are unable to use Stripe because of Apple App terms. We are unable to use Apple App subscriptions because Apple cannot split the payments and distribute these to the creators. So is there a way out of this? Thanks.
1
0
349
Aug ’24
Removing In-App Purchases, consequences and questions.
Hi, I have a question regarding a set of existing in app purchases as we are planning on making a set of changes to our application. For context we are a B2B application that sells a web based tool directly to businesses. Really due to historical reasons we made recurring subscriptions available in the iOS app store and have a number of tiers users can select. Our service is getting a little more complicated, we offer a lot of stuff outside of the app store and looking at the rules: 3.1.3(f) Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (e.g. VoIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app. It would make a lot of sense for our App to become a companion to our main service. As far as I understand this means what we need to remove the App Store subscriptions, there is no call to action in app to buy outside of the app store. However, what happens to the existing subscribers to the service? By removing the in app purchases from the app will these existing subscribers still continue to be subscribed? We don't have that many users that buy in app but we don't want to mess up their experience. For example, we don't want these subscriptions to just cancel and their access be removed. Also is this a fair understanding of the rules as we don't want to fall foul of them. I think this is a similar question to this thread, but obviously want to check before making this change. Thank you!
2
0
272
Sep ’24
Is it expected that both "trialPeriod" and "introOfferPeriod" are true in IAP Receipts?
It seems that starting from around 2024-08-20T10:28:00 UTC, both the "trialPeriod" and "introOfferPeriod" fields are set to true in the receipt data of free-trial subscriptions. Before that time only trialPeriod was set to true while introOfferPeriod was false. Just want to confirm whether this is an expected and permanent change? Thanks.
0
0
246
Aug ’24
Promo codes not working
Two issues: In-app promo code for a consumable item is not delivering/unlocking that item for the customer. The promo code says it's redeemed and can't be re-used, which shows the customer is following the correct process. In-app promo code for a subscription will not unlock. It claims the code can only be used from a gift card ('This requires a gift card with a box around the code'), and tells the customer to use a camera with the nonexistent gift card. Obviously we have given a code to the user, not a gift card. Both in-apps work correctly if purchased from within the app as a test purcase, so it's not a code/setup problem. It's not user error. The app has been live for at least 6 years. What's changed?
4
2
396
Aug ’24
StoreKit Promotional Offer Purchase Failure - 'Unable to Purchase' Alert in Xcode
Hi everyone, I'm encountering an issue while testing a subscription purchase with a promotional offer using StoreKit in the Xcode debug environment. I’ve created a subscription in the StoreKit configuration file and added a promotional offer. However, when I attempt to make a purchase with the promotional offer, the process fails, and I receive an alert with the message: "Unable to purchase" "Contact the developer for more information." Here’s the error that is printed in the Xcode logs: Purchase did not return a transaction: Error Domain=ASDErrorDomain Code=3903 "Received failure in response from Xcode" UserInfo={NSDebugDescription=Received failure in response from Xcode, NSUnderlyingError=0x303346b50 {Error Domain=AMSErrorDomain Code=305 "Server Error" UserInfo={NSLocalizedDescription=Server Error, AMSServerErrorCode=3903, AMSServerPayload={ "cancel-purchase-batch" = 1; dialog = { defaultButton = ok; explanation = "Contact the developer for more information.\n\n[Environment: Xcode]"; initialCheckboxValue = 1; "m-allowed" = 0; message = "Unable to Purchase"; okButtonString = OK; }; dsid = 17322632127; failureType = 3903; jingleAction = inAppBuy; jingleDocType = inAppSuccess; pings = ( ); }, AMSURL=http://localhost:49300/WebObjects/MZBuy.woa/wa/inAppBuy, AMSStatusCode=200, NSLocalizedFailureReason=The server encountered an error}}} Has anyone encountered a similar issue, or does anyone have insights into what might be causing this? I’m using StoreKit 2 methods for handling subscriptions, and this error only occurs when attempting to apply the promotional offer. Any help or suggestions would be greatly appreciated! Thanks in advance!
1
0
477
Aug ’24
Invalid product ID when attempting mass extend subscription API
Hi there, I'm having trouble using this API: https://developer.apple.com/documentation/appstoreserverapi/extend_subscription_renewal_dates_for_all_active_subscribers It is returning a 400 response for all product IDs for my app's subscriptions: (400, 4000023, 'Invalid request. The product id parameter is invalid.') I have verified these productIds in the App Store Server UI, and using the App Store Connect API to retrieve the product IDs for all subscriptions in the subscription group. Any tips would be greatly appreciated!
6
0
492
Aug ’24