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 )))