| import { BotContext } from '../types/botTypes'; |
| import { PaymentVerificationService } from '../services/PaymentVerificationService'; |
| import { createLogger } from '../../utils/logger'; |
|
|
| const logger = createLogger('PaymentWebhookHandlers'); |
| const paymentVerificationService = PaymentVerificationService.getInstance(); |
|
|
| export const setupPaymentWebhookHandlers = (bot: any) => { |
| |
| paymentVerificationService.setBot(bot); |
|
|
| |
| bot.on('webhook:paypal', async (ctx: BotContext) => { |
| try { |
| const { paymentId, status } = ctx.webhookData; |
| await paymentVerificationService.verifyAndUpdatePayment(paymentId, status); |
| return { success: true }; |
| } catch (error) { |
| logger.error('PayPal webhook error:', error); |
| return { success: false, error: error.message }; |
| } |
| }); |
|
|
| |
| bot.on('webhook:crypto', async (ctx: BotContext) => { |
| try { |
| const { paymentId, status } = ctx.webhookData; |
| await paymentVerificationService.verifyAndUpdatePayment(paymentId, status); |
| return { success: true }; |
| } catch (error) { |
| logger.error('Crypto webhook error:', error); |
| return { success: false, error: error.message }; |
| } |
| }); |
|
|
| |
| bot.on('webhook:admin', async (ctx: BotContext) => { |
| try { |
| const { paymentId, status } = ctx.webhookData; |
| await paymentVerificationService.verifyAndUpdatePayment(paymentId, status); |
| return { success: true }; |
| } catch (error) { |
| logger.error('Admin webhook error:', error); |
| return { success: false, error: error.message }; |
| } |
| }); |
| }; |