In-App Purchase

RSS for tag

Offer extra content, digital goods, and features directly within your app using in-app purchases.

Posts under In-App Purchase tag

200 Posts

Post

Replies

Boosts

Views

Activity

In-App Subscription
Hi, I have a problem with StoreKit regarding in-app subscription purchases. When I upload the app to TestFlight and during the review process, it doesn’t work on a real device. However, it works fine on the simulator. I get the error: "Subscription unavailable" (see image). Does anyone know what might be causing this and how to fix it? Please help!
1
0
197
Mar ’25
To get the original_transaction_id for a specific period of time in bulk.
We are distributing an application using in-app-purchase with subscription. In order to expand customer support and more optimally timed marketing activities, We want to retrieve the billing status and number of billing users managed on the Apple side and regularly verify that the data we are aware of on the server side is up-to-date. Currently, the App Store Server API provides a way to retrieve status using individual original_transaction_id, but there seems to be no official way to retrieve original_transaction_id for a specific period at once. The same was also true for App Store Server Notifications. Is there a way to specify a period of time, the Apple ID of an app, etc., and obtain the original_transaction_id or transaction_id for a specific period of time?
0
1
151
Mar ’25
Issues with Testing Promotional Offers for Auto-Renewable Subscriptions (StoreKit 2)
We are in the process of implementing promotional offers for auto-renewable subscriptions in our app using StoreKit 2. For testing, we use a sandbox user alongside a new user on our platform. I can successfully purchase an Introductory Offer through the app. Once the user is eligible for a Promotional Offer (based on a previous purchase), we retrieve the Promotional Offer identifier and signature from our backend and display the offer. After initiating the purchase and having the user enter their Sandbox password, the transaction is added to the Payment Queue. However, it fails with the following error: Purchase failed error: invalidOfferSignature Additionally, the error returned is: "Purchase did not return a transaction: Error Domain=ASDServerErrorDomain Code=3903 "Unable to Purchase" UserInfo={NSLocalizedFailureReason=Unable to Purchase, client-environment-type=Sandbox, AMSServerErrorCode=3903, storefront-country-code=IND}" We are using StoreKit 2 APIs for this process. Has anyone encountered this issue when working with StoreKit 2, or found a solution to resolve it?
2
2
390
Mar ’25
How does Apple determine consumptionStatus for subscription refunds?
Hello, We are an app developer offering subscription-based services, and we want to better understand how Apple determines the consumptionStatus when processing refund requests for in-app subscriptions. Based on Apple’s documentation on subscription refund requests, we understand that the consumptionStatus value plays a key role in Apple’s refund decision-making process. However, the documentation does not provide a clear guideline on how much usage qualifies as consumptionStatus = 2 (partially used) vs. consumptionStatus = 3 (fully used). Our key questions: 1. Usage Threshold: Does Apple have a specific percentage of subscription duration (e.g., 20% of the subscription period) that determines whether a subscription is considered “fully used”? 2. Function-Based Usage: Does Apple prioritize certain types of user actions (e.g., unlocking premium content, engaging with subscription features) when evaluating consumptionStatus? 3. Best Practices: Are there recommended best practices to increase the credibility of our consumptionStatus = 3 submission to minimize unjustified refunds? 4. Refund Preference Impact: If we set refundPreference = 2 (deny refund), how much influence does it actually have on Apple’s decision? We aim to reduce unnecessary refunds while ensuring fairness to our users. Any official guidance or insights from other developers would be greatly appreciated! Thank you!
1
1
204
Mar ’25
In-App Purchase Grayed Out & Provisioning Profile Error
Hello, I’m facing an issue with enabling In-App Purchases (IAP) for my iOS app, and it’s causing provisioning errors during the build process. Issue: • In Apple Developer Portal → Certificates, Identifiers & Profiles, the In-App Purchase capability is checked but grayed out, so I can’t modify it. • In Xcode, under Signing & Capabilities, I don’t see In-App Purchase listed. • When trying to build, I get the following error: Provisioning profile “BillionMines_Dev_Profile” doesn’t include the com.apple.developer.in-app-purchase entitlement. • Automatic signing in Xcode fails with: Xcode failed to provision this target. What I Have Tried: 1. Verified that my App ID is explicitly defined (not a wildcard ID). 2. Regenerated and downloaded a new Provisioning Profile, ensuring it matches my app. 3. Confirmed that In-App Purchase is enabled in App Store Connect under Features. 4. Cleaned the build folder and restarted Xcode. 5. Manually added com.apple.developer.in-app-purchase to my .entitlements file. Questions: • Why is the In-App Purchase option grayed out in Certificates, Identifiers & Profiles? • How can I ensure my provisioning profile includes the com.apple.developer.in-app-purchase entitlement? • Are there additional steps required to fully activate In-App Purchases? Any help would be greatly appreciated! Thanks in advance.
2
0
507
Mar ’25
app signatures do not appear in sandbox
I've been trying to make my app available on the App Store for a month now, but I can't because the signatures I created don't appear in the sandbox app. I did all the configuration in the store and in the app. I tested the same code in another app with signatures and it was loaded, but the signature for that specific app doesn't appear. I've tried contacting Apple support, but they can't help me. It almost seems like it's on purpose. I'm treated like crap and they don't even give me an explanation about what's happening. Can anyone help me?
0
1
152
Mar ’25
Cancel subscription not working in TestFlight
Hi, I have deployed my app on Test Flight, I have two subscriptions, monthly and yearly. User can have one of them at a time and upgrade, downgrade to the other. Upgrade, downgrade, cancel from the Apple Settings worked fine in the sandbox environment when testing locally. Now when I have deployed the app on TestFlight, I was able to purchase the subscription successfully from my app. Now when I want to cancel my subscription from the Apple Settings it gives me the following error after confirming cancellation, 'Your request is temporarily unable to be processed. Please try again later.' Also the other subscription offer (yearly) is also not shown to which I could upgrade, even though in the sandbox I was able to upgrade downgrade from the settings. Another thing I have noticed is that the app Icon or name is not shown anywhere in settings with the subscription. Instead of app icon only empty square is shown. Even though app icon shows fine everywhere else. Can someone please help me figure out this issue?
21
15
4k
Mar ’25
How to remove an In-App Purchase from App Store Connect that's "In Review"
Our app is getting rejected because they can not find our lifetime offering in app purchase. We added it as a test, but now would like to remove it from App Store connect, but in the UI on the website, I see no option to remove it. It has been "In Review" for a while. We marked it as "Remove from Sale", but we are still getting rejected. Any advice?
1
0
292
Mar ’25
in app purchase error
I just want to add a in-app purchase project to my app, steps: 1.i create a product in App Store Connect ,the product id is "com.buy.once.me" 2.in Xcode,i create " SubscriptionStoreView(productIDs:["com.buy.once.me"])" in a view 3. the view show "subscription unavailable the subscription is unavailable in the current storefront" I don't know what the problem is ,anyone help me,thanks
1
0
352
Mar ’25
Provisioning Profile Missing In-App Purchase Entitlement (com.apple.developer.in-app-purchase)
Hi everyone!, I would love your help with this please as I have been stuck for days with no solution. Issue: I'm trying to enable In-App Purchases (IAP) in my app, but my provisioning profile does not include the com.apple.developer.in-app-purchase entitlement. When I attempt to build in Xcode, I see the following error: Provisioning profile "iOS Team Provisioning Profile: org.thewhiteowl.mindflow" doesn't include the com.apple.developer.in-app-purchase entitlement. I've already verified my Apple Developer account, and Apple Support confirmed that everything looks correct from their end. Steps Taken So Far: Verified In-App Purchases is Enabled in the Apple Developer Portal under Certificates, Identifiers & Profiles → Identifiers. Accepted All Agreements in App Store Connect → Agreements, Tax, and Banking (everything is marked Active). Created a New Provisioning Profile Manually: . Go to developer.apple.com . Navigate to Certificates, Identifiers & Profiles . Click "+" to register a new provisioning profile . Choose App Store Connect → Click Continue . Select App ID → MindFlow App (PM7JVFLCVC.org.thewhiteowl.mindflow) → Click Continue . Select Certificate → The White Owl LLC (iOS Distribution) (Valid until Feb 22, 2026) → Click Continue . Enter Provisioning Profile Name: "MindFlow Distribution" → Click Generate . Download the profile and inspect the Entitlements section ❌ The In-App Purchase entitlement is missing (com.apple.developer.in-app-purchase does not appear). Additional Troubleshooting: . Tried regenerating the provisioning profile multiple times . Deleted & reinstalled Xcode completely .Ensured App ID is Explicit (not Wildcard) . Tried refreshing App ID capabilities by toggling other entitlements . Checked for misconfigurations in Expo and EAS (using Expo.dev for deployment) Questions: Why is the In-App Purchase entitlement missing from the generated provisioning profile? Is there a way to force the entitlement to appear? Could this be an issue with the Apple Developer Portal, and if so, is there a workaround? Any help or insights would be greatly appreciated! 🚀
2
0
438
Mar ’25
InApp purchase get stuck in paymentQueue purchasing status.
Some of my users reported they can not completed the purchase . According to the logs and screen captures . Their purchase progress's last status are "purchasing" func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { .... .... case .purchasing: // 处理正在购买的情况 //print("购买中"); AppDelegate.log.debug("paymentQueue purchasing"); LoadingAlert.shared.setText(text: "购买中".localized()) .... After this ,It neither entered any error branch nor prompted the user to confirm the purchase or enter a password, but simply stopped here. There are no other purchase-related logs, and the program is still running normally. At the same time, other users are able to complete their purchases without any issues. However, there have been 4-5 users recently who reported problems with purchasing. What could be the possible reasons? In my local environment, I repeated the test many times, including using sandbox users from different regions and real Apple IDs, and everything worked fine. // // Payment.swift // RadialMenu // // Created by pat on 2023/6/26. // import Foundation import StoreKit class Payment:NSObject,SKProductsRequestDelegate,SKPaymentTransactionObserver{ func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { for transaction in transactions { AppDelegate.log.debug("paymentQueue transaction product = \(transaction.payment.productIdentifier) state = \(transaction.transactionState)"); //let productID = transaction.payment.productIdentifier switch transaction.transactionState { case .purchased,.restored: if(transaction.transactionState == .purchased){ AppDelegate.log.debug("paymentQueue purchased"); LoadingAlert.shared.setText(text: "已购买".localized()) } if(transaction.transactionState == .restored){ LoadingAlert.shared.setText(text: "已恢复".localized()) AppDelegate.log.debug("paymentQueue restored"); } //} break; case .failed: AppDelegate.log.debug("paymentQueue failed "); if let error = transaction.error as? NSError { // 获取错误代码和描述 let errorCode = error.code let errorDescription = error.localizedDescription AppDelegate.log.debug("paymentQueue Transaction failed with error code: \(errorCode), description: \(errorDescription)") } queue.finishTransaction(transaction) LoadingAlert.shared.hideModal(); // 处理购买失败的情况 // 提供错误信息给用户 //print("购买失败"); alertRetry(); break; case .deferred: AppDelegate.log.debug("paymentQueue deferred"); LoadingAlert.shared.setText(text: "购买延迟".localized()) // 处理交易延迟的情况(仅限家庭共享) break; case .purchasing: // 处理正在购买的情况 //print("购买中"); AppDelegate.log.debug("paymentQueue purchasing"); LoadingAlert.shared.setText(text: "购买中".localized()) break; @unknown default: AppDelegate.log.debug("paymentQueue nknown default\(transaction.transactionState)"); break } } }
1
0
318
Mar ’25
Duplicate In-App Order with two Different Transaction ID
User Initiated a Single Consumable Purchase but Was Charged Twice A user initiated a single in-app purchase for a consumable item, but they were charged twice. Both transactions have the same purchase token. Additional details: After the user successfully completed the in-app purchase, the completeTransactions callback was triggered again. This was called at app launch using SwiftyStoreKit.completeTransactions to finish any pending transactions. Could this be causing the duplicate charge? Any insights would be appreciated.
0
0
204
Mar ’25
Question about App Store Review Process and Payment Policy for an Internet Management App
Hi everyone, I’m developing an app for managing internet services, which includes features like controlling modems, paying internet bills, purchasing internet packages, buying cameras, subscribing to FSafety (modem management), UltraFast (boosting internet speed for gaming), and selling health-related devices like blood glucose monitors, as well as other telecom-related products. I have some questions about Apple’s review process and payment policies: Do features like paying internet bills, buying internet packages, purchasing cameras, subscribing to FSafety and UltraFast violate any of Apple’s policies (App Store Review Guidelines)? If my app doesn’t violate any policies, how would Apple charge for these transactions, and what is the fee structure? If I use an external payment gateway (not Apple’s) for transactions like paying bills or buying products, would I need to provide additional documentation for my app to be approved on the App Store? What is the review process for apps with external payment features? Is there anything special I need to do when submitting the app to the App Store? I would appreciate any insights from those who have experience with developing apps that include payment functionality. Thanks so much!
1
1
292
Mar ’25
How to validate Streamlined Purchasing with storekit 2
users download app with Streamlined Purchasing ,but the logic of checking subscription doesn't work. there the code: func checkSubscriptionStatus() async { for await entitlement in Transaction.currentEntitlements { guard case .verified(let transaction) = entitlement else { continue } if transaction.productID == monthlyProductID || transaction.productID == yearlyProductID { if transaction.revocationDate == nil && !transaction.isUpgraded { let activeSubscribed = transaction.expirationDate ?? .distantFuture > .now if activeSubscribed { hasActiveSubscription = activeSubscribed // other operation } } } } }
0
0
235
Mar ’25
IAP - Setup 3yr and 5 yr one time plans?
Having a hard time understanding what to use to setup membership plans for a social app (think tinder) that has 3 and 5 years access for one-time use (or even if we allow multi-use but one at a time). The maximum subscription length I see is 1 year so that is out. For non-consumable it says that is lifelong which is problem as plan lengths are 3 and 5 years access only. We are not giving life long access with these plans. So consumable seems to allow the time duration IPA needed. Is this correct? An if it matters this is multi-platform app where users login with their email/pass to android / iOS / our website.
0
0
186
Mar ’25