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
Sort by:

Post

Replies

Boosts

Views

Activity

Price Locale not available in Product
In the latest Product object we are unable to get the price locale of the current product. Even though the display price string available with currency symbol, we need to display discount price of current product by comparing with other products. Earlier in SKProduct we had price locale property to achieve this.But in latest Product object we are missing this. Is there a way to get the price locale of the current storefront?. There is a countryCode property in Storefront enum. But there is no option to create locale using country code.
3
0
3.5k
Sep ’23
TestFlight App uses wrong sandbox account for payment
I'm using TestFlight to test an app with payment/subscription functionality. I created sandbox accounts in AppStore Connect accordingly to be able to test the subscriptions. I'm logged in with the sandbox account. When I try to subscribe in the App the wrong account (this is my actual real AppleID) is used for the subscription although it is recognized that this is just a sandbox subscription. I tried: logging off/on into the sandbox account creating a totally new sandbox account trying to trigger the payment with no logged in sandbox account The result is always: in the payment popup it is stated that the purchase account will be my original AppleID and not a sandbox account. How can I switch the accounts? Is this a bug at Apple's side somehow?
17
10
16k
Jan ’24
The bank identification code you selected does not match the corresponding part of your IBAN.
I'm stuck in "Add bank account" step when filling User informations in Agreements, Tax, and Banking for Paid Apps. When I try to save, i get the error The bank identification code you selected does not match the corresponding part of your IBAN. I checked many times, all of my informations are valid (Valid IBAN, Account number same as given by my bank). I even tried to take every part of my IBAN as account number because I was desperate, nothing changed. I'm with Qonto bank. What am I doing wrong ?
2
1
2k
Nov ’23
Apple immediate trial cancellation
When I subscribe for a trial period in Apple products like: Apple Music Apple TV Apple News etc. If I want to cancel my subscription via App Store I see a message: If you cancel, you will immediately lose access to Apple Music and the remainder of your free trial. Нou cannot reactivate this trial At the same time for 3d party developers when a user clicks Cancel Free Trial alert says: If you end your trial now, you will still have access to it until some date So my question is how can I replicate the same logic for my app. I've googled a lot but didn't find anything. I believe it should be possible to do since Apple apps are just like any other app distributed via App Store. If not - it looks like unfair competition because users will more likely postpone trial cancellation for Apple products and forget about this which will result in charging their money.
3
3
2.0k
Aug ’23
How to hide an auto-renewal subscription from App Store manage subscriptions page
I've created 2 auto-renewing products, one with a cheaper price and one with a more expensive price. I show the cheaper product for legacy users (users who have been on the app for a long time). The problem here is that when a user goes to the App Store and manages their subscription there, they are able to see the cheaper option and subscribe to it. Is there a way I can hide the cheaper product from being purchased through the App Store and only allow them to be purchased from my app? I saw the Cleared For Sale option on the product but when I tried unchecking the box, it made it sound like after users' subscription ends, they will no longer continue auto-subscribing to the cheaper option. Or am I misunderstanding Cleared For Sale?
3
1
2.7k
Oct ’23
In-App Purchase consumable can be purchased just once
I am making an app in SwiftUI using an In-app purchase. In this app, the user should be able to buy points as many times as he wants, so I have used consumable products (in the app store connect). But when I've tried to buy them once again I got the information "This In-App purchase has already been bought. It will be restored for free". I've already searched for a way how to do it but none of the ideas worked for me. Here is my StoreManager class: import Foundation import StoreKit import SwiftUI class StoreManager : NSObject, ObservableObject, SKProductsRequestDelegate { @EnvironmentObject var authViewModel: AuthViewModel @Published var transactionState: SKPaymentTransactionState? @Published var myProducts = [SKProduct]() var request: SKProductsRequest! func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { print("Did receive response") if !response.products.isEmpty { for fetchedProduct in response.products { DispatchQueue.main.async { self.myProducts.append(fetchedProduct) } } for invalidIdentifier in response.invalidProductIdentifiers { print("Invalid identifiers found: \(invalidIdentifier)") } }else{ print("it's empty") } } func getProducts(productIDs: [String]) { let request = SKProductsRequest(productIdentifiers: Set(productIDs)) request.delegate = self request.start() } func request(_ request: SKRequest, didFailWithError error: Error) { print("Request did fail: \(error)") } func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { for transaction in transactions { switch transaction.transactionState { case .purchasing: transactionState = .purchasing break case .purchased: print("purchased") queue.finishTransaction(transaction) transactionState = .purchased break case .restored: print("restored") transactionState = .restored queue.finishTransaction(transaction) break case .failed, .deferred: queue.finishTransaction(transaction) transactionState = .failed break default: queue.finishTransaction(transaction) break } } } func purchaseProduct(product: SKProduct) { if SKPaymentQueue.canMakePayments() { let payment = SKPayment(product: product) SKPaymentQueue.default().add(payment) } else { print("User can't make payment.") } } func restoreProducts() { SKPaymentQueue.default().restoreCompletedTransactions() } } And I am simply using getProducts with onAppear, and purchase product on button's action. Please help me or if an answer to a similar question already exists send me a link to that thread.
3
0
1.8k
Oct ’23
Is transactionId unique?
I want to track subscriptions of multiple applications and need to choose unique key. Can transactionId from app1 match somehow transactionId from app2? If yes, then Is it possible situation: app1 and app2 have products with same productId (e.g. "com.subscription") and have transactions with same transactionId? So should I use key (appAppleId, productId, transactionId)? (It would be more convinient to use transactionId, but I am not sure about uniqueness)
2
0
1.1k
Sep ’23
Offer codes for non-renewing subscriptions?
Hello, At https://developer.apple.com/documentation/storekit/skpaymentqueue/3566726-presentcoderedemptionsheet Apple describes a way to enables users to redeem subscription offer codes. Unfortunately according to https://help.apple.com/app-store-connect/#/dev6a098e4b1 this only seems to relate to auto-renewable subscriptions. Is that right? Is there also a way to offer codes for non-renewing subscriptions? Thank you so much!
2
0
1.3k
Sep ’23
Wrong price for in-app purchases
There is an issue with the price-setting on in-app purchases. The interface for setting the price of an IAP is out of sync with what is actually set. For instance, I changed the price to $6.99 and in the app it displayed $7.99. Later I changed it to $5.99 and the app displayed $6.99. I think the frontend is setting the wrong value in the backend (database).
24
6
9.5k
Oct ’23
Redeeming code stucks very often after pressing "Redeem offer code"
Hello, we are facing an issue, that the Code Redemption Sheet is not continuing correctly. Sometimes its just disabling the "Redeem" button and nothing happens for a while. After a while the button gets enabled again and you can press the button again. Sometimes its working then, sometimes not. Furthermore after the button action works and the payment method was chosen, the same issue can happen again. Its doing nothing for a while and you have to start again. The app has the target SDK iOS 14 and uses SwiftUI. We just display the Code Redemption Sheet by using this snippet: SKPaymentQueue.default().presentCodeRedemptionSheet() The screenshot show the "stuck" behavior. The button is disabled and nothing is happening for a while. The code itself is fine and it is working. Best regards, Sebastian
30
17
7.7k
Jan ’24
Where can I get used Offer Codes from?
I would like to programmatically keep track of offer codes that have been used. I just configured a Test Offer Code (Reference name), which contains 500 codes (Offer Codes) to buy a 1-month subscription for 0,49€. I was able to redeem the code and everything works, but I was expecting to receive the used code. Instead I received the Reference name in the payload from the App Store Server Notification in the field offer_code_ref_name="Test Offer Code". (expected was sth like offer_code_ref_name="JFFDS61SBJDBJ5BXJS4BX") I would be able to identify the Reference name by the code, if it was provided, because I have the following table in my app's backend: reference_name | code | url | expires_at | used | reserved Test Offer Code | xadz | zzz | 31-07-2022 | t | f Test Offer Code | asdf | *** | 31-07-2022 | f | f The used code doesn't seem to be included in the latest receipt. How can I obtain it? Can I somehow call App Store Connect API? Thanks
5
0
2.0k
Apr ’24
Not receiving Refund notification from app store server api
Hi, I am creating an app which provides in-app purchases to users, currently I am in testing phase of the purchase functionality and facing an issue regarding refunds. On upgrading a product that I am subscribed to (all products are auto-renewable subscriptions), I am receiving the UPGRADE notification type but I haven't yet received a REFUND notification type as the documentation suggests. I am using app store server-to-server Notifications 2.0+ with node.js as backend, I am receiving all the types of notifications just not the REFUND notification type.
4
0
858
Oct ’23
Affiliate Platforms for iOS apps?
I want pay commissions to partners that promote our apps. So if they write a review on their website and a user clicks on the link to the App Store and buys a subscription, I want to know that it originated so I can pay them the commission. Are there any Affiliate Marketing Platforms that support App Store sales? Is this even possible to track the origin of a sale through the App Store? Is there another way to track sales originating from promotion partners?
4
2
3.1k
Aug ’23
Please fix offer codes and allow testing in test flight
The current state of testing promotional codes in IOS is not developer friendly in the slightest. I have been trying to implement and test promo codes for a couple months now, while having the store kit integration helps slightly to mimic offer code redemption there is no friendly way of testing offer codes in test flight. I have it implemented with presentCodeRedemptionSheet() it seems the easiest way to test the codes is release my app to production create a 3-day promo which is the minimum amount of days that can be set, then wait 3 days before I can test again in different ways. One of my colleagues who is not a developer also wanted to test this feature and it did not work for her. Unfortunately it was a month long promo code she had redeemed so will have to wait till September to see if this is fixed for her now. I have also must note the fact the code redemption sheet and setting up payments in apple all together is a buggy mess. Starting out I added my card via apple pay thinking this would be enough to go through the redeem code process. Then upon entering my code it would show the dialog to verify with touch ID along with my payment details and even a picture of my card. After verifying, it then kept showing a pop up that I must include payment information which I already had added via apple pay. In the end to fix this I had to remove the payment method restart the device, add the payment method again then restart the device again. Another issue I bumped into is when you press redeem the "redeem offer" button is disabled but nothing happens for a while until it appears to timeout and you have to try again until it eventually works. The final annoyance I experienced was creating the offer code for my subscription and immediately trying to redeem it apple said the offer expired even though i set it to the 31st of August and the date was the 2nd. Only way to fix this was once waited and keep trying banging your head against the wall until it eventually works. In summary, I hope apple have a review of their offer code redemption process and make it more developer friendly and implement a way of testing within test flight whether it use live offer through test flight or include a new section to add test offer codes for subscriptions.
2
3
2.0k
Jul ’23
Dynamic Pricing and in-app purchases
My app is essentially a digital marketplace where users can set their prices and sell digital products to other users. I read the App Review policy and found out that I had to implement in-app purchases if I wanted to sell digital products on iOS. In the process of figuring out how this was going to be implemented, I realized that in-app purchase items have to be created ahead of time. This means dynamic pricing is not possible, so what do now? Is there not a way to programmatically create in-app purchases? If there is not a way to do this, and I cant use my own payment processor, what is the way forward?
1
2
981
Sep ’23
Can't manage my sandbox account
Hi, I can't get into "manage" sandbox account. I either get to a screen to put my password in. Here there is no way to click "next" or "login". (I have tried pressing "enter" on my keyboard to no effect). Or I get directly into "Cannot Connect" page. I have tried this two days in a row. I have tried turning it off and on again. I have tried logging out and in. Device: iPhone 13 pro max, iOS: 16.0.3 (also tried the version before this)
64
10
21k
Oct ’23