@lmapp/react-native-cloudpayments
Version:
🚀 Мощный SDK для интеграции платежей CloudPayments в React Native. Поддержка Apple Pay, Google Pay, СБП, банковских карт. Полная типизация TypeScript. iOS 12+ и Android 21+
56 lines (51 loc) • 1.67 kB
text/typescript
import CloudpaymentsSdk from '../NativeCloudpaymentsSdk';
import type {
IPaymentService,
IPaymentData,
ICreateIntentPaymentData,
EPaymentMethodType,
IPaymentFormResponse,
TIntentWaitStatus,
} from '../types';
export const PaymentService: IPaymentService = {
async init(publicId: string): Promise<void> {
await CloudpaymentsSdk.initialize(publicId);
},
//@ts-ignore
createIntent(paymentData: ICreateIntentPaymentData) {
return CloudpaymentsSdk.createIntent(paymentData);
},
async getIntentWaitStatus(
paymentData: ICreateIntentPaymentData,
paymentMethod: EPaymentMethodType
): Promise<IPaymentFormResponse> {
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
presentPaymentForm(paymentData: IPaymentData) {
return CloudpaymentsSdk.presentPaymentForm(paymentData);
},
};