Releases: clover/remote-pay-ios
Remote Pay SDK for iOS v4.0.0
Clover Connector SDK 4.0 Release
Surcharge
Updated the AdditionalCharge.rate
field to explicitly support larger values and changed the AdditionalCharge.type
field from a type of String
to AdditionalChargeType
to support new surcharge types.
Invalid State Transition
Added InvalidStateTransitionResponse
. This will be sent by the Clover device when it cannot make a requested transiton due the state of its payment flow.
Incremental Preauthorization
Added a new request/response pair: IncrementPreauthRequest
and IncrementPreauthResponse
. This can be sent on an open preauthorization to request an increase in the authorized amount.
Tip Suggestions
Added a new amount
field to the TipSuggestion
object.
Swift 5 Support
This version moves to Swift 5.3.
Other Misc Updates
Pulled in some minor updates to dependencies and other minor bug fixes.
Remote Pay SDK for iOS v3.0.3
Bug Fix
Remote Application ID (RAID) Enforcement
Resolved an issue where a valid Remote App ID still caused the "No Clover application found" warning to be displayed when the application connected or started a payment.
Improvements
Messaging validation
Enhanced validation checks for the messages sent to the Clover device.
3.0.2
Remote Pay SDK for iOS v3.0.2
Added tipSuggestions transaction setting
The SDK now allows each transaction to include tip suggestions (amounts and text) that override the default and merchant-configured tips.
Improved messages for onTxStartResponse
and onAuthTipAdjustedResponse
failures
Instead of a basic “Failure” indicator, the SDK now passes complete failure messages back to consuming apps.
Improved Interac card support
Added Interac to the list of supported card types to ensure transactions with these cards process correctly.
Updated example app
The example POS now shows errors when the user tries to partially refund an auth that has not been closed. Custom per-transaction tip suggestions can also be configured using the app.
Bug fixes
Allow zero-amount tips on tip adjust
The SDK now allows tips of zero for tip adjusts.
Fixed closeoutResponse to allow nil batches
In previous versions, a closeout containing a nil batch
object did not pass the expected response back to the listener. Closeout responses are now passed as expected to consumers.
Remote Pay SDK for iOS v3.0.1
3.0.1 Release Change Highlights
New language and locale information
The SDK now receives and passes a language indicator from the customer’s card. This information can be used by an integrated point of sale to print a transaction receipt in the customer’s preferred language.
Regional enhancements for Argentina
The SDK now supports transaction processing for Argentine merchants. The example point-of-sale app has been updated to show how regional parameters can be set.
New displayReceiptOptions method
The displayReceiptOptions
method shows the receipt options screen for a credit, refund, or payment. This addition enhances the SDK by deprecating the displayPaymentReceiptOptions
method that only worked with payments.
Vaulted card data included in transaction responses
The CardTransaction
response object now includes vaultedCard
data. This data can be stored and used for recurring transactions if the merchant is set up to use tokenized cards.
Bug fixes
Corrected RefundPaymentRequest
logic
The fullRefund
variable of RefundPaymentRequest
no longer defaults to true
. Previously, unless the fullRefund
value was explicitly set to false
, a full refund would be processed even if a specific amount less than full was provided.
The new functionality allows the user to provide a specific refund amount. That amount will be processed unless the fullRefund
flag is explicitly set to true
.
Corrected failed transaction logic
In previous versions, a failed transaction would restart even if the disableRestartTransactionOnFail
property was set to true
. The value of this property is now passed correctly and transactions will fail and not restart.
Added deviceId
to openCashDrawer()
method
The openCashDrawer()
method now passes the OpenCashDrawerRequest.deviceId
instead of nil
.
3.0.0
3.0.0 Release Change Highlights
The iOS 3.0.0 release contains support for Canadian payment flows, the new Loyalty API, and Swift 4.2. We follow semantic versioning, so you didn’t miss the 2.0.0 release - we didn’t release it. This update includes all the major changes you’ll find in our other platform SDKs for both 2.0.0 and 3.0.0.
Full support of version 3.0.0 requires version 208 or higher of the Pay Display app.
New features and improvements
Regional support for Canada
We now support Canadian payment flows and Interac cards.
Loyalty API
Clover now supports loyalty services by providing the ability to recognize customers using unique identifiers. An identifier can be the customer’s name, phone number, or email address; their loyalty card with a barcode or stripe; or an Apple Pass or Google SmartTap NFC payload from the customer’s phone. The API has been updated with methods to request and retrieve this customer loyalty information.
Both the point-of-sale software and custom activities on the Clover device can access the data to perform database lookups and then customize the customer experience using the data.
Moved example apps
The iOS SDK and its example app have been split into separate repositories. This change allows for bug fixes in the example apps without affecting the SDK. This will facilitate faster iteration and improvements to the examples.
You can find the example app here: github.com/clover/remote-pay-ios-examples
Swift 4.2
The SDK has been updated to the latest Swift 4.2 language standards, in order to provide the longest runway for this version for language level support from Apple’s toolchain.
Void Payment Messaging
Added a new callback in CloverDeviceObserver for onPaymentVoided, which will be called with the void response message when communicating with remote pay vXXX and higher. In older versions of remote pay, you will receive a void response message immediately upon sending the request, while in vXXX and higher you will receive the void response message after the void has been processed and the response is sent back from the Clover Device.
SendDebugLog
Added a message to request that the Clover device send its debug logs to the Clover servers.
Fixed bugs
Tip Mode Settings
If provided, the tipMode will be sent to remote pay during a transaction. If not provided, tipMode will be set to NO_TIP if disableTipOnScreen is set, or nil if not set.
Discovery Response
The DiscoveryResponseMessage returned is now saved to CloverTransport.lastDiscoveryResponseMessage.
Signature Entry Location
signatureEntryLocation is now mapped properly in a TransactionRequest
1.4.4
1.4.4 Release Change Highlights
Support for Xcode 10
To provide compatibility with Xcode 10, the ObjectMapper dependency was updated to version 3.3.0.
NOTES
Full support of version 1.4.4 features requires version 143 or higher of the Pay Display app.
1.4.3
NOTES
Full support of version 1.4.3 features requires version 143 or higher of the Pay Display app.
NEW
No new features in this release.
FIXES
The PreAuth Capture flow was reverted to the V1 (pre-existing) flow by default.
1.4.2
WARNING
- This version 1.4.2 introduced a behavior change with the new PreAuth Capture flow. We realize that this should have waited until version 2.0.0 to avoid impacting existing integrations. Please use version 1.4.3 instead, which defaults the PreAuth Capture flow to the existing implementation.
NOTES
- Full support of version 1.4.2 features requires version 169 or higher of the Pay Display app.
- Only the updated version 2 Pre-Auth capture flow requires version 169 or higher of the Pay Display App, all other features require version 143 or higher of the Pay Display app. Version 1 Pre-Auth capture flow is still supported in version 169 and higher and by this framework.
NEW
- Added support for the updated Pre-Auth capture flow that includes CVM verification (Requires Pay Display 169 or higher)
FIXES
- Calling dispose() will now cleanup the websocket prior to broadcasting the disconnect to all listeners, rather than after.
- Added Pre-Auth Capture example code to the Example App.
- When a ReadCard operation is cancelled, the ReadCardDataResponse object will now include a reason.
- Transaction Settings Signature Threshold is now populated in the sent message.
- CloverConnectorBroadcaster’s listeners array was moved to private access with accessors for thread safety.
1.4.1 Swift 2.3
NOTES
- Full support of version 1.4 features requires version 138 or higher of the Pay Display app.
- This is the Swift 2.3 compatible version of this library.
- A Swift 4 compatible version of this library is available under the 1.4.1 release.
NEW
- Added the ability to query a print job status to the Print API. The new functionality is exercised in the Example app.
- PrintImage now downloads the image locally before requesting the Clover Device to print the downloaded image. Previous behavior was for the Clover Device to download the image and print it.
FIXES
- Example App MiscViewController's status and query payment buttons function headers now correct.
- CloverConnectorDeviceObserver.lastRequest is now being cleared during a reset device.
- The Example app now properly caches the auth token for pairing.
- Added to UiStateMessage: CUSTOM_ACTIVITY and STARTING_CUSTOM_ACTIVITY, so that custom activity states are properly reported to the host application.
- Manually disposing of a CloverConnector now fires the onDisconnect notification.
- Example App displayed order will now be correct upon removing the last item for a particular type.
1.4.1
NOTES
- Full support of version 1.4 features requires version 138 or higher of the Pay Display app.
- This is the Swift 4 compatible version of this library.
- A Swift 2.3 compatible version of this library is available under the 1.4.1-swift2.3 release.
NEW
- Added the ability to query a print job status to the Print API. The new functionality is exercised in the Example app.
- PrintImage now downloads the image locally before requesting the Clover Device to print the downloaded image. Previous behavior was for the Clover Device to download the image and print it.
FIXES
- Example App MiscViewController's status and query payment buttons function headers now correct.
- CloverDeviceEvent.DeviceEventState - the cases in this class were incorrectly named during the Swift 4 conversion. These cases have been corrected to the proper values. NOTE Swift 4 Users - this change may require a code change to rename these enums to be in line with what is the new definition.
- onRetrieveDeviceStatusResponse - the name of the parameter was incorrectly named during the Swift 4 conversion, and is now corrected.
- CloverConnectorDeviceObserver.lastRequest is now being cleared during a reset device.
- The Example app now properly caches the auth token for pairing.
- Added to UiStateMessage: CUSTOM_ACTIVITY and STARTING_CUSTOM_ACTIVITY, so that custom activity states are properly reported to the host application.
- Manually disposing of a CloverConnector now fires the onDisconnect notification.
- Example App displayed order will now be correct upon removing the last item for a particular type.