mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 21:15:41 +00:00
feat: ( payment ) create provider interface + types
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
import { PaymentIntentStatus, PaymentMethodType } from '@prisma/client';
|
||||||
|
|
||||||
|
export interface ClientAction {
|
||||||
|
type: 'REDIRECT';
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ProviderInitiationInput {
|
||||||
|
merchantOrderId: string;
|
||||||
|
bookingRef: string;
|
||||||
|
amountMinor: number;
|
||||||
|
currency: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ProviderInitiationResult {
|
||||||
|
providerOrderId: string;
|
||||||
|
clientAction: ClientAction;
|
||||||
|
expiresAt: Date;
|
||||||
|
rawInitiation: Record<string, unknown>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ProviderStatus {
|
||||||
|
status: PaymentIntentStatus;
|
||||||
|
providerTxnId?: string;
|
||||||
|
failureCode?: string;
|
||||||
|
failureMessage?: string;
|
||||||
|
rawResponse: Record<string, unknown>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PaymentProvider {
|
||||||
|
readonly method: PaymentMethodType;
|
||||||
|
initiate(input: ProviderInitiationInput): Promise<ProviderInitiationResult>;
|
||||||
|
queryStatus(merchantOrderId: string): Promise<ProviderStatus>;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
export type {
|
||||||
|
PaymentProvider,
|
||||||
|
ProviderInitiationInput,
|
||||||
|
ProviderInitiationResult,
|
||||||
|
ProviderStatus,
|
||||||
|
ClientAction,
|
||||||
|
} from '../payments.types';
|
||||||
|
|
||||||
|
export const PAYMENT_PROVIDERS = Symbol('PAYMENT_PROVIDERS');
|
||||||
Reference in New Issue
Block a user