Skip to main content

Hi,

I’m currently trying to let users purchase an IAP on watchOS, but with the exact same code as on iOS (which works), I’m getting some errors (SDK version 4.2.1):

 

2022-04-21 14:05:00.526782+0200 Anime Manga Tracker Watch App WatchKit Extensionn338:26944] 9Purchases] - DEBUG: ℹ️ Make purchase called: purchase(sk1Product:payment:package:completion:)

2022-04-21 14:05:00.532433+0200 Anime Manga Tracker Watch App WatchKit ExtensionE338:26944] 8Purchases] - DEBUG: 💰 Purchasing product from package  - com.xxxxx.xxxxx.xxxx in Offering XXXXX

2022-04-21 14:05:00.534097+0200 Anime Manga Tracker Watch App WatchKit ExtensionK338:27113] nPurchases] - DEBUG: ℹ️ PaymentQueue updatedTransaction: com.xxxxx.xxxxx.xxxx 2000000012345678 () 2000000012345678 - 1

2022-04-21 14:05:00.553831+0200 Anime Manga Tracker Watch App WatchKit Extensiona338:27113] nPurchases] - DEBUG: ℹ️ Unable to load receipt, ensure you are logged in to a valid Apple account.

2022-04-21 14:05:00.554048+0200 Anime Manga Tracker Watch App WatchKit Extensionp338:27113] EPurchases] - DEBUG: ℹ️ Receipt empty, refreshing

2022-04-21 14:05:02.185744+0200 Anime Manga Tracker Watch App WatchKit Extensionc338:27112] KPurchases] - DEBUG: ℹ️ Unable to load receipt, ensure you are logged in to a valid Apple account.

2022-04-21 14:05:02.185908+0200 Anime Manga Tracker Watch App WatchKit Extension 338:27112] aPurchases] - WARN: 🍎‼️ Unable to load receipt, ensure you are logged in to a valid Apple account.

2022-04-21 14:05:02.186114+0200 Anime Manga Tracker Watch App WatchKit ExtensionT338:27112] hPurchases] - ERROR: 🍎‼️ The receipt is missing.

2022-04-21 14:05:02.186737+0200 Anime Manga Tracker Watch App WatchKit Extension 338:26944] ePurchases] - ERROR: 😿‼️ Unexpected backend error when posting receipt. Make sure you are on latest SDK version and let us know if problem persists.

 

The watchOS app is able to receive product info (I can see the price being fetched):

DEBUG: 😻 SKProductsRequest request received response

DEBUG: 😻 SKProductsRequest did finish

DEBUG: 😻 CustomerInfo updated from network.

 

I can’t find a lot of docs on watchOS implementation, is there anything different to the iOS side that needs to be done on my end? Thanks!

Hi Joost, did you manage to get anywhere with this?

We have a customer who is experiencing this and it’s hard to know how to support them.

Here’s some snippets from their logs

3:03:17.4430 📄:  💵🐱] ℹ️ GetCustomerInfoOperation: Finished
13:03:17.4430 📄: 1💵🐱] ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A61554ec05530479b903077d5eff6f2d0, 0 requests left in the queue
13:03:17.4430 📄: e💵🐱] ℹ️ GetOfferingsOperation: Started
13:03:17.4430 📄: g💵🐱] ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A61554ec05530479b903077d5eff6f2d0/offerings
13:03:17.4450 📄: 5💵🐱] ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:61554ec05530479b903077d5eff6f2d0/offerings
13:03:17.5940 📄: s💵🐱] ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:61554ec05530479b903077d5eff6f2d0/offerings (200)
13:03:17.5950 📄: n💵🐱] ℹ️ No existing products cached, starting store products request for: 5"edition.sixmonthly", "pro_one_time", "edition", "edition.monthly"]
13:03:17.5950 📄: o💵🐱] ℹ️ Found an existing request for products: i"edition.monthly", "pro_one_time", "edition.sixmonthly", "edition"], appending to completion
13:03:17.5950 📄: n💵🐱] ℹ️ GetOfferingsOperation: Finished
13:03:17.5960 📄: a💵🐱] ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A61554ec05530479b903077d5eff6f2d0/offerings, 0 requests left in the queue
13:03:17.5960 📄: d💵🐱] ℹ️ No existing products cached, starting store products request for: f"edition.sixmonthly", "pro_one_time", "edition", "edition.monthly"]
13:03:17.6360 📄: g💵🐱] 😻 Store products request finished
13:03:17.6360 📄: t💵🐱] 😻 Store products request received response
13:03:17.6370 📄: 3💵🐱] 😻 Offerings updated from network.
13:03:17.6370 📄: i💵🐱] 😻 Offerings updated from network.
13:03:17.6370 📄: 💵] Offerings: <Offerings {
13:03:53.2150 📄: 💵] restore
13:03:53.2190 📄: o💵🐱] ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:61554ec05530479b903077d5eff6f2d0
13:03:53.2200 📄: n💵🐱] ℹ️ Force refreshing the receipt to get latest transactions from Apple.
13:03:53.2240 📄: 💵🐱] ℹ️ SKReceiptRefreshRequest started
13:04:05.4250 🔴: u💵🐱] 🍎‼️ SKRequest failed: An unknown error occurred
13:04:05.4370 ⚠️: 💵🐱] 🍎‼️ Unable to load receipt, ensure you are logged in to a valid Apple account.
13:04:05.4370 🔴: 💵🐱] 🍎‼️ The receipt is missing.
13:04:05.4400 📄: .💵] restore callback nil, The receipt is missing.
13:04:23.8350 📄: r💵] restore
13:04:23.8390 📄: 💵🐱] ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:61554ec05530479b903077d5eff6f2d0
13:04:23.8390 📄: 💵🐱] ℹ️ Force refreshing the receipt to get latest transactions from Apple.
13:04:23.8430 📄: h💵🐱] ℹ️ SKReceiptRefreshRequest started
13:04:24.3340 🔴: e💵🐱] 🍎‼️ SKRequest failed: An unknown error occurred
13:04:24.3550 ⚠️: 💵🐱] 🍎‼️ Unable to load receipt, ensure you are logged in to a valid Apple account.
13:04:24.3550 🔴: o💵🐱] 🍎‼️ The receipt is missing.
13:04:24.3590 📄: f💵] restore callback nil, The receipt is missing.
13:04:29.7100 📄: q💵] purchase(Period(rawValue: 1))
13:04:29.7100 📄: 💵🐱] 💰 Purchasing Product 'edition' from package in Offering 'pro'
13:04:29.7130 📄: 💵🐱] ℹ️ Adding payment for product 'edition'. 0 transactions already in the queue.
13:04:29.7180 📄: 💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) updatedTransaction: edition 0
13:04:36.0860 📄: 💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) updatedTransaction: edition (An unknown error occurred) 2
13:04:36.0890 🔴: 0💵🐱] 🍎‼️ This product is already active for the user.
13:04:36.0910 📄: g💵🐱] 💰 Finishing transaction 'D18C9AAB-3FBC-4173-A750-281EB63665AD' for product 'edition'
13:04:36.0920 🔴: i💵🐱] 💰 Product purchase for 'edition' failed with error: Error Domain=RevenueCat.ErrorCode Code=6 "This product is already active for the user." UserInfo={NSUnderlyingError=0x17d29910 {Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSUnderlyingError=0x17dc7e50 {Error Domain=ASDServerErrorDomain Code=3532 "You’re currently subscribed to this." UserInfo={NSLocalizedFailureReason=You’re currently subscribed to this.}}, NSLocalizedDescription=An unknown error occurred}}, source_function=productAlreadyPurchasedError(error:fileName:functionName:line:), source_file=RevenueCat/ErrorUtils.swift:399, readable_error_code=PRODUCT_ALREADY_PURCHASED, NSLocalizedDescription=This product is already active for the user.}
13:04:36.0920 📄: r💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) removedTransaction: edition (An unknown error occurred) i"NSLocalizedDescription": An unknown error occurred, "NSUnderlyingError": Error Domain=ASDServerErrorDomain Code=3532 "You’re currently subscribed to this." UserInfo={NSLocalizedFailureReason=You’re currently subscribed to this.}] 2
13:04:36.0930 📄: l💵] fetchUser(thenFetchOfferings: false)
13:04:36.0950 📄: L💵🐱] ℹ️ Vending CustomerInfo from cache.
13:04:36.1080 📄: r💵] Purchaser info: <CustomerInfo:
13:04:36.1080 📄: p💵] Cache: free Date: nil
13:04:36.1080 📄: 💵] OG Version: -- OG Date: --
13:04:36.1080 📄: n💵] Subscriber Level: free Date: nil
13:04:47.3970 📄: =💵] purchase(Period(rawValue: 1))
13:04:47.3970 📄: c💵🐱] 💰 Purchasing Product 'edition' from package in Offering 'pro'
13:04:47.3990 📄: .💵🐱] ℹ️ Adding payment for product 'edition'. 0 transactions already in the queue.
13:04:47.4000 📄: 💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) updatedTransaction: edition 0
13:04:49.9700 📄: f💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) updatedTransaction: edition (An unknown error occurred) 2
13:04:49.9700 🔴: :💵🐱] 🍎‼️ This product is already active for the user.
13:04:49.9730 📄: :💵🐱] 💰 Finishing transaction '55A90E01-A27D-44E6-A91B-1F1F9C040315' for product 'edition'
13:04:49.9740 🔴: c💵🐱] 💰 Product purchase for 'edition' failed with error: Error Domain=RevenueCat.ErrorCode Code=6 "This product is already active for the user." UserInfo={NSUnderlyingError=0x17e15580 {Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSUnderlyingError=0x17e17a00 {Error Domain=ASDServerErrorDomain Code=3532 "You’re currently subscribed to this." UserInfo={NSLocalizedFailureReason=You’re currently subscribed to this.}}, NSLocalizedDescription=An unknown error occurred}}, NSLocalizedDescription=This product is already active for the user., readable_error_code=PRODUCT_ALREADY_PURCHASED, source_file=RevenueCat/ErrorUtils.swift:399, source_function=productAlreadyPurchasedError(error:fileName:functionName:line:)}
13:04:49.9750 📄: s💵🐱] ℹ️ StoreKit1Wrapper (0x17da2f60) removedTransaction: edition (An unknown error occurred) n"NSLocalizedDescription": An unknown error occurred, "NSUnderlyingError": Error Domain=ASDServerErrorDomain Code=3532 "You’re currently subscribed to this." UserInfo={NSLocalizedFailureReason=You’re currently subscribed to this.}] 2
13:04:49.9760 📄: o💵] fetchUser(thenFetchOfferings: false)
13:04:49.9780 📄: c💵🐱] ℹ️ Vending CustomerInfo from cache.
13:04:49.9910 📄: _💵] Purchaser info: <CustomerInfo:
13:04:49.9910 📄: t💵] Cache: free Date: nil
13:04:49.9910 📄: l💵] OG Version: -- OG Date: --
13:04:49.9910 📄: :💵] Subscriber Level: free Date: nil
20:27:20.5970 📄: p💵] restore
20:27:20.6180 📄: n💵🐱] ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:61554ec05530479b903077d5eff6f2d0
20:27:20.6180 📄: a💵🐱] ℹ️ Force refreshing the receipt to get latest transactions from Apple.
20:27:20.6210 📄: a💵🐱] ℹ️ SKReceiptRefreshRequest started
20:27:22.2010 🔴: 3💵🐱] 🍎‼️ SKRequest failed: An unknown error occurred
20:27:22.2200 ⚠️: .💵🐱] 🍎‼️ Unable to load receipt, ensure you are logged in to a valid Apple account.
20:27:22.2210 🔴: n💵🐱] 🍎‼️ The receipt is missing.
20:27:22.2250 📄: C💵] restore callback nil, The receipt is missing.
20:27:25.0020 📄: a💵] purchase(Period(rawValue: 1))

 


Hi @Lewis 

Nope, I decided just not to let people purchase from the Watch. I don’t remember things I tried or if I got it working in the end. Sorry!


Reply