This commit is contained in:
2025-12-16 16:03:14 +08:00
parent 4a474e9b44
commit dfbd5efe69

View File

@@ -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."
}
}
}