@vigilio/payments
Version:
Payments niubiz, paypal, etc.
432 lines (431 loc) • 15 kB
TypeScript
export interface AccessTokenAPI {
scope: string;
access_token: string;
token_type: string;
app_id: string;
expires_in: number;
nonce: string;
}
export interface CreateOrderProps {
intent: "CAPTURE" | "AUTHORIZE";
purchase_units: [
{
amount: {
currency_code: string;
value: string;
breakdown?: {
item_total: {
value: string;
currency_code: string;
};
shopping: {
value: string;
currency_code: string;
};
handling: {
value: string;
currency_code: string;
};
tax_total: {
value: string;
currency_code: string;
};
insurance: {
value: string;
currency_code: string;
};
shipping_discount: {
value: string;
currency_code: string;
};
discount: {
value: string;
currency_code: string;
};
};
};
reference_id?: string;
description?: string;
custom_id?: string;
invoice_id?: string;
soft_descriptor?: string;
items?: {
name: string;
quantity: number;
description?: string;
sku?: string;
url?: string;
category?: string;
image_url?: string;
unit_amount: {
value: string;
currency_code: string;
};
tax?: {
value: string;
currency_code: string;
};
upc: {
type: string;
code: string;
};
amount: {
currency_code: string;
value: string;
breakdown?: {
item_total: {
value: string;
currency_code: string;
};
shopping: {
value: string;
currency_code: string;
};
handling: {
value: string;
currency_code: string;
};
tax_total: {
value: string;
currency_code: string;
};
insurance: {
value: string;
currency_code: string;
};
shipping_discount: {
value: string;
currency_code: string;
};
discount: {
value: string;
currency_code: string;
};
};
};
}[];
}
];
payeer?: {
email_address?: string;
merchant_id?: string;
};
application_context: {
brand_name?: string;
landing_page?: string;
shipping_preference?: "GET_FROM_FILE" | "NO_SHIPPING" | "SET_PROVIDED_ADDRESS";
user_action?: "CONTINUE" | "PAY_NOW";
return_url?: string;
cancel_url?: string;
locale?: string;
payment_method?: {
standard_entry_class_code?: "TEL" | "WEB" | "CCD" | "PPD";
payee_preferred?: "UNRESTRICTED" | "IMMEDIATE_PAYMENT_REQUIRED";
};
stored_payment_source?: {
payment_initiator?: "CUSTOMER" | "MERCHANT";
payment_type?: "ONE_TIME" | "RECURRING" | "UNSCHEDULED";
usage?: "FIRST" | "SUBSEQUENT" | "DERIVED";
previous_network_transaction_reference?: object;
};
};
}
export type Network = "VISA" | "MASTERCARD" | "DISCOVER" | "AMEX" | "SOLO" | "JCB" | "STAR" | "DELTA" | "SWITCH" | "MAESTRO" | "CB_NATIONALE" | "CONFIGOCA" | "CONFIDIS" | "ELECTRON" | "CETELEM" | "CHINA_UNION_PAY" | "DINERS" | "ELO" | "HIPER" | "HIPERCARD" | "RUPAY" | "GE" | "SYNCHRONY" | "UNKNOWN";
export type ExperienceContext = {
brand_name?: string;
shipping_preference?: "GET_FROM_FILE" | "NO_SHIPPING" | "SET_PROVIDED_ADDRESS";
landing_page?: "LOGIN" | "GUEST_CHECKOUT" | "NO_PREFERENCE";
user_action?: "CONTINUE" | "PAY_NOW";
payment_method_preference?: "UNRESTRICTED" | "IMMEDIATE_PAYMENT_REQUIRED";
locale?: string;
return_url?: string;
cancel_url?: string;
};
export interface UpdateOrderProps {
op: "add" | "remove" | "replace" | "move" | "copy" | "test";
path?: string;
value?: unknown;
from?: string;
}
export interface ConfirmOrderProps {
processing_instruction?: "ORDER_COMPLETE_ON_PAYMENT_APPROVAL" | "NO_INSTRUCTION";
application_context: {
brand_name?: string;
return_url?: string;
cancel_url?: string;
locale?: string;
stored_payment_source?: {
payment_initiador: "CUSTOMER" | "MERCHANT";
payment_type: "ONE_TIME" | "RECURRING" | "UNSCHEDULED";
usage?: string;
previous_network_transaction_reference?: {
id: string;
date?: string;
acquirer_reference_number: string;
network?: Network;
};
};
};
payment_source: {
card?: {
name?: string;
number?: string;
security_code?: string;
expiry?: string;
billing_address?: {
address_line_1?: string;
address_line_2?: string;
admin_area_1?: string;
admin_area_2?: string;
postal_code?: string;
country_code: string;
};
attributes?: {
customer?: {
id: string;
email_address: string;
phone: {
phone_type?: "FAX" | "HOME" | "MOBILE" | "PAGER" | "OTHER";
phone_number: {
national_number: string;
};
};
vault?: {
store_in_vault: string;
};
verification?: {
method?: "SCA_ALWAYS" | "SCA_WHEN_REQUIRED" | "3D_SECURE" | "AVS_CVV";
};
};
};
stored_credential?: {
payment_intiiador: "CUSTOMER" | "MERCHANT";
payment_type: "ONE_TIME" | "RECURRING" | "UNSCHEDULED";
usage?: "FIRST" | "SUBSEQUIENT";
previous_network_transaction_reference?: {
id: string;
date?: string;
acquirer_reference_number?: string;
network?: Network;
};
};
vault_id?: string;
network_token?: {
number: string;
cryptogram?: string;
token_requestor_id?: string;
expiry: string;
eci_flag?: "MASTERCARD_NON_3D_SECURE_TRANSACTION" | "MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION" | "MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION" | "FULLY_AUTHENTICATED_TRANSACTION" | "ATTEMPTED_AUTHENTICATION_TRANSACTION" | "NON_3D_SECURE_TRANSACTION";
};
experience_context?: {
return_url?: string;
cancel_url?: string;
};
};
token?: {
id: string;
type: "BILLING_AGREEMENT";
};
paypal?: {
experience_context?: ExperienceContext;
billing_agreement_id?: string;
vault_id: string;
email_address: string;
name: {
given_name?: string;
surname?: string;
};
phone?: {
phone_type?: "FAX" | "HOME" | "MOBILE" | "OTHER";
phone_number: {
national_number: string;
};
};
birth_date?: string;
tax_info?: {
tax_id: string;
tax_id_type: "BR_CPF" | "BR_CNPJ";
};
address?: object;
attributes: object;
};
bankcontact?: {
name: string;
country_code: string;
experience_context?: string;
};
blik?: {
name: string;
country_code: string;
email?: string;
experience_context?: {
brand_name?: string;
shipping_preference?: "GET_FROM_FILE" | "NO_SHIPPING" | "SET_PROVIDED_ADDRESS";
locale?: string;
return_url?: string;
cancel_url?: string;
};
level_0?: {
auth_code: string;
};
one_click: {
auth_code?: string;
customer_reference: string;
alias_label?: string;
alias_key?: string;
};
};
eps?: {
name: string;
country_code: string;
bic?: string;
experience_context?: ExperienceContext;
};
mybank?: {
name: string;
country_code: string;
experience_context?: ExperienceContext;
};
p24?: {
name: string;
email: string;
country_code: string;
experience_context?: ExperienceContext;
};
sofort?: {
name: string;
country_code: string;
experience_context?: ExperienceContext;
};
apple_pay?: {
id?: string;
stored_credential?: object;
name?: string;
email_address?: string;
phone_number?: object;
decrypted_token?: object;
vault_id?: string;
};
venmo?: {
experience_context?: ExperienceContext;
vault_id?: string;
email_address?: string;
attributes?: object;
};
};
}
export interface CaptureOrderProps {
payment_source: {
card?: {
name?: string;
number?: string;
security_code?: string;
expiry?: string;
billing_address?: {
address_line_1?: string;
address_line_2?: string;
admin_area_1?: string;
admin_area_2?: string;
postal_code?: string;
country_code: string;
};
attributes?: {
customer?: {
id: string;
email_address: string;
phone: {
phone_type?: "FAX" | "HOME" | "MOBILE" | "PAGER" | "OTHER";
phone_number: {
national_number: string;
};
};
vault?: {
store_in_vault: string;
};
verification?: {
method?: "SCA_ALWAYS" | "SCA_WHEN_REQUIRED" | "3D_SECURE" | "AVS_CVV";
};
};
};
stored_credential?: {
payment_intiiador: "CUSTOMER" | "MERCHANT";
payment_type: "ONE_TIME" | "RECURRING" | "UNSCHEDULED";
usage?: "FIRST" | "SUBSEQUIENT";
previous_network_transaction_reference?: {
id: string;
date?: string;
acquirer_reference_number?: string;
network?: Network;
};
};
vault_id?: string;
network_token?: {
number: string;
cryptogram?: string;
token_requestor_id?: string;
expiry: string;
eci_flag?: "MASTERCARD_NON_3D_SECURE_TRANSACTION" | "MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION" | "MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION" | "FULLY_AUTHENTICATED_TRANSACTION" | "ATTEMPTED_AUTHENTICATION_TRANSACTION" | "NON_3D_SECURE_TRANSACTION";
};
experience_context?: {
return_url?: string;
cancel_url?: string;
};
};
token?: {
id: string;
type: "BILLING_AGREEMENT";
};
paypal?: {
experience_context?: ExperienceContext;
billing_agreement_id?: string;
vault_id: string;
email_address: string;
name: {
given_name?: string;
surname?: string;
};
phone?: {
phone_type?: "FAX" | "HOME" | "MOBILE" | "OTHER";
phone_number: {
national_number: string;
};
};
birth_date?: string;
tax_info?: {
tax_id: string;
tax_id_type: "BR_CPF" | "BR_CNPJ";
};
address?: object;
attributes: object;
};
apple_pay?: {
id?: string;
stored_credential?: object;
name?: string;
email_address?: string;
phone_number?: object;
decrypted_token?: object;
vault_id?: string;
};
venmo?: {
experience_context?: ExperienceContext;
vault_id?: string;
email_address?: string;
attributes?: object;
};
};
}
declare function usePaypal(authProps: {
client_id: string;
secret_key: string;
sandbox: string;
}): {
accessToken: () => Promise<string>;
createOrder: (props: CreateOrderProps) => Promise<any>;
showOrder: (id: string) => Promise<any>;
confirmOrder: (id: string, props?: ConfirmOrderProps) => Promise<any>;
authorizeOrder: (id: string, props?: object) => Promise<any>;
updateOrder: (id: string, props?: UpdateOrderProps[]) => Promise<any>;
captureOrder: (id: string, props?: CaptureOrderProps) => Promise<any>;
};
export default usePaypal;