import CloudpaymentsSdk from '../NativeCloudpaymentsSdk'; import type { IPaymentService, IPaymentData, ICreateIntentPaymentData, EPaymentMethodType, IPaymentFormResponse, TIntentWaitStatus, } from '../types'; export const PaymentService: IPaymentService = { async init(publicId: string): Promise { await CloudpaymentsSdk.initialize(publicId); }, //@ts-ignore createIntent(paymentData: ICreateIntentPaymentData) { return CloudpaymentsSdk.createIntent(paymentData); }, async getIntentWaitStatus( paymentData: ICreateIntentPaymentData, paymentMethod: EPaymentMethodType ): Promise { try { const statusCode: TIntentWaitStatus = await CloudpaymentsSdk.getIntentWaitStatus(paymentData, paymentMethod); // Преобразуем статус код в IPaymentFormResponse if (statusCode === 200) { return { success: true, message: 'Платеж успешно завершен', transactionId: undefined, // Нативный метод не возвращает ID транзакции }; } else { return { success: false, message: `Ошибка платежа. Код: ${statusCode}`, transactionId: undefined, }; } } catch (error) { return { success: false, message: error instanceof Error ? error.message : 'Неизвестная ошибка', transactionId: undefined, }; } }, //@ts-ignore async presentPaymentForm(paymentData: IPaymentData) { return CloudpaymentsSdk.presentPaymentForm(paymentData); }, };