We have a cycling studio/ bike gym. We offer classes and you need a membership to reserve a class. This is very similar to a gym membership.
I just need to make sure how the payments will work.
According to the guideline 3.1.3(e) Goods and Services Outside of the App I think we can offer payments with a traditional credit card entry.
Is this so?
Because in the forum I found answers stating you need to use in-app-purchase.
I really need to make sure before beginning the app development.
Thank you.
StoreKit
RSS for tagSupport in-app purchases and interactions with the App Store using StoreKit.
Post
Replies
Boosts
Views
Activity
We are implementing offer code with subscription. I am wondering if we can redeem an offer code over another offer code? Let's say i have offer code "SUMMER24" and redeemed that code for monthly renewable subscription and if i am going to apply again another offer code "WINTER24" with monthly renewable subscription. Is it possible to do so? And if yes then presentCodeRedemptionSheet is not giving receipt for "WINTER24" code.
I'm getting really frustrated with emails from my App users who believe they've been charged for a free in-app purchase when they haven't.
My App offers many in-app purchases of digital items and I give 4 of these away for free to let users get comfortable with how it works in-app.
Over the last couple of years I've had a steady increase in angry emails from users who accuse me of fraud by charging them for a free item. I couldn't figure out for a while what this was as they would leave a 1 star rating, delete the app and ignore my emails for more information.
Recently I had someone a bit more patient engage and explain it to me.
The purchase for some reason popped up on my notifications right when I bought the [Free Item in my app]. It was from a movie I bought and the bill was delayed.
The timing of that notification is what is misleading users about the free in-app purchase.
Can someone take note of this please and perhaps delay any payment notifications so they aren't sent when the in-app purchase is for FREE?
Thanks!
Hi, we are thinking of having monthly/yearly subscription for a financial product that offers a account and card. As this relates to an account fee and the fee will be debited directly from the other accounts the bank customer already has with us will there be a commission charge from apple?
According to the documentation: https://developer.apple.com/documentation/storekit/transaction/3749696-id
Transaction.id is a unique identifier. However, something that is not clear to me is:
Is the ID unique worldwide? In other words, will there never be any other transaction with the same ID?
Or is it unique only within the context of my app?
Thanks!
I'm getting multiple times rejections for the same reason:
Regarding 3.1.1, the subscription can be purchased in the app using payment mechanisms other than in-app purchase.
To resolve this issue, it would be appropriate to subscriptions included in or accessed by your app must be available for purchase using in-app purchase.
My app is providing subscription-based video content exclusively in Tunisia (already indicated in the App review process), this region does not support IAP (based on this https://support.apple.com/en-us/102775), It's not possible to make IAP work consequently and I'm forced to provide local payment methods through a webview, this is still rejected for the same reason: make it IAP compliant ..
I've also provided similar app in the same region providing alternative payments and not implementing IAP and these app are in the app store already.
Hello everyone,
I'm the developer of a small e-learning platform and (hopefully) soon an iOS app.
We developed a cross-platform app that offers paid online video courses and question trainers to learn and practice for the theoretical and practical exams for various German boating licenses.
We launched our service back in December 2023 on the web and on the Google Play store without any problems. The App Store on the other side presents us with major problems. Our app got refused so many times that I forgot to count, so that I'm seeking for a little bit of help from the community.
Apple's main problem with our app is that we're not offering options to purchase access to these courses within our app, but instead only offer them through our website.
In the submissions, Apple always rejects our app with the reason Guideline 3.1.1 - Business - Payments - In-App Purchase and writes:
Your app accesses digital content purchased outside the app, such as online courses, but that content isn't available to purchase using in-app purchase.
We understand that we have to comply with Apple's guidelines for the App Store, which includes providing an option to buy access to these courses within our app. To solve these problems they suggest:
The paid digital content, services, or subscriptions included in or accessed by your app must be available for purchase using in-app purchase.
Apps that offer paid digital services and content across multiple platforms may allow customers to access the content they acquired outside the app as long as it is also available for purchase using in-app purchase. See Guideline 3.1.3(b) Multiplatform Services for more information.
We understand all these rules, but our problem is, we cannot implement IAP because our service is not of a digital-only nature. Our packages for training for the boating licenses contain more than access to these video courses and question trainers. Our customers also get physical content like a welcome package containing nautical charts, drawing tools, a compass and ropes for training knots. Moreover, our service includes practical boating lessons on-site at a partner boating school with 1:1 instructions.
We have tried to explain that our business model consists of a physical and digital unit whose components cannot be sold separately. We wrote in our conversation with Apple:
It is important to note that our services are sold as a complete bundle. Customers cannot purchase individual components such as the 1:1 sessions, physical materials, practical lessons, or digital content separately. This integrated approach is crucial to the efficacy and educational integrity of our program.
Apple always wants us to implement IAPs, obviously not understanding our business model. Wouldn't it be against the guidelines if we offer IAPs that provide access to the courses, but also send physical packages? Our understanding of the guidelines for IAPs is, they are only allowed for digital content inside the app like consumables, subscriptions and full access, but not for physical goods.
We asked if we could publish our app when implementing "purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry" as cited in § 3.1.3(e) "Goods and Services Outside of the App". But they ignored these issues and continued to ask us to implement IAP.
We then reached out to Apple providing us help on how to implement IAPs with physical goods. For example we would need to link an IAP to an account within our system and collect user data like name and address to send the physical content to. They did not provide us information on how to to this (as we haven't seen any apps out there on the App Store doing similar things) and if that would be allowed at all.
We wrote:
However, this leads us to a significant operational predicament. The in-app purchase system does not provide us with crucial customer information, specifically billing addresses, which are vital for us to deliver the physical components of our service. This gap in the process is not just an inconvenience; it is a critical flaw that hampers our ability to fulfill our commitments to our customers.
We require your immediate assistance and a practical solution to this problem. How can we gather the necessary shipping details within the constraints of your platform? This isn't just a minor detail; it's a fundamental requirement for our business to operate effectively.
Your prompt attention to this matter and a workable solution would be appreciated, as it is essential for us to continue offering our service on the App Store.
Has anyone experienced similar problems and knows how to deal with them?
Do you have any general suggestions on how we could solve the problems described?
Does Apple not understand our business model correctly or do we not understand Apple's guidelines correctly?
We would be very grateful for any help, as we are at our wit's end.
Got a question that I can't seem to find a conrete answer on.
If I have an app selling ebooks, and a website also selling the same ebooks, can users who purchase the ebooks on my website then view them for free in the app?
I have apple web payment integrated on website, and it work fine when i test it using real cards. I wanted to test it using apple TEST cards, so i invited SANDBOX test user from here https://appstoreconnect.apple.com/access/users/sandbox and logged in to test device using this test id. but it fails to start a merchant session.
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Net.Http.HttpClient.d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at Gateway.MobileWallet.Domain.ApplePay.Clients.RequestPaymentSession.ApplePayPaymentSessionClient.d__3.MoveNext() in
Hi Everyone,
my company developed an App for back pain. The app is designed for patients (end users) that can use it to do excercises to get some relief. Patients can purchase extra-exercises or services.
I want to explore the possibility that third parties (eg. Hospitals, Gyms, Assurances) can purchase the extra-contents on behalf of patients.
I know there is VPP but it is only for paid apps not for free apps with in-app purchase.
There is a way to give credit or voucher spendable only for my app?
any other suggestion?
I thank anyone who can help me
Hi, some day ago I got these webhook events for a subscription:
2024-01-06 10:40:47 SUBSCRIBED subtype INITIAL_BUY
2024-01-20 03:02:29 DID_RENEW subtype BILLING_RECOVERY
2024-01-20 03:52:08 DID_CHANGE_RENEWAL_STATUS subtype AUTO_RENEW_DISABLED
2024-01-20 10:41:03 DID_FAIL_TO_RENEW (no subtype was received)
When I get the subscription status form appstore server API, status is 1 (active). We don't have grace period enabled in our app. I'm not sure how to interpret this result; from our perspective we should remove access to the user.
Enviloment : TestFlight
AppleAccount : sandbox
The problem that is happening :
Unable to get receipt with storeKit.requestReceipt
Prerequisite :
The form to input ID and password is displayed even if the user is already logged in to AppleAccount (not displayed when normal).
The same operation is not reproduced by using the sandbox during debug builds.
- (void)requestReceiptWithBlocks:(ReceiptCallback)callback
{
self.receiptCallback = callback;
SKReceiptRefreshRequest *receiptRequest = [[SKReceiptRefreshRequest alloc] init];
receiptRequest.delegate = self;
/** When start() is executed, iOS displays the "Sign in to iTunes Store" dialog if you are not yet logged in to the iTunes Store */
[receiptRequest start];
}
storeKit.requestReceipt { success, receipt in
guard success, receipt != nil else {
if success {
// receipt nil
} else {
// requestReceipt failed
}
}
}
Does anyone know why the receipt would be in a state where it cannot be retrieved?
Thank you.
Hi everyone, we are trying to incorporate a usage-based payment system in our app, quite similar to how AWS charges users. It would ideally be a monthly recurring payment, but the amount charged would vary by user and by month.
Looks like we can't do this through in-app payments, so what is the best way to do this?
If we incorporate an external payment method like Stripe, would that be an issue during the app review process? We just can't seem to find a way to execute this through in-app purchase, and must go with another method. We would really appreciate an advice or past experience!
ERROR: 💰 Product purchase for '***' failed with error: Error Domain=RevenueCat.ErrorCode Code=2 "There was a problem with the App Store." UserInfo={source_file=RevenueCat/SKError+Extensions.swift:64, NSUnderlyingError=0x600000c91890 {Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x600000c68570 {Error Domain=ASDServerErrorDomain Code=1003 "No Token Available When Expected." UserInfo={NSLocalizedFailureReason=No Token Available When Expected.}}}}, readable_error_code=STORE_PROBLEM, NSLocalizedDescription=There was a problem with the App Store., source_function=asPurchasesError}
And, I have also tested with SwiftyStoreKit and encountered the same issue.
Description:
I am facing an issue with the in_app_purchase Flutter package, which is the official package for handling in-app purchases. After successfully making a purchase on iOS, the 'Purchased' stream is not firing as expected.
Steps to Reproduce:
Request a purchase by buying a consumable or non-consumable product.
Enter necessary credentials if required (e.g., email, password).
Click on Sign In.
Expected Results:
The 'Purchased' stream should fire after a successful purchase on iOS.
Actual Result:
The 'Purchased' stream is not firing after a successful purchase on iOS.
Bottom sheet to purchase the product is popping up again after the purchase is complete.
Environment:
Flutter version: 3.16.8 on channel stable
Package version: in_app_purchase 3.1.11
Operating System: iOS 17.2
Hello,
I am seeking advice on integrating a feature in our iOS app related to user subscriptions and account upgrades. Our current setup allows users to upgrade their subscription to a premium account level exclusively through our website. The app, as it stands, does not support in-app account upgrades. However, we aim to offer advanced services within the app to users who have upgraded their accounts through the website.
I'm interested in understanding the guidelines and best practices to follow for this scenario to ensure compliance with App Store policies.
Any insights, experiences, or suggestions from the community would be greatly appreciated.
Thank you!
Hi!
I wanted to know if my current subscribers will still get charged for their monthly/yearly subscription after removing the app for sale?
If so, how do I change the setting to make sure they won't get charged after closing down my app?
Thank you!
I have a problem with submitting my app to the AppStore. I have an app in the AppStore with currently OneTime Purchase. Now I want to add an InApp purchase to this app.
I have tested the app with a local StoreKit file (with synchronised AppStore In App Products) and everything works fine. But when I submitted this file to the store, it was not accepted. So I found out that I need to remove the local StoreKit file so that it uses the real AppStore data.
But my problem is, once I remove the StoreKit file, my purchase process gets stuck in the transaction process. So when I click on the in-app purchase button, I get the payment overlay and everything about the in-app purchase is displayed there. Name, price, details. Also a sandbox title says I am not in production.
As soon as I click on the "Buy" button, I have to log in with my sandbox user account that I have previously created in AppStore connect and also verify the email address by clicking on the link in the e-mail. Then the confirmation tone sounds, but after 4-5 seconds the overlay appears again (and again and again). The transaction remains in "in progress" status.
My question now, since everything worked fine with StoreKit? What could be the problem. I need to submit a new appVersion (which I am working on) with my first new in-app purchase. Could it be that the payment process is not working because the IAP is still in "under review" or "submitted for review"? Where could be a difference that StoreKit IAP works just fine, but sandbox does not work.
Thanks in advance for your help.
Created email accounts, created sandbox AppleId. Am not able to log onto it on my Ipad. With or without completing the two factor authentication levels, it is failing. I am sure of the password, but it says Can't sign on, failed to authenticate. Anyone else had this problem and figured out what could make it fail?
Hello,
I am looking forward to a really quick help. Thank you for taking time.
I have an app where I give my users monetary rewards based on the game of skills. I have integrated in-app purchases for users when they want to add an amount to my app to play this game of skill.
Now after the results, I would like to send them their monetary rewards to their Apple wallet based on the performance and rules.
Is there any way to pass these rewards to users' Apple wallets through in-app purchases?