Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Document Status

Status
colourBlueGreen
titleIN Reviewclosed

Document Owner(s)

de Sousa Santos, Rodrigo

Reviewers

Table of Contents
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printabletrue

...

Paycomet Code

Error Code

Public Message (Logs/Amplitude)

Documentation

142

PAYMENT.2.005

Operation cancelled

Represents an error when the operation was cancelled.

  • An example of occurrence is when the user cancel the payment.

1425

PAYMENT.2.005.001

Paypal transaction cancelled

Represents an error when the operation was cancelled with PAYPAL.

1342

PAYMENT.2.005.002

Bizum transaction cancelled

Represents an error when the operation was cancelled with BIZUM.

...

  • Create a new constants constant error:

    • path: intl-packages/packages/psp-base/src/errors/psp-error-2/psp-error-2.ts

      Code Block
      languagetypescript
      const GenericRbiPaymentErrorCodes = {
        ...
        OPERATION_CANCELLED_ERROR: '2.005',
        ...
      } as const;
      
      const SpecificRbiPaymentErrorCodes = {
        BIZUM_OPERATION_CANCELLED_ERROR: '2.005.001',
        ...
        PAYPAL_OPERATION_CANCELLED_ERROR: '2.005.002',
        ...
      } as const;
  • Create a new classesclass:

    • OperationCancelledError generic class:

      • path: intl-packages/packages/psp-base/src/errors/psp-error-2/generic/operation-cancelled-error.ts

        Code Block
        languagetypescript
        export class OperationCancelledError extends ExternalValidationError2 {
          ...
          constructor(params?: TPspError2) {
            const {
              httpStatus = HttpStatus.UNPROCESSABLE_ENTITY,
              message = 'Operation cannot be completed/continued as it has been cancelled.',
              metadata,
              responseBody,
              rbiErrorCode = RbiPaymentErrorCodes.OPERATION_CANCELLED_ERROR,
            } = params ?? {};
            super({ ...params, httpStatus, message, metadata, rbiErrorCode, responseBody });
          }
        }
    • BizumCancellationPaymentError specialized class:

      • path: intl-packages/packages/psp-base/src/errors/psp-error-2/bizum-operation-cancelled-error.ts

        Code Block
        languagetypescript
        export class BizumCancellationPaymentError extends OperationCancelledError {
          ...
          constructor(params?: TPspError2) {
            const {
              httpStatus = HttpStatus.UNPROCESSABLE_ENTITY,
              metadata,
              rbiErrorCode = RbiPaymentErrorCodes.BIZUM_OPERATION_CANCELLED_ERROR,
            } = params ?? {};
            super({ ...params, httpStatus, metadata, rbiErrorCode });
          }
        }
    • PaypalCancellationPaymentError specialized class:

      • path: intl-packages/packages/psp-base/src/errors/psp-error-2/

        paypal-operation-cancelled-error.ts

        Code Block
        languagetypescript
        export class PaypalCancellationPaymentError extends OperationCancelledError {
          ...
          constructor(params?: TPspError2) {
            const {
              httpStatus = HttpStatus.UNPROCESSABLE_ENTITY,
              metadata,
              rbiErrorCode = RbiPaymentErrorCodes.PAYPAL_OPERATION_CANCELLED_ERROR,
            } = params ?? {};
            super({ ...params, httpStatus, metadata, rbiErrorCode });
          }
        }
  • Mapper the errors on PspErrorMap

    • path: intl-psp-paycomet-service/src/errors/paycomet-error-map.ts

      Code Block
      languagetypescript
      export const errorMap: PspErrorMap = new Map([
        ...
        [
          142,
          {
            classNameRef: OperationCancelledError,
            info: 'Operation canceled.',
          },
        ],
        ...
        [
          1342,
          {
            classNameRef: BizumCancellationPaymentErrorOperationCancelledError,
            info: 'Bizum. Transactiontransaction cancelled. The user does not wish to continue.',
          },
        ],
        ...
        [
          1425,
          {
            classNameRef: PaypalCancellationPaymentErrorOperationCancelledError,
            info: 'PayPal.Paypal Transactiontransaction cancelled. The user does not wish to continue.',
          },
        ],
      ]);

After backend changes, will need to handle the error.

...

  • Create a new keys to translate the error message:

    Code Block
    languagejson
    {
      ...
      "error.payment.2.005.title": "Purchase cancelled",
      "error.payment.2.005.cta": "Go Back to Checkout",
      "error.payment.2.005": "Your purchase has been successfully cancelled.",
      ...
    }

...

...

It will be created a temporary feature flag: enable-cancellation-error-modal-on-payment-link

After the stories activation in prod, the feature flags will be removed.

...

Jira Legacy
serverSystem Jira
serverId255417eb-03fa-3e2f-a6ba-05d325fec50d
keyIBFEC-2647

...

🎛️ Configuration

Info

Include here any configuration required (Sanity, LaunchDarkly flags, etc.) required to enable the solution.

📈 Metrics

...

It will be created a temporary feature flag: enable-cancellation-error-modal-on-payment-link

After the stories activation in prod, the feature flags will be removed.

For this feature works, need to enable this feature flag: enable-rbi-error-2

📈 Metrics

Info

Measure the number of cancellations made by the user.

🗓️ Delivery Plan

Info

Link to the task or list of all the tasks required to deliver the solution, along with its progress.

...