From 593560b1f0ad083bcc93fcda54e28656e09a2267 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 9 Apr 2021 15:21:37 +0400 Subject: [PATCH] Payment fixes --- .../Sources/BotCheckoutControllerNode.swift | 5 +++++ ...BotCheckoutNativeCardEntryControllerNode.swift | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift index a83fee8c2c..b4d8db27ab 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift @@ -431,6 +431,11 @@ private func availablePaymentMethods(form: BotPaymentForm, current: BotCheckoutP methods.append(current) } } + if let savedCredentials = form.savedCredentials { + if !methods.contains(.savedCredentials(savedCredentials)) { + methods.append(.savedCredentials(savedCredentials)) + } + } return methods } diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutNativeCardEntryControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutNativeCardEntryControllerNode.swift index bbf511a6e5..f51a890059 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutNativeCardEntryControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutNativeCardEntryControllerNode.swift @@ -353,10 +353,21 @@ final class BotCheckoutNativeCardEntryControllerNode: ViewControllerTracingNode, guard let maskedCardNumber = resultInfo["masked_card_number"] as? String else { throw ReponseError.generic } + guard let cardType = resultInfo["card_type"] as? String else { + throw ReponseError.generic + } + + var last4 = maskedCardNumber + if last4.count > 4 { + let lastDigits = String(maskedCardNumber[maskedCardNumber.index(maskedCardNumber.endIndex, offsetBy: -4)...]) + if lastDigits.allSatisfy(\.isNumber) { + last4 = "\(cardType) *\(lastDigits)" + } + } let responseJson: [String: Any] = [ "type": "card", - "id": "\(token)" + "token": "\(token)" ] let serializedResponseJson = try JSONSerialization.data(withJSONObject: responseJson, options: []) @@ -366,7 +377,7 @@ final class BotCheckoutNativeCardEntryControllerNode: ViewControllerTracingNode, } strongSelf.completion(.webToken(BotCheckoutPaymentWebToken( - title: maskedCardNumber, + title: last4, data: serializedResponseString, saveOnServer: strongSelf.saveInfoItem.isOn )))