feat: add invoice polling reconciliation
This commit is contained in:
@@ -17,8 +17,18 @@ export interface CreatedProviderInvoice {
|
||||
expiresAt: Date;
|
||||
}
|
||||
|
||||
export type ProviderInvoiceStatus = "pending" | "paid" | "expired" | "canceled";
|
||||
|
||||
export interface ProviderInvoiceStatusRecord {
|
||||
providerInvoiceId: string;
|
||||
status: ProviderInvoiceStatus;
|
||||
paidAt?: Date;
|
||||
expiresAt?: Date;
|
||||
}
|
||||
|
||||
export interface PaymentProviderAdapter {
|
||||
createInvoice(input: PaymentInvoiceDraft): Promise<CreatedProviderInvoice>;
|
||||
getInvoiceStatus(providerInvoiceId: string): Promise<ProviderInvoiceStatusRecord>;
|
||||
}
|
||||
|
||||
export function createPaymentProviderAdapter(config: {
|
||||
@@ -37,6 +47,13 @@ export function createPaymentProviderAdapter(config: {
|
||||
expiresAt: new Date(Date.now() + 30 * 60 * 1000),
|
||||
};
|
||||
},
|
||||
|
||||
async getInvoiceStatus(providerInvoiceId) {
|
||||
return {
|
||||
providerInvoiceId,
|
||||
status: "pending",
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -51,5 +68,12 @@ export function createPaymentProviderAdapter(config: {
|
||||
expiresAt: new Date(Date.now() + 30 * 60 * 1000),
|
||||
};
|
||||
},
|
||||
|
||||
async getInvoiceStatus(providerInvoiceId) {
|
||||
return {
|
||||
providerInvoiceId,
|
||||
status: "pending",
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user