StoreKit

RSS for tag

Support in-app purchases and interactions with the App Store using StoreKit.

StoreKit Documentation

Post

Replies

Boosts

Views

Activity

How to offer membership to a gym or club from the app
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.
0
0
312
Jan ’24
Offer code redemption over another offer code in subscription
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.
1
1
292
Jan ’24
iOS misleading users with payment notification timing
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!
1
0
653
Jan ’24
App rejected for not making in-app purchases, but the app region does not support IAP anyway
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.
2
0
383
Jan ’24
Seeking Guidance: Navigating In-App Purchase Guidelines for a Hybrid Digital-Physical Service
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.
0
1
379
Jan ’24
Sandbox test user web payment
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
1
0
851
Jan ’24
in-app purchase, how to purchase for third part
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
0
0
283
Jan ’24
Subscription status mismatch
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.
3
0
804
Jan ’24
There is a condition where receipts cannot be retrieved for test flight delivery.
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.
0
0
316
Jan ’24
How to receive usage-based payment on the app
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!
0
0
291
Jan ’24
In-App Purchase:No Token Available When Expected.What is this token?
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.
5
0
864
Jan ’24
In_app_purchase Flutter Package: Purchased Stream not firing after successful purchase on iOS
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
0
0
344
Feb ’24
Implementing Premium Services for Users Upgraded via Website in iOS App
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!
0
0
363
Feb ’24
Sandbox Testing Problems (StoreKit works fine)
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.
2
0
681
Feb ’24
Reward Distribution to users
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?
0
0
247
Feb ’24