From 9b1fb411aea815655ab0695f23214f0ee072b76b Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Fri, 6 Dec 2024 10:56:48 -0800 Subject: [PATCH] CardClient analytics audit Co-authored-by: Suraj Dhopati --- Sources/CardPayments/CardClient.swift | 34 +++++++++++++-------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Sources/CardPayments/CardClient.swift b/Sources/CardPayments/CardClient.swift index d9195a3d..65e475ca 100644 --- a/Sources/CardPayments/CardClient.swift +++ b/Sources/CardPayments/CardClient.swift @@ -45,7 +45,7 @@ public class CardClient: NSObject { /// if it fails, `CardVaultResult will be `nil` and `error` will describe the failure public func vault(_ vaultRequest: CardVaultRequest, completion: @escaping (CardVaultResult?, CoreSDKError?) -> Void) { analyticsService = AnalyticsService(coreConfig: config, setupToken: vaultRequest.setupTokenID) - analyticsService?.sendEvent("card-payments:vault-wo-purchase:started") + analyticsService?.sendEvent("card-payments:vault:started") Task { do { let result = try await vaultAPI.updateSetupToken(cardVaultRequest: vaultRequest).updateVaultSetupToken @@ -56,7 +56,7 @@ public class CardClient: NSObject { self.notifyVaultFailure(with: CardError.threeDSecureURLError, completion: completion) return } - analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge-required") + analyticsService?.sendEvent("card-payments:vault:challenge-required") startVaultThreeDSecureChallenge(url: url, setupTokenID: vaultRequest.setupTokenID, completion: completion) } else { let vaultResult = CardVaultResult(setupTokenID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false) @@ -99,7 +99,7 @@ public class CardClient: NSObject { /// if it fails, `CardResult will be `nil` and `error` will describe the failure public func approveOrder(request: CardRequest, completion: @escaping (CardResult?, CoreSDKError?) -> Void) { analyticsService = AnalyticsService(coreConfig: config, orderID: request.orderID) - analyticsService?.sendEvent("card-payments:3ds:started") + analyticsService?.sendEvent("card-payments:approve-order:started") Task { do { let result = try await checkoutOrdersAPI.confirmPaymentSource(cardRequest: request) @@ -113,19 +113,17 @@ public class CardClient: NSObject { return } - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:challenge-required") + analyticsService?.sendEvent("card-payments:approve-order:challenge-required") startThreeDSecureChallenge(url: url, orderId: result.id, completion: completion) } else { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:succeeded") - let cardResult = CardResult(orderID: result.id, status: result.status, didAttemptThreeDSecureAuthentication: false) notifyCheckoutSuccess(for: cardResult, completion: completion) } } catch let error as CoreSDKError { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed") + analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: error, completion: completion) } catch { - analyticsService?.sendEvent("card-payments:3ds:confirm-payment-source:failed") + analyticsService?.sendEvent("card-payments:confirm-payment-source:failed") notifyCheckoutFailure(with: CardError.unknownError, completion: completion) } } @@ -161,9 +159,9 @@ public class CardClient: NSObject { context: self, sessionDidDisplay: { [weak self] didDisplay in if didDisplay { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded") + self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed") + self?.analyticsService?.sendEvent("card-payments:approve-order:auth-challenge-presentation:failed") } }, sessionDidComplete: { _, error in @@ -201,9 +199,9 @@ public class CardClient: NSObject { sessionDidDisplay: { [weak self] didDisplay in if didDisplay { // TODO: analytics for card vault - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:succeeded") + self?.analyticsService?.sendEvent("card-payments:vault:auth-challenge-presentation:succeeded") } else { - self?.analyticsService?.sendEvent("card-payments:3ds:challenge-presentation:failed") + self?.analyticsService?.sendEvent("card-payments:vault:auth-challenge-presentation:failed") } }, sessionDidComplete: { _, error in @@ -225,32 +223,32 @@ public class CardClient: NSObject { } private func notifyCheckoutSuccess(for result: CardResult, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:succeeded") + analyticsService?.sendEvent("card-payments:approve-order:succeeded") completion(result, nil) } private func notifyCheckoutFailure(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:failed") + analyticsService?.sendEvent("card-payments:approve-order:failed") completion(nil, error) } private func notifyCheckoutCancelWithError(with error: CoreSDKError, completion: (CardResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:3ds:challenge:user-canceled") + analyticsService?.sendEvent("card-payments:approve-order:auth-challenge:canceled") completion(nil, error) } private func notifyVaultSuccess(for vaultResult: CardVaultResult, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:succeeded") + analyticsService?.sendEvent("card-payments:vault:succeeded") completion(vaultResult, nil) } private func notifyVaultFailure(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:failed") + analyticsService?.sendEvent("card-payments:vault:failed") completion(nil, vaultError) } private func notifyVaultCancelWithError(with vaultError: CoreSDKError, completion: (CardVaultResult?, CoreSDKError?) -> Void) { - analyticsService?.sendEvent("card-payments:vault-wo-purchase:challenge:canceled") + analyticsService?.sendEvent("card-payments:vault:auth-challenge:canceled") completion(nil, vaultError) } }