From dfbd5efe693d79525e7b0a6f749ac76d9bfc4545 Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Tue, 16 Dec 2025 16:03:14 +0800 Subject: [PATCH] 2 --- .../Pay/StoreKit2Manager/KBStoreKitBridge.swift | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/keyBoard/Class/Pay/StoreKit2Manager/KBStoreKitBridge.swift b/keyBoard/Class/Pay/StoreKit2Manager/KBStoreKitBridge.swift index b7aa7a6..ed92921 100644 --- a/keyBoard/Class/Pay/StoreKit2Manager/KBStoreKitBridge.swift +++ b/keyBoard/Class/Pay/StoreKit2Manager/KBStoreKitBridge.swift @@ -56,7 +56,7 @@ final class KBStoreKitBridge: NSObject, StoreKitDelegate { self.verifySignedPayload(payload, completion: completion) } else { await MainActor.run { - completion(false, "Unable to obtain transaction payload.") + completion(false, self.failureMessage(for: productId)) } } } catch { @@ -119,4 +119,18 @@ final class KBStoreKitBridge: NSObject, StoreKitDelegate { private func fetchPayload(for productId: String) async -> String? { return manager.consumeRecentPayload(for: productId) } + + @MainActor + private func failureMessage(for productId: String) -> String { + switch manager.currentState { + case .purchaseCancelled(let id) where id == productId: + return "Purchase cancelled." + case .purchasePending(let id) where id == productId: + return "Purchase pending approval." + case .purchaseFailed(let id, let error) where id == productId: + return error.localizedDescription + default: + return "Unable to obtain transaction payload." + } + } }