Merge pull request #454 from Tria-plc/freight_feature/usermanagement

changes
This commit is contained in:
marshal
2026-07-04 09:22:58 +03:00
committed by GitHub
2 changed files with 17 additions and 3 deletions

View File

@@ -963,6 +963,21 @@ export class BillingService {
.getRepository(Invoice) .getRepository(Invoice)
.update({ id: invoice.id }, { paymentId: result.intentId }); .update({ id: invoice.id }, { paymentId: result.intentId });
// DEMO: manually fire the gateway `payment.succeeded` callback here, without
// waiting for real gateway settlement. Runs AFTER the paymentId link above so
// `handlePaymentEvent → settleByPaymentId` can correlate the invoice. TODO:
// remove — real settlement flips this via the `${source}.invoice.paid` handler.
if (!result.immediateSuccess) {
await this.payment.handlePaymentEvent({
eventType: "payment.succeeded",
eventId: `demo-${result.intentId}`,
referenceId: invoice.sourceId,
intentId: result.intentId,
providerTxnId: result.providerTxnId,
paidAt: (result.paidAt ?? new Date()).toISOString(),
});
}
if (result.immediateSuccess) { if (result.immediateSuccess) {
await this.settleByPaymentId( await this.settleByPaymentId(
result.intentId, result.intentId,

View File

@@ -479,7 +479,7 @@ export class PaymentService {
alreadyFinalized?: boolean; alreadyFinalized?: boolean;
reason?: string; reason?: string;
}> { }> {
console.log(`Received payment event: ${JSON.stringify(event)}`); this.logger.log(`Received payment event: ${JSON.stringify(event)}`);
if (event.eventType === "payment.succeeded") { if (event.eventType === "payment.succeeded") {
const intent = await this.paymentRepo.findOneBy({ const intent = await this.paymentRepo.findOneBy({
refId: event.referenceId, refId: event.referenceId,
@@ -490,13 +490,12 @@ export class PaymentService {
reason: `No local intent for reference ${event.referenceId}`, reason: `No local intent for reference ${event.referenceId}`,
}; };
} }
console.log(`Processing payment succeeded event for intent: }`, intent);
const { alreadyFinalized } = await this.markIntentSucceeded(intent.id, { const { alreadyFinalized } = await this.markIntentSucceeded(intent.id, {
providerTxnId: event.providerTxnId, providerTxnId: event.providerTxnId,
paidAt: event.paidAt ? new Date(event.paidAt) : undefined, paidAt: event.paidAt ? new Date(event.paidAt) : undefined,
notify: true, notify: true,
}); });
console.log( this.logger.log(
`Payment finalized for intent ${intent.id}, alreadyFinalized: ${alreadyFinalized}`, `Payment finalized for intent ${intent.id}, alreadyFinalized: ${alreadyFinalized}`,
); );