@lmapp/react-native-cloudpayments
Version:
π ΠΠΎΡΠ½ΡΠΉ SDK Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ CloudPayments Π² React Native. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Apple Pay, Google Pay, Π‘ΠΠ, Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΠΊΠ°ΡΡ. ΠΠΎΠ»Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ TypeScript. iOS 12+ ΠΈ Android 21+
93 lines (89 loc) β’ 3.42 kB
JavaScript
;
/**
* @fileoverview Π₯ΡΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ CloudPayments
* @description Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ
ΡΠΊ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ CloudPayments
* @author Leonid Molchanov
* @since 1.0.0
*/
import { useCallback } from 'react';
import { PaymentService } from "../../services/index.js";
// ============================================================================
// HOOK IMPLEMENTATION
// ============================================================================
/**
* Π₯ΡΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ CloudPayments
*
* @description ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ CloudPayments.
* ΠΡΠΎΡ Ρ
ΡΠΊ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½
* Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
ΠΎΠΏΠ»Π°ΡΡ.
*
* @param publicId - ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠ΅ΡΡΠ°Π½ΡΠ° CloudPayments
* @param options - ΠΠΏΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ
ΡΠΊΠ° (ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ)
* @returns Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ
*
* @example ΠΠ°Π·ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
* ```typescript
* const presentPaymentForm = usePaymentForm('pk_test_1234567890abcdef');
*
* const handlePayment = async () => {
* try {
* const result = await presentPaymentForm({
* amount: '1000.00',
* currency: 'RUB',
* description: 'ΠΠΎΠΊΡΠΏΠΊΠ° ΡΠΎΠ²Π°ΡΠ°',
* email: 'user@example.com'
* });
*
* if (result.success) {
* console.log('ΠΠ»Π°ΡΠ΅ΠΆ ΡΡΠΏΠ΅ΡΠ΅Π½:', result.transactionId);
* } else {
* console.log('ΠΠ»Π°ΡΠ΅ΠΆ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½:', result.message);
* }
* } catch (error) {
* console.error('ΠΡΠΈΠ±ΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ°:', error);
* }
* };
* ```
*
* @example ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
* ```typescript
* const presentPaymentForm = usePaymentForm('pk_test_1234567890abcdef');
*
* const result = await presentPaymentForm({
* amount: '2500.00',
* currency: 'RUB',
* description: 'ΠΠΎΠ΄ΠΏΠΈΡΠΊΠ° Premium',
* email: 'user@example.com',
* requireEmail: true,
* applePayMerchantId: 'merchant.com.myapp.payments',
* showResultScreen: true
* });
* ```
*
* @since 1.0.0
*/
export const usePaymentForm = publicId => {
/**
* Π€ΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ
*/
const presentPaymentForm = useCallback(async paymentData => {
try {
// ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΡ ΡΠΎΡΠΌΡ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ
const result = await PaymentService.presentPaymentForm({
...paymentData,
publicId
});
return result;
} catch (error) {
const errorMessage = error instanceof Error ? error.message : 'ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°';
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ
return {
success: false,
message: errorMessage,
transactionId: undefined
};
}
}, [publicId]);
return presentPaymentForm;
};
//# sourceMappingURL=usePaymentForm.js.map