Skip to content

Releases: PayDock/ios-mobile-sdk

v4.6.0

Choose a tag to compare

@jpcostello jpcostello released this 31 Aug 11:22

Added

  • Added showSubmitButton to CardDetailsWidgetConfig and GiftCardWidgetConfig (default true).
    When false, the widget hides its own built-in submit button entirely, so a host app can supply its own trigger UI. CardDetailsWidget and GiftCardWidget gain new init parameters to support this: submitTrigger: Binding<Bool> and onFormValidityChange: ((Bool) -> Void)? (fired whenever the form's validity changes).
  • Added showSchemeList to SupportedSchemesConfig (default true). When false, CardDetailsWidget hides its row of supported card scheme icons entirely, regardless of supportedSchemes.
  • Added activePrimaryButton to GiftCardWidgetConfig and AddressWidgetConfig (matching
    CardDetailsWidgetConfig). When true, the primary button stays enabled and validation runs on tap, including a VoiceOver "N errors in form" summary and focus moving to the first invalid field; when false, the button remains disabled until the form is valid.
  • Per-field text-field theming for GiftCardWidget and AddressWidget, matching CardDetailsWidget.
    GiftCardWidgetAppearance gains optional cardNumberTextField / pinTextField; AddressWidgetAppearance
    gains optional firstNameTextField, lastNameTextField, addressLine1TextField, addressLine2TextField,
    cityTextField, stateTextField, postcodeTextField. Each falls back to the shared textField when
    nil, so existing configurations are unaffected. AddressWidgetAppearance's per-field overrides default
    to nil; GiftCardWidgetAppearance's cardNumberTextField / pinTextField default to a seeded
    appearance carrying the field's default placeholder/hint text (see below) rather than nil, so the
    effective values are discoverable via the appearance object (e.g. in a styling screen) instead of only
    as fallbacks inside the widget's rendering code. Pass nil explicitly to opt out.
  • GiftCardWidget now shows field placeholders ("XXXX XXXX XXXX XXXX", "XXXX") and hints, and exposes
    digit-by-digit VoiceOver values plus per-field accessibility identifiers (giftCardNumberField,
    giftCardPinField).
  • AddressWidget now exposes per-field accessibility identifiers (firstNameField, lastNameField,
    addressLine1Field, addressLine2Field, cityField, stateField, postcodeField).
  • GiftCardWidget and AddressWidget now announce validation errors via VoiceOver as they occur,
    matching CardDetailsWidget.

Changed

  • Bumped ios-core-networking dependency to 1.3.0 (adds DecodingFailureContext on
    RequestError.decode; .decode now has an associated value).
  • Breaking: AddressWidgetAppearance.init parameter labels renamed for consistency with the property
    names and the other widgets: textfield:textField:, primaryButton:actionButton:,
    linkButton:expandSectionButton:. Call sites that passed these labels must be updated; property
    names are unchanged.
  • Behaviour change: GiftCardWidget and AddressWidget now default to activePrimaryButton: true
    (matching CardDetailsWidget), so their primary button is enabled from the start and validates on tap
    rather than staying disabled until the form is valid. Pass activePrimaryButton: false in the config
    to restore the previous disabled-until-valid behaviour.
  • Removed unused placeholder constants on GiftCardFormManager (cardNumberPlaceholder, pinPlaceholder) and
    AddressFormManager (the nine *Placeholder constants) — placeholders are now configured via the
    widget appearance.

Fixed

  • CardDetailsWidget and GiftCardWidget's submitTapped() now also blocks while the widget has been
    externally disabled via ViewState.setState(.disabled), not just while a request is in flight —
    previously the external submitTrigger path ignored that host-initiated disable entirely.
  • Both widgets now guard against re-entrancy synchronously in the view model (tokeniseCardDetails()/
    tokeniseGiftCard())

Full Changelog: 4.5.0...4.6.0

v4.5.0

Choose a tag to compare

@jpcostello jpcostello released this 17 Jun 13:29

Added

  • New 'ApplePaySetupWidget' to send users to wallet setup
  • New Apple Pay helper functions to identify availability accessible from "MobileSDK", "deviceSupportsApplePay" and "canMakeApplePayPayments"
  • Added "activePrimaryButton" to 'CardDetailsWidgetConfig' which defaults to "true" to allow submit button to be actionable when fields do not yet have valid entries
  • New customisable "hintText" field for textfields in 'CardDetailsWidget'
  • Added Voiceover readout for 'CardDetailsWidget' for validation errors on submit
  • Added scroll callback "onScrollToField" for 'CardDetailsWidget' to allow scrolling to validation error when off screen
  • Added VoiceOver readouts for fields that are required in a form
  • Added accessibility options in styles for custom VoiceOver readouts
  • "formState" added to 'CardDetailsWidget' event 'WidgetEvent' on submit action
  • 'Standalone3dsWidget' now uses a new overlay loader component
  • Added a "loadingDelegate" to 'Standalone3dsWidget' for custom loader control

Fixed

  • "placeholderText" was not being shown in Textfields correctly

Full Changelog: 4.4.0...4.5.0

v4.4.0

Choose a tag to compare

@jpcostello jpcostello released this 10 Apr 08:36

Added

  • New error in 'ApplePayWidget' for "notSupported" if Apple Pay is not supported on device
  • New error in 'ApplePayWidget' for "noSupportedCardsInWallet" if no cards are enrolled in Apple Pay for specific config passed
  • Result for 'ApplePayWidget' updated to return shipping and billing details
  • Callbacks added in 'ApplePayWidget' for contact and shipping details callbacks

Changed

  • 'ApplePayWidget' now returns a result object with a token versus previously completing the charge

Fixed

  • Removed 'PayPalVaultAppearance' overwriting appearance passed in init
  • Minimum card number length for unknown card schemes updated to 13

Full Changelog: 4.3.0...4.4.0

v4.3.0

Choose a tag to compare

@jpcostello jpcostello released this 13 Mar 09:58

Added

  • Implemented ZipWidget for Zip support
  • Disabled state alpha configurable for button appearance
  • Added config page to sample app

Changed

  • Updated bin processing for CardDetailsWidget
  • Updated form validations for CardDetailsWidget' and GiftCardWidget
  • Security code and Pin code entry in CardDetailsWidget and GiftCardWidget now use secure Textfields
  • Saving of CVV now configurable for CardDetailsWidget
  • Removed title field for CardDetailsWidget
  • Removed legacy "Solo" and "AUSBC" from supported card schemes for CardDetailsWidget
  • Removde autocorrect for cardholder name for CardDetailsWidget
  • Updated Amex card scheme icon for CardDetailsWidget
  • Font for widgets now defaults to system font
  • Improved NSError mappings to readable strings

Full Changelog: 4.2.1...4.3.0

v4.2.1

Choose a tag to compare

@jpcostello jpcostello released this 09 Feb 11:19

Fixed

  • Standalone 3ds: Ignore non fatal issues in webview navigation

Full Changelog: 4.2.0...4.2.1

v4.2.0

Choose a tag to compare

@jpcostello jpcostello released this 28 Nov 11:17

Added

  • UnionPay support for card schemes
  • Callbacks for info events to enable analytical collection
  • Customisation options: spacing control for input form widgets (widget + input spacing)
  • Updated checkout implementation for ExampleApp (demo app - E2E flows)
  • CardDetailsWidget toggle enhanced styling options

Changed

  • Updated PayPal SDK from version 2.0.0 to 2.0.1
  • Text and Icon customisation moved into appearance objects for SDK button widgets (ie. PayPalSavePaymentSourceWidget, CardDetailsWidget, AddressDetailsWidget and GiftCardWidget)
  • Updated logic for no card scheme detection - applying default validation
  • Search address popup positioning

Fixed

  • Accessibility improvements: Large Text support across widgets, scalable button and text field sizes,
  • Payment methods: PayPal cancellation not being detected
  • ColesPay widget closing and back to store cancellation
  • Apple Pay infinite loader for some errors
  • UI/UX: input field text vertical centering, disabled button styling, Click to Pay WebView session management, and app theme persistence on device rotation
  • Hardcoded paddings to various UI elements

Full Changelog: 4.1.0...4.2.0

v4.1.0

Choose a tag to compare

@jpcostello jpcostello released this 07 Oct 12:58

Changed

  • Implemented native PayPal checkout flow using the latest PayPal SDK (2.0.0)
  • Updated to use PayPal's native button; removed reliance on web views for PayPal
  • Updated existing widget errors to propagate underlying network errors
  • General improvements to AddressWidget (input UX and defaults)

Fixed

  • AddressWidget will now scroll active text field to prevent keyboard overlap
  • CardDetailsWidget cursor positioning while editing card number and expiry fields
  • CardDetailsWidget will now show approapriate keyboard type for each text field
  • Security code validation not refreshing when switching between card schemes
  • Cardholder name validation issues (including hyphen handling and invalid characters)
  • ColesPayWidget will no longer get reset when changing device orientation
  • GiftCardWidget PIN length validation

Added

  • Voiceover readouts for various loading states across the widgets

Removed

  • All WebView dependencies related to PayPal checkout

Full Changelog: 4.0.0...4.1.0

v4.0.0

Choose a tag to compare

@jpcostello jpcostello released this 04 Jul 15:16

Added

  • New customisations for all Widgets with Appearance added to all Widget contracts

Changed

  • config parameter standardised to all Widget contracts
  • Handling of token callback results for Wallets now within SDK processing
  • Coles Pay redirects to success without showing success landing page

Fixed

  • Address Widget popup will now disappear when search text is removed

Full Changelog: 3.1.0...4.0.0

v3.1.0

Choose a tag to compare

@jpcostello jpcostello released this 30 May 11:43

Added

  • Added cancelation confirmation prompt across the widgets
  • Added charge flow for ColesPay widget in the example checkout

Changed

  • Rebranded FlyPay to Coles Pay
  • Gift Card pin validation logic (minimum length 4)

Fixed

  • PayPal redirect cancellation flow from within the web view

v3.0.0

Choose a tag to compare

@jpcostello jpcostello released this 27 Mar 17:21

Added

  • Add support for high contrast accessibility colors.
  • Add support for hardware and software keyboard navigation.
  • Add support for autofill for the text fields in widgets.

Removed

  • Settings screen from sample app
  • secretKey functionality in place of apiAccessToken

Changed

  • Theme() object now receives only a single color instead of the light mode and dark mode separately. Provided colors should have traits assigned to them.
  • SDK default theme now supports light and dark mode along with the high contrast accessibility.
  • Refactored ThreeDSWidget to Integrated3DSWidget and Standalone3DSWidget
  • PayPalDataCollectorUtil calling function from collectDeviceData() to collectDeviceId()

Fixed

  • Various accessibility fixes and improvements.

Full Changelog: 2.1.1...3.0.0