Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/5.14.0 #1912

Merged
merged 2 commits into from
Dec 4, 2024
Merged

Release/5.14.0 #1912

merged 2 commits into from
Dec 4, 2024

Conversation

nauaros
Copy link
Contributor

@nauaros nauaros commented Dec 3, 2024

New

  • Components now support integration with custom payment buttons:
    • showsSubmitButton configuration: Added a new property to hide the default submit button, enabling the use of custom buttons for more flexible payment flows.
    • Introduced submit and validate methods to allow manual initiation and validation of payment processes.
  • Update TwintSDK to v8.0.2.
  • For Twint, you can now reduce the required number of LSApplicationQueriesSchemes values. In TwintActionComponent.Configuration, set the new maxIssuerNumber property.
  • Add support for the following Boleto Bancario tx-variants:
    • Boleto Bancario Itaú (boletoBancarioItau)
    • PrimeiroPay Boleto (primeiroPayBoleto)
    • Boleto Bancario (boletoBancario)
  • Pay by Bank in the US: Now supports stored payment methods.

Changed

  • Pay by Bank in the US: Drop-in now displays supported bank logos and a confirmation screen before redirecting to the issuer for PaymentMethodType.paybybank_AIS_DD.
  • Delegated Authentication: Add an option to reset credentials on the error screen during Secure Checkout.

Fixed

  • Correct type and brand values for Meal Voucher payment details.

github-actions bot and others added 2 commits December 3, 2024 11:47
Update version.

Co-authored-by: nauaros <[email protected]>
Regenerate documentation.

Co-authored-by: nauaros <[email protected]>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request does not contain a valid label. Please add one of the following labels: ['new', 'changed', 'fixed', 'removed', 'deprecated', 'chore', 'improvement']

@nauaros nauaros self-assigned this Dec 3, 2024
@nauaros nauaros added the chore a pull request that has chore changes that shouldn't be in the release notes label Dec 3, 2024
@nauaros nauaros marked this pull request as ready for review December 3, 2024 12:31
Copy link
Contributor

github-actions bot commented Dec 3, 2024

👀 63 public changes detected

Comparing release/5.14.0 to 5.13.0


Adyen

❇️ Added

public protocol SubmittableComponent: Adyen.PaymentComponent
{
  func submit() -> Swift.Void
  func validate() -> Swift.Bool
}
public struct PayByBankUSPaymentMethod: Adyen.PaymentMethod
{
  public let type: Adyen.PaymentMethodType { get }
  public var name: Swift.String
  public var merchantProvidedDisplayInformation: Adyen.MerchantCustomDisplayInformation?
  public func defaultDisplayInformation(using parameters: Adyen.LocalizationParameters?) -> Adyen.DisplayInformation
  public func encode(to encoder: any Swift.Encoder) throws -> Swift.Void
  public init(from decoder: any Swift.Decoder) throws
}
public struct StoredPayByBankUSPaymentMethod: Adyen.StoredPaymentMethod
{
  public let type: Adyen.PaymentMethodType { get }
  public let name: Swift.String { get }
  public let label: Swift.String? { get }
  public var merchantProvidedDisplayInformation: Adyen.MerchantCustomDisplayInformation?
  public let identifier: Swift.String { get }
  public let supportedShopperInteractions: [Adyen.ShopperInteraction] { get }
  public func encode(to encoder: any Swift.Encoder) throws -> Swift.Void
  public init(from decoder: any Swift.Decoder) throws
}

🔀 Changed

// From
open class AbstractPersonalInformationComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent

// To
open class AbstractPersonalInformationComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/

AbstractPersonalInformationComponent

❇️ Added

public func submit() -> Swift.Void
public func validate() -> Swift.Bool

BasicComponentConfiguration

🔀 Changed

// From
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), localizationParameters: Adyen.LocalizationParameters? = nil)

// To
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, localizationParameters: Adyen.LocalizationParameters? = nil)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

PaymentMethodType

❇️ Added

case boletoBancario
case boletoBancarioItau
case boletoBancarioSantander
case payByBankAISDD
case primeiroPayBoleto

🔀 Changed

// From
case boleto

// To
@available(*, deprecated, renamed: "boletoBancarioSantander", message: "Use 'boletoBancarioSantander' instead. Consider 'boletoBancario' as the default payment method for Boleto Bancario.") case boleto

/**
Changes:
- Added attribute `@available(*, deprecated, renamed: "boletoBancarioSantander", message: "Use 'boletoBancarioSantander' instead. Consider 'boletoBancario' as the default payment method for Boleto Bancario.")`
*/

PersonalInformationConfiguration

🔀 Changed

// From
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil)

// To
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

AdyenActions

DelegatedAuthenticationComponentStyle

❇️ Added

public var troubleshootingButtonStyle: Adyen.ButtonStyle
public var troubleshootingDescriptionStyle: Adyen.TextStyle
public var troubleshootingTitleStyle: Adyen.TextStyle

TwintSDKActionComponent.Configuration

❇️ Added

public let maxIssuerNumber: Swift.Int { get }

🔀 Changed

// From
public init(style: AdyenActions.AwaitComponentStyle = .init(), callbackAppScheme: Swift.String, localizationParameters: Adyen.LocalizationParameters? = nil)

// To
public init(style: AdyenActions.AwaitComponentStyle = .init(), callbackAppScheme: Swift.String, maxIssuerNumber: Swift.Int = .max, localizationParameters: Adyen.LocalizationParameters? = nil)

/**
Changes:
- Added parameter `maxIssuerNumber: Swift.Int = .max`
*/

VoucherAction

❇️ Added

case boletoBancario(AdyenActions.BoletoVoucherAction)
case boletoBancarioItau(AdyenActions.BoletoVoucherAction)
case primeiroPayBoleto(AdyenActions.BoletoVoucherAction)

VoucherPaymentMethod

❇️ Added

case boletoBancario
case boletoBancarioItau
case primeiroPayBoleto

AdyenCard

🔀 Changed

// From
final public class GiftCardComponent: Adyen.PresentableComponent, Adyen.Localizable, Adyen.LoadingComponent, Adyen.AdyenObserver

// To
final public class GiftCardComponent: Adyen.PresentableComponent, Adyen.Localizable, Adyen.LoadingComponent, Adyen.AdyenObserver, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
public class CardComponent: Adyen.PresentableComponent, Adyen.PaymentMethodAware, Adyen.PaymentAware, Adyen.LoadingComponent

// To
public class CardComponent: Adyen.PresentableComponent, Adyen.PaymentMethodAware, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/

CardComponent

❇️ Added

public func submit() -> Swift.Void
public func validate() -> Swift.Bool

CardComponent.Configuration

🔀 Changed

// From
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil, showsHolderNameField: Swift.Bool = false, showsStorePaymentMethodField: Swift.Bool = true, showsSecurityCodeField: Swift.Bool = true, koreanAuthenticationMode: AdyenCard.CardComponent.FieldVisibility = .auto, socialSecurityNumberMode: AdyenCard.CardComponent.FieldVisibility = .auto, storedCardConfiguration: AdyenCard.StoredCardConfiguration = StoredCardConfiguration(), allowedCardTypes: [Adyen.CardType]? = nil, installmentConfiguration: Adyen.InstallmentConfiguration? = nil, billingAddress: AdyenCard.BillingAddressConfiguration = .init())

// To
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil, showsHolderNameField: Swift.Bool = false, showsStorePaymentMethodField: Swift.Bool = true, showsSecurityCodeField: Swift.Bool = true, koreanAuthenticationMode: AdyenCard.CardComponent.FieldVisibility = .auto, socialSecurityNumberMode: AdyenCard.CardComponent.FieldVisibility = .auto, storedCardConfiguration: AdyenCard.StoredCardConfiguration = StoredCardConfiguration(), allowedCardTypes: [Adyen.CardType]? = nil, installmentConfiguration: Adyen.InstallmentConfiguration? = nil, billingAddress: AdyenCard.BillingAddressConfiguration = .init())

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

GiftCardComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

🔀 Changed

// From
convenience public init(paymentMethod: Adyen.GiftCardPaymentMethod, context: Adyen.AdyenContext, amount: Adyen.Amount, style: Adyen.FormComponentStyle = FormComponentStyle(), showsSecurityCodeField: Swift.Bool = true)

// To
convenience public init(paymentMethod: Adyen.GiftCardPaymentMethod, context: Adyen.AdyenContext, amount: Adyen.Amount, style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, showsSecurityCodeField: Swift.Bool = true)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/
// From
convenience public init(paymentMethod: Adyen.MealVoucherPaymentMethod, context: Adyen.AdyenContext, amount: Adyen.Amount, style: Adyen.FormComponentStyle = FormComponentStyle(), showsSecurityCodeField: Swift.Bool = true)

// To
convenience public init(paymentMethod: Adyen.MealVoucherPaymentMethod, context: Adyen.AdyenContext, amount: Adyen.Amount, style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, showsSecurityCodeField: Swift.Bool = true)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

AdyenCashAppPay

🔀 Changed

// From
@available(iOS 13.0, *) final public class CashAppPayComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent, PayKit.CashAppPayObserver

// To
@available(iOS 13.0, *) final public class CashAppPayComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent, PayKit.CashAppPayObserver, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/

CashAppPayComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

CashAppPayConfiguration

🔀 Changed

// From
public init(redirectURL: Foundation.URL, referenceId: Swift.String? = nil, showsStorePaymentMethodField: Swift.Bool = true, storePaymentMethod: Swift.Bool = false, style: Adyen.FormComponentStyle = FormComponentStyle(), localizationParameters: Adyen.LocalizationParameters? = nil)

// To
public init(redirectURL: Foundation.URL, referenceId: Swift.String? = nil, showsStorePaymentMethodField: Swift.Bool = true, storePaymentMethod: Swift.Bool = false, style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, localizationParameters: Adyen.LocalizationParameters? = nil)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

AdyenComponents

❇️ Added

final public class PayByBankUSComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.LoadingComponent
{
  final public let paymentMethod: any Adyen.PaymentMethod { get }
  final public var paymentData: Adyen.PaymentComponentData { get }
  final public var configuration: AdyenComponents.PayByBankUSComponent.Configuration
  weak final public var delegate: (any Adyen.PaymentComponentDelegate)?
  final public var requiresModalPresentation: Swift.Bool
  final public var viewController: UIKit.UIViewController { get }
  public init(paymentMethod: Adyen.PayByBankUSPaymentMethod, context: Adyen.AdyenContext, configuration: AdyenComponents.PayByBankUSComponent.Configuration = .init())
  final public func initiatePayment() -> Swift.Void
  public struct Configuration: Adyen.AnyBasicComponentConfiguration
  {
      public var style: AdyenComponents.PayByBankUSComponent.Style
      public var localizationParameters: Adyen.LocalizationParameters?
      public init(style: AdyenComponents.PayByBankUSComponent.Style = .init(), localizationParameters: Adyen.LocalizationParameters? = nil)
  }
  public struct Style
  {
      public var title: Adyen.TextStyle
      public var subtitle: Adyen.TextStyle
      public var message: Adyen.TextStyle
      public var headerImage: Adyen.ImageStyle
      public var submitButton: Adyen.ButtonStyle
      public init()
  }
  final public func stopLoading() -> Swift.Void
}

🔀 Changed

// From
final public class ACHDirectDebitComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent

// To
final public class ACHDirectDebitComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
final public class BLIKComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent

// To
final public class BLIKComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
final public class BoletoComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.PresentableComponent, Adyen.AdyenObserver

// To
final public class BoletoComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.PresentableComponent, Adyen.AdyenObserver, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
final public class OnlineBankingComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.LoadingComponent, Adyen.PaymentAware

// To
final public class OnlineBankingComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.LoadingComponent, Adyen.PaymentAware, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
final public class SEPADirectDebitComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent

// To
final public class SEPADirectDebitComponent: Adyen.PaymentComponent, Adyen.PaymentAware, Adyen.PresentableComponent, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/
// From
final public class UPIComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent

// To
final public class UPIComponent: Adyen.PaymentComponent, Adyen.PresentableComponent, Adyen.PaymentAware, Adyen.LoadingComponent, Adyen.SubmittableComponent

/**
Changes:
- Added inheritance `Adyen.SubmittableComponent`
*/

ACHDirectDebitComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

ACHDirectDebitComponent.Configuration

🔀 Changed

// From
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil, showsStorePaymentMethodField: Swift.Bool = true, showsBillingAddress: Swift.Bool = true, billingAddressCountryCodes: [Swift.String] = ["US", "PR"])

// To
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, shopperInformation: Adyen.PrefilledShopperInformation? = nil, localizationParameters: Adyen.LocalizationParameters? = nil, showsStorePaymentMethodField: Swift.Bool = true, showsBillingAddress: Swift.Bool = true, billingAddressCountryCodes: [Swift.String] = ["US", "PR"])

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

BLIKComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

BoletoComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

BoletoComponent.Configuration

🔀 Changed

// From
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), localizationParameters: Adyen.LocalizationParameters? = nil, shopperInformation: Adyen.PrefilledShopperInformation?, showEmailAddress: Swift.Bool)

// To
public init(style: Adyen.FormComponentStyle = FormComponentStyle(), showsSubmitButton: Swift.Bool = true, localizationParameters: Adyen.LocalizationParameters? = nil, shopperInformation: Adyen.PrefilledShopperInformation?, showEmailAddress: Swift.Bool)

/**
Changes:
- Added parameter `showsSubmitButton: Swift.Bool = true`
*/

OnlineBankingComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

SEPADirectDebitComponent

❇️ Added

final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool

UPIComponent

❇️ Added

@Adyen.AdyenObservable @_projectedValueProperty($selectedUPIFlow) final public var selectedUPIFlow: AdyenComponents.UPIComponent.UPIFlowType { get }
final public func submit() -> Swift.Void
final public func validate() -> Swift.Bool
final public var $selectedUPIFlow: Adyen.AdyenObservable<AdyenComponents.UPIComponent.UPIFlowType> { get }
public enum UPIFlowType: Swift.Int, Swift.Equatable, Swift.Hashable, Swift.RawRepresentable
{
  case upiApps
  case qrCode
  public init?(rawValue: Swift.Int)
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int { get }
}

Package.swift

.dependencies

🔀 Changed

// From
.package(url: "https://github.com/Adyen/adyen-authentication-ios", exact: "3.0.0")

// To
.package(url: "https://github.com/Adyen/adyen-authentication-ios", exact: "3.1.0")

Analyzed targets: Adyen, AdyenActions, AdyenCard, AdyenCashAppPay, AdyenComponents, AdyenDelegatedAuthentication, AdyenEncryption, AdyenSession, AdyenSwiftUI, AdyenTwint, AdyenWeChatPay

Copy link

sonarcloud bot commented Dec 3, 2024

@nauaros nauaros requested a review from goergisn December 3, 2024 13:15
@atmamont
Copy link
Contributor

atmamont commented Dec 4, 2024

A small suggestion for the future updates to put dependencies version updates (Twint in this case) as a change not an addition.

@nauaros nauaros merged commit ab033ce into develop Dec 4, 2024
38 checks passed
@nauaros nauaros deleted the release/5.14.0 branch December 4, 2024 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore a pull request that has chore changes that shouldn't be in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants