Skip to content
This repository was archived by the owner on Jul 23, 2020. It is now read-only.

Releases: clover/remote-pay-java

1.4.1

18 Apr 14:47
b0bc485
Compare
Choose a tag to compare

NOTE: Full support for version 1.4.1 of the SDK requires version 143 or higher of the Pay Display app.

NEW

  • Modify ICloverConnector instantiation to be factory-based
  • Add support for both development and production certificates in the example apps
  • Added ability to retrieve certificates via resource load OR via network endpoint
  • Add per transaction setting support for voids and refunds
  • Added new API call to request a debug log from the device

FIXED

  • Corrected an issue where a transaction setting for disabling a tip on screen for a sale or auth was being ignored
  • Miscellaneous validation fixes

1.4.0

27 Oct 16:39
f106b56
Compare
Choose a tag to compare

NOTE: Full support for version 1.4 of the SDK requires version 143 or higher of the Pay Display app.

NEW

  • Added a new Print API

    • Please migrate all print requests to the new API using the PrintRequest object:

      • Print(PrintRequest request)

    • The following type-specific printing functions are deprecated and will be removed in a future release:

    • PrintText(List messages)

    • PrintImage(Bitmap bitmap)

    • PrintImageFromURL(string ImgURL)

    • Added a new API for opening cash drawers

      • Please migrate all cash drawer requests to the new API using the OpenCashDrawerRequest object:

        • OpenCashDrawer(OpenCashDrawerRequest request)

      • The following method for opening cash drawers with a reason string is deprecated and will be removed in a future release:

        • OpenCashDrawer(String reason)

      • Added methods for querying available printers:

        • RetrievePrinters(RetrievePrintersRequest request)

        • OnRetrievePrintersResponse(RetrievePrintersResponse response)

      • Added methods for querying the status of a print job:

        • RetrievePrintJobStatus(PrintJobStatusRequest request)

        • OnPrintJobStatusResponse(PrintJobStatusResponse response)

    • Added support for printing large images through message fragmenting


FIXED

  • Suppress expected exceptions during planned connection close
  • Correct resource cleanup

1.3.3

29 Sep 18:59
Compare
Choose a tag to compare

FIXED

  • Fixed thread and memory leaks that could occur when repeatedly creating/disposing connectors
  • Fixed a resource leak that would occur on connectivity loss and reconnection
  • Removed local org-json project and replaced with retrieval from the Maven Central Repository

1.3.2

13 Sep 21:29
Compare
Choose a tag to compare

FIXED

  • Fixed several synchronization issues with WebSocket heartbeats and reconnects
  • Miscellaneous bug fixes

1.3.1

02 Aug 20:54
Compare
Choose a tag to compare

NEW

  • Initial capability.

  • Added support for Custom Activities.

    • ICloverConnector

      • Added
        • startCustomActivity() - Starts a Custom Activity on the Clover device.
        • sendMessageToActivity() - Sends messages to Custom Activities running on the Clover device.
        • retrievePayment() - Queries the status of a payment on the device by its External ID.
        • retrieveDeviceStatus() - Queries the status of the device.
    • ICloverConnectorListener

      • Added
        • onCustomActivityResponse() - Receives the callbacks from startCustomActivity().
        • onMessageFromActivity() - Receives the callbacks from sendMessageToActivity().
        • onRetrievePaymentResponse() - Receives the callbacks from retrievePayment().
        • onRetrieveDeviceStatusResponse() - Receives the callbacks from retrieveDeviceStatus().
    • CustomActivity

      • The APK must be approved and then installed via the Clover App Market.
      • clover-cfp-sdk library
        • Added CloverCFPActivity, which can be extended.
        • Added constants for retrieving activity payload CloverCFP interface.
        • Working with Custom Activities
          • The action of the activity, as defined in the AndroidManifest, should be passed in as part of the request.
          • A single text payload can be passed in to the request and retrieved in the intent via com.clover.remote.cfp.CFPActivity.EXTRA_PAYLOAD constant.
            • Example: com.clover.remote.terminal.remotecontrol.extra.EXTRA_PAYLOAD
          • The Custom Activity Response (onCustomActivityResponse()) contains a single text payload, populated from the com.clover.remote.cfp.EXTRA_PAYLOAD extra in the result Intent.
          • Block vs Non-Blocking Activities
            • A blocking Custom Activity (CustomActivityRequest.setNonBlocking(boolean)) will either need to finish itself, or be stopped by a ICloverConnector.resetDevice() request. One use case would be if you don't want a Sale request to interrupt a Custom Activity that collects customer information.
            • A non-blocking Custom Activity will finish when a new request is made. One use case would be if you want a Sale request to interrupt a Custom Activity that displays ads.
  • Added support for certain Per-Transaction Settings, which will override Merchant Settings. To facilitate this new functionality, the following options were added to the SaleRequest and TransactionRequest classes.

    • TransactionRequest - Extended by SaleRequest, AuthRequest, PreAuthRequest, and ManualRefundRequest

      • signatureThreshold (Long) - Enables you to override the merchant-level Signature Threshold, which sets a minimum amount for requiring a signature.
      • signatureEntryLocation (DataEntryLocation) - Enables you to override the merchant-level Signature Entry Location. Possible values:
        • ON_SCREEN - The signature will be taken on the device screen.
        • ON_PAPER - The signature will be taken on the paper receipt.
        • NONE - This setting will cause the device to skip the signature request for the specified transaction.
      • disableReceiptSelection (Boolean) - Enables you to bypass the customer-facing receipt selection screen.
      • disableDuplicateChecking (Boolean) - Enables you to bypass any duplicate transaction logic and associated requests for confirmation.
      • autoAcceptPaymentConfirmations (Boolean) - Enables automatic acceptance of any payment confirmations that might apply to the given transaction (e.g., an offline payment confirmation). This override prevents the SDK from transmitting payment confirmation requests back to the calling program. The transaction continues processing as if the caller initiated a confirmPayment() request.
      • autoAcceptSignature (Boolean) - Enables automatic acceptance of a signature (on screen or on paper) for the given transaction, if applicable. This override prevents the SDK from transmitting signature confirmation requests back to the calling program. The transaction continues processing as if the caller initiated an acceptSignature() request.
    • SaleRequest (extends TransactionRequest)

      • tipMode (TipMode) - Specifies the location from which to accept the tip. Possible values:
        • TIP_PROVIDED - The tip will be included in the request.
        • ON_SCREEN_BEFORE_PAYMENT - Valid when requested through Clover Mini or Clover Mobile.
        • NO_TIP - A tip will not be requested for this payment.
  • Added the ability to query pending payments.

  • Added device status queries to determine the state of the device and the payments processed by the device.

IMPROVED

  • ResetDevice() now calls back to onResetDeviceResponse with the current status.

  • Renamed, added, and removed a number of API operations and objects to establish better consistency across platforms.

    • ICloverConnector (Operations)
      • Added
        • printImageFromURL() - Prints an image from the web on paper receipts through the Clover Mini's built-in printer.
        • initializeConnection() (REQUIRED) - Starts communication with the device.
        • addCloverConnectorListener()Adds a CloverConnector listener.
        • removeCloverConnectorListener() - Removes a CloverConnector listener.
        • acceptPayment() (REQUIRED) - Takes a payment object. This is a possible response to a ConfirmPaymentRequest().
        • rejectPayment() (REQUIRED) - Takes a payment object and the challenge that was associated with the payment gateway's rejection. This is a possible response to a ConfirmPaymentRequest().
        • retrievePendingPayments() - Retrieves a list of unprocessed payments that were taken offline and are pending submission to the server.
      • Renamed
        • capturePreAuth() - Formerly captureAuth().
        • showDisplayOrder() - Formerly displayOrder(). This is now the only operation needed to display or change the order information shown on the Clover Mini.
          * removeDisplayOrder() - Formerly displayOrderDelete().
      • Removed the following methods, which have been replaced by showDisplayOrder().
        • displayOrderLineItemAdded()
        • displayOrderLineItemRemoved()
        • displayOrderDiscountAdded()
        • displayOrderDiscountRemoved()
      • Modified
        • SaleRequest() (REQUIRED), AuthRequest() (REQUIRED), PreAuthRequest() (REQUIRED), and ManualRefund() (REQUIRED) all now require ExternalId to be set.
          • ExternalId should now be unique per transaction. This will allow the Clover device to reject repeat transaction requests.
        • Changed all device action API calls to return void.
        • CloverConnector now requires you to set the ApplicationId when configuring/installing your third-party application. You'll provide this information as part of the device configuration you pass in when you create the CloverConnector.
        • Changed the behavior of RefundPaymentRequest(). In the previous versions, a value of zero for the amount field would trigger a refund of the full payment amount. With version 1.0, passing zero into the amount field will trigger a validation failure. Use FullRefund:boolean to specify a full refund amount. NOTE: In a partial refund scenario, this will attempt to refund the original (full) payment amount, rather than the remaining amount.
    • ICloverConnectorListener (Notifications)
      • Added
        • onPaymentConfirmation() (REQUIRED) - Consists of a payment object and a list of challenges/void reasons encountered at the payment gateway.
        • onDeviceError() - A general callback when there is an error communicating with the device.
        • onPrintManualRefundReceipt() - If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onPrintManualRefundDeclineReceipt() - If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onPrintPaymentReceipt() - If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onPrintPaymentDeclineReceipt() - If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onPrintPaymentMerchantCopyReceipt ()- If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onPrintRefundPaymentReceipt() - If disablePrinting=true on the request, this will be called to indicate that the POS can print this receipt.
        • onRetrievePendingPaymentsResponse() - Called with the list of payments taken on the device that aren't processed on the server yet.
      • Renamed
        • onDeviceDisconnected() - Formerly onDisconnected().
        • onDeviceConnected() - Formerly onConnected().
        • onDeviceReady() - Formerly onReady().
        • onTipAdjustAuthResponse - Formerly onAuthTipAdjustResponse().
        • onCapturePreAuthResponse - Formerly onPreAuthCaptureResponse().
        • onVerifySignatureRequest - Formerly onSignatureVerifyRequest().
      • Removed
        • onTransactionState().
        • onConfigErrorResponse() - These are now processed as normal operation responses.
        • onError() - Now handled by onDeviceError() or through normal operation responses.
        • onDebug().
    • Request/Response Objects
      • Added
        • ConfirmPaymentRequest() - Contains a Payment and a list of "challenges" the
          Clover device encountered from the gateway during...
Read more