zibri
    Preparing search index...

    Interface PaymentProviderInterface<SupportedMethods, PaymentDataForMethod, ValidatedPaymentDataForMethod, ProviderPaymentDataForMethod, ProviderReservationPaymentDataForMethod, CancellationSupport, RefundSupport, ReservationSupport>

    Interface for a payment provider.

    interface PaymentProviderInterface<
        SupportedMethods extends readonly PaymentMethod[],
        PaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject & { transactionId: string }>,
        ValidatedPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject & { transactionId: string }>,
        ProviderPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject>,
        ProviderReservationPaymentDataForMethod extends
            Record<SupportedMethods[number], AnyObject>,
        CancellationSupport extends Record<SupportedMethods[number], boolean>,
        RefundSupport extends Record<SupportedMethods[number], boolean>,
        ReservationSupport extends Record<SupportedMethods[number], boolean>,
    > {
        __cancellationSupportMap: CancellationSupport;
        __paymentDataMap: PaymentDataForMethod;
        __providerPaymentDataMap: ProviderPaymentDataForMethod;
        __providerReservationPaymentDataMap: ProviderReservationPaymentDataForMethod;
        __refundSupportMap: RefundSupport;
        __reservationSupportMap: ReservationSupport;
        __supportedMethods: SupportedMethods;
        __validatedDataMap: ValidatedPaymentDataForMethod;
        cancelPayment: <M extends PaymentMethod>(
            payment:
                | Payment<M, ProviderPaymentDataForMethod[M]>
                | Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        collectPaymentFromReservation: <M extends PaymentMethod>(
            payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        confirmPayment: <M extends PaymentMethod>(
            payment: Payment<M, ProviderPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        confirmPaymentReservation: <M extends PaymentMethod>(
            payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        name: string;
        refundPayment: <M extends PaymentMethod>(
            payment: Payment<M, ProviderPaymentDataForMethod[M]>,
        ) => void | Promise<void>;
        startPayment: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod[M],
        ) =>
            | Payment<M, ProviderPaymentDataForMethod[M]>
            | Promise<Payment<M, ProviderPaymentDataForMethod[M]>>;
        startPaymentReservation: <M extends PaymentMethod>(
            method: M,
            data: ValidatedPaymentDataForMethod[M],
        ) =>
            | Payment<M, ProviderReservationPaymentDataForMethod[M]>
            | Promise<Payment<M, ProviderReservationPaymentDataForMethod[M]>>;
        validatePaymentData: <M extends PaymentMethod>(
            method: M,
            data: PaymentDataForMethod[M],
        ) =>
            | ValidatedPaymentDataForMethod[M]
            | Promise<ValidatedPaymentDataForMethod[M]>;
    }

    Type Parameters

    Hierarchy (View Summary)

    Implemented by

    Index

    Properties

    __cancellationSupportMap: CancellationSupport
    __paymentDataMap: PaymentDataForMethod
    __providerPaymentDataMap: ProviderPaymentDataForMethod
    __providerReservationPaymentDataMap: ProviderReservationPaymentDataForMethod
    __refundSupportMap: RefundSupport
    __reservationSupportMap: ReservationSupport
    __supportedMethods: SupportedMethods
    __validatedDataMap: ValidatedPaymentDataForMethod
    cancelPayment: <M extends PaymentMethod>(
        payment:
            | Payment<M, ProviderPaymentDataForMethod[M]>
            | Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Cancels the given payment.

    collectPaymentFromReservation: <M extends PaymentMethod>(
        payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Collects payment from the given payment reservation.

    confirmPayment: <M extends PaymentMethod>(
        payment: Payment<M, ProviderPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Confirms and finishes a payment.

    confirmPaymentReservation: <M extends PaymentMethod>(
        payment: Payment<M, ProviderReservationPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Confirms The given payment reservation. This does NOT move any money yet, it just reserves the funds.

    name: string

    The unique name of the provider, used to differentiate between them.

    refundPayment: <M extends PaymentMethod>(
        payment: Payment<M, ProviderPaymentDataForMethod[M]>,
    ) => void | Promise<void>

    Refunds the given payment.

    startPayment: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod[M],
    ) =>
        | Payment<M, ProviderPaymentDataForMethod[M]>
        | Promise<Payment<M, ProviderPaymentDataForMethod[M]>>

    Starts a new payment with the given method and data.

    startPaymentReservation: <M extends PaymentMethod>(
        method: M,
        data: ValidatedPaymentDataForMethod[M],
    ) =>
        | Payment<M, ProviderReservationPaymentDataForMethod[M]>
        | Promise<Payment<M, ProviderReservationPaymentDataForMethod[M]>>

    Starts a new payment reservation with the given method and data.

    validatePaymentData: <M extends PaymentMethod>(
        method: M,
        data: PaymentDataForMethod[M],
    ) =>
        | ValidatedPaymentDataForMethod[M]
        | Promise<ValidatedPaymentDataForMethod[M]>

    Validates the given payment data for the given method.