react-native-zeturf-adyen-payment
Version:
React Native Adyen Payment Native Module
88 lines (78 loc) • 1.93 kB
TypeScript
export interface ComponentData {
scheme: {
card_public_key: string;
};
}
export interface PaymentDetails {
amount: {
value: number; //In Multiples of hundred
currency: string;
};
reference: string;
shopperReference: string;
shopperEmail: string;
channel: string;
countryCode: string;
shopperLocale: string;
returnUrl: string;
merchantAccount: string;
additionalData: {
allow3DS2: boolean;
executeThreeD: boolean;
};
}
export interface AdyenPaymentMethodDetail {
key: string;
type: string;
optional?: boolean;
}
export interface CreditCard {
details: AdyenPaymentMethodDetail[];
name: string;
type: "scheme" | "bcmc";
logo: string;
}
export interface CreditCardData {
paymentMethods: CreditCard[];
storedPaymentMethods?: SavedPaymentMethod[];
}
export interface SavedPaymentMethod {
type: "scheme" | "bcmc";
id: string;
name: string;
brand: string;
lastFour: string;
expiryMonth: string;
expiryYear: string;
holderName: string;
supportedShopperInteractions: string[];
}
export type CreditCardPaymentDetails =
| NewCreditCardPaymentDetails
| SavedCreditPaymentCardDetails;
export interface NewCreditCardPaymentDetails {
storePaymentMethod: boolean;
encryptedCardNumber: string;
encryptedExpiryMonth: string;
encryptedExpiryYear: string;
encryptedSecurityCode: string;
storedPaymentMethodId: undefined;
type: string;
}
export interface SavedCreditPaymentCardDetails {
storePaymentMethod: boolean;
encryptedSecurityCode: string;
storedPaymentMethodId: string;
type: string;
}
export default class AdyenPayment {
public static SCHEME;
public static BCMC;
public static pay: (
scheme: AdyenPayment.SCHEME | AdyenPayment.BCMC,
componentDate: ComponentData,
paymentDetails: PaymentDetails,
creditCardsData: CreditCardData,
canSaveCreditCards: boolean
) => Promise<CreditCardPaymentDetails>;
}