StoreKit

RSS for tag

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

StoreKit Documentation

Post

Replies

Boosts

Views

Activity

Including property list file in app bundle
I try to set up auto-renewable subscriptions. I learned I need to add in my app bundle a file like this: I wasn't successful. I don't know how to access my app's bundle and where it is located. I learned too, placing the file at an incorrect location could result in strange behaviour of my app or even in damage. So I am very careful Who can help? Best regards, Gerhard
0
0
412
Feb ’24
how can manage In app purchase for selected courses with single payment
We have 5 subcourses like below subcourse1 - 10RS subcourse2 - 20RS Sucourse3- 5RS subcourse4- 11 RS supcouse5 - 12RS If the user selected sourcouse1 and subcourse3 and chose external gateway then we can easily take 15rs payment from external gateway (for any combination of selection of subcourses). Now if user selected subcourse1 , subcourse2, subocourse4 and chosen in app purchase option now we have to take payment of 41rs together. this is not possible unless we create any sku of combination of subcourse1 , subcourse2 and subcourse4. (practically we can create all sku combination for 5 sub courses) for subcourse1, subcourse2 and subcourse3 there are possible combination are subcourse1 subcourse2 3.subcourse3 4. subcourse1 and subcurse2 5. subcourse1 and subcourse3 6. subcourse2 and subcourse3 So we need to create 5 sku in app purchase for taking payment for all user selection combination Now if we have a total of 10 subcourses then there will be multiple combinations (total 3,628,800) . it is not practical to create sku for all 3,628,800 combination please suggest any way to handle my use case or should We prefer external gateway?
0
0
255
Feb ’24
Manage Subscriptions
Hi, I'm now developing an app that uses purchase. I would like to create subscriptions for 3 and 6 months. The price should be €8.99 or €6.99 per month. That means you pay a total of €26.97 or €41.94 My problem is you can't enter these prices €26.97 and €41.94. How can I do that? thanks for any help rtko
2
0
267
Feb ’24
Tax on IAP with US government
We have the following questions about tax on in-app purchase: Does the transaction fee we pay to apple store already include taxes imposed by the US government? If taxes are not included, how do we handle tax matters related to the U.S. government, and how to proceed with payment? Thank you for your understanding.
3
0
367
Feb ’24
Is it possible to issue a refund for the upgraded subscription and then request a refund for the pre-upgrade subscription?
Hi, I have a question about Apple subscriptions. It is my understanding that when a user upgrades, the subscription prior to the upgrade is already prorated and partially refunded. Is it possible to issue a refund for the upgraded subscription and then request a refund for the pre-upgrade subscription? The server notifications I received were as follows purchase A upgrade A -> B A would have already been prorated and partially refunded refund B Has a revocationReason / revocationDate expired B refund A - should have already been prorated and partially refunded, but if the user requests another refund, will it be given? no revocationReason / revocationDate My guess is no because it's already in revoke status. refund reversed A This may not be present
0
0
553
Feb ’24
Advanced Purchase of 3.1.3(e) Goods and Services Outside of the App
Hi There, I'm trying to understand the limitations we may have for an app we are developing. We have a coffee shop app, which would like to offer of a deal - example: a monthly coffee subscription, for $20 you get 10 black coffees for the month which can be redeemed in either our web or mobile apps during the set duration. This is not an in-app purchase, but one that will end up with physical coffee, though it will be received over a period of time. Do we know if it's okay to use a webview to link to the subscription page for managing their coffee subscription (handled outside of IAP as it is a physical good)? They would add their payment info the same way they already do with other integrations like square or stripe payment forms, and then we link them to the actual payment site. I see some things about not even giving the option to show the link or tell the customers what the link is if they want to investigate the option which would be very difficult for the customer to manage. We want a good experience. The guideline itself says "you must use purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry." Does anyone see an issue with the planned approach? I see the different lawsuits with EPIC and what not and we don't to end up with a rejected app if we can avoid it.
0
0
553
Feb ’24
In-App Subscription - How do we get paid?
Hey Everyone, I have an app running in-app subscriptions through RevenueCat. I am getting paid by Google regularly, but Apple is sitting on our money. I can see about 4 invoices since October last year (When the app went live). Am I meant to download those and send them back to Apple? Could this be why we aren't getting paid, and why isn't Apple just sending the money through, given we have setup banking and agreements correctly? Michael
3
0
385
Feb ’24
Apple 30% Apply to Recreational Sports?
Would registering for a physical sporting event get hit by the 30% IAP fee? Spots are typically limited, so the app just helps coordinate signups, so that players don't show up to a completely booked session. I'm also wondering if I can allow the user to pre-fund their account, for example with $30, so that they can sign up a $10 session and still have a balance of $20 in their account to sign up for more sessions.
0
0
282
Feb ’24
StoreKit SDK
Good day! I have a problem with the presentCodeRedemptionSheet method. The problem is that when the sheet for entering the promotional code appears, I fill in the field with the promotional code and when I click the Redeem Code button, nothing happens, the button becomes inactive for some time, but nothing else happens, the promotional code is not applied. However, this behavior occurs every now and then, that is, to put it simply, this flow works only 1 time out of 5 times, and then not always. Please tell me, has anyone encountered this problem before?
0
0
391
Feb ’24
Do I have to use In-App Purchasing?
So in my app users have an avatar and there is some functionality where users can use their own face scanned 3d model instead of the default avatar head. Through a third party app our users send us images so the 3d model can be generated (for a fee). Once the face scan is generated we assign it to the user's account where they can use it during play. The problem with using In-app-purchasing (IAP) in this instance is that the this is a custom feature that requires the user to take action on a third party app to complete the process anyway. It would be a hassle to have to make the user pay with IAP, then go outside the app to send their images, and once the model is generated (takes a few days) hope it was assigned to their proper account. If I did it where the payment, 3d model generation, and assigning the model to the user took place outside the app would that be a violation of Policy 3.1.1? Policy 3.1.1 If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc.
0
0
260
Feb ’24
Issues with StoreKit2 and TestFlight
Transaction.updates When testing on TestFlight, Transaction.updates emits payments that occur on the same device (usually within 1min after payment is finished), contradicting the docs: The asynchronous sequence that emits a transaction when the system creates or updates transactions that occur outside of the app or on other devices. Transaction.unfinished When testing on TestFlight, Transaction.unfinished contains finished payments from a different device (same App Store account). Docs: A sequence that emits unfinished transactions for the user. Both issues do not happen when testing with Xcode. Xcode 15.2, iOS 17.3, 17.4
0
0
455
Feb ’24
SubscriptionStoreView how to handle the Cancellation Button
Hi All, I use the SubscriptionStoreView and it displays a cancellation button in the upper right corner. How do I set a value of a local variable and dismiss the SubscriptionStoreView when the user clicks the cancellation button? Right now it seems as if the cancellation button is disabled and nothing happens when I press the cancellation button. Any help is appreciated. Regards Thomas S
1
0
434
Mar ’24
Am I required to use in-app purchases for Subscriptions on my app? it has premium content after subscrition
Apple has specific guidelines regarding the use of in-app purchases versus other payment processors in your app. According to these rules, if your app facilitates the purchase of digital items such as credits, it is mandated to utilize in-app purchases. On the other hand, for apps that involve the sale of real-world goods and services, Apple requires the use of a different payment processor. in my case i am providing subscriptions only and members with paid subscription have more visibility over content. can i use a third party payment gateway like stripe in my case ??
0
0
374
Mar ’24
Encode purchase payload as JSON and pass to request.httpBody
Hi All, I have this code and I would like to send the payload of the completed purchase to my server. How to do that? Regards Thomas S ` SubscriptionStoreView(...) .onInAppPurchaseCompletion { product, result in if case .success(.success(let transaction)) = result { print("Purchased successfully: \(transaction.signedDate)") // this looks good in Xcode // Pass payload of transaction to my server let url = URL(string: "... my server ...")! var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = ???? // how do I pass the payload of the transaction to the httpBody request.setValue("application/json", forHTTPHeaderField: "Content-Type") let task = URLSession.shared.dataTask(with: request) { data, response, error in let statusCode = (response as! HTTPURLResponse).statusCode if statusCode == 200 { print("SUCCESS") } else { print("FAILURE") } } task.resume() } else { print("Something else happened") } } `
2
0
445
Mar ’24