317 lines
8.9 KiB
TypeScript
317 lines
8.9 KiB
TypeScript
|
|
export interface IPaddleCheckoutData<TPassthrough = null> {
|
||
|
|
checkout: {
|
||
|
|
created_at: string;
|
||
|
|
completed: boolean;
|
||
|
|
id: string;
|
||
|
|
coupon: {
|
||
|
|
coupon_code?: string;
|
||
|
|
};
|
||
|
|
passthrough?: TPassthrough;
|
||
|
|
prices: {
|
||
|
|
customer: {
|
||
|
|
currency: string;
|
||
|
|
unit: string;
|
||
|
|
unit_tax: string;
|
||
|
|
total: string;
|
||
|
|
total_tax: string;
|
||
|
|
items: Array<{
|
||
|
|
checkout_product_id: number;
|
||
|
|
product_id: number;
|
||
|
|
name: string;
|
||
|
|
custom_message: string;
|
||
|
|
quantity: number;
|
||
|
|
allow_quantity: false;
|
||
|
|
icon_url: string;
|
||
|
|
min_quantity: number;
|
||
|
|
max_quantity: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
/**
|
||
|
|
* factorised, not percentage, so looks like 0.19 for Germany.
|
||
|
|
*/
|
||
|
|
tax_rate: number;
|
||
|
|
recurring: {
|
||
|
|
period: string;
|
||
|
|
interval: number;
|
||
|
|
trial_days: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
};
|
||
|
|
}>;
|
||
|
|
};
|
||
|
|
vendor: {
|
||
|
|
currency: string;
|
||
|
|
unit: string;
|
||
|
|
unit_tax: string;
|
||
|
|
total: string;
|
||
|
|
total_tax: string;
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
checkout_product_id: number;
|
||
|
|
product_id: number;
|
||
|
|
name: string;
|
||
|
|
custom_message: string;
|
||
|
|
quantity: number;
|
||
|
|
allow_quantity: false;
|
||
|
|
icon_url: string;
|
||
|
|
min_quantity: number;
|
||
|
|
max_quantity: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
recurring: {
|
||
|
|
period: string;
|
||
|
|
interval: number;
|
||
|
|
trial_days: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
];
|
||
|
|
};
|
||
|
|
};
|
||
|
|
redirect_url: null;
|
||
|
|
test_variant: 'newCheckout';
|
||
|
|
recurring_prices: {
|
||
|
|
customer: {
|
||
|
|
currency: string;
|
||
|
|
unit: string;
|
||
|
|
unit_tax: string;
|
||
|
|
total: string;
|
||
|
|
total_tax: string;
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
checkout_product_id: number;
|
||
|
|
product_id: number;
|
||
|
|
name: string;
|
||
|
|
custom_message: string;
|
||
|
|
quantity: number;
|
||
|
|
allow_quantity: false;
|
||
|
|
icon_url: string;
|
||
|
|
min_quantity: number;
|
||
|
|
max_quantity: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
recurring: {
|
||
|
|
period: string;
|
||
|
|
interval: number;
|
||
|
|
trial_days: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
];
|
||
|
|
};
|
||
|
|
interval: {
|
||
|
|
length: number;
|
||
|
|
type: string;
|
||
|
|
};
|
||
|
|
vendor: {
|
||
|
|
currency: string;
|
||
|
|
unit: string;
|
||
|
|
unit_tax: string;
|
||
|
|
total: string;
|
||
|
|
total_tax: string;
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
checkout_product_id: number;
|
||
|
|
product_id: number;
|
||
|
|
name: string;
|
||
|
|
custom_message: string;
|
||
|
|
quantity: number;
|
||
|
|
allow_quantity: false;
|
||
|
|
icon_url: string;
|
||
|
|
min_quantity: number;
|
||
|
|
max_quantity: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
recurring: {
|
||
|
|
period: string;
|
||
|
|
interval: number;
|
||
|
|
trial_days: number;
|
||
|
|
currency: string;
|
||
|
|
unit_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
line_price: {
|
||
|
|
net: number;
|
||
|
|
gross: number;
|
||
|
|
net_discount: number;
|
||
|
|
gross_discount: number;
|
||
|
|
net_after_discount: number;
|
||
|
|
gross_after_discount: number;
|
||
|
|
tax: number;
|
||
|
|
tax_after_discount: number;
|
||
|
|
};
|
||
|
|
discounts: [];
|
||
|
|
tax_rate: number;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
];
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
product: {
|
||
|
|
quantity: number;
|
||
|
|
id: number;
|
||
|
|
name: string;
|
||
|
|
};
|
||
|
|
user: {
|
||
|
|
id: string;
|
||
|
|
email: string;
|
||
|
|
country: string;
|
||
|
|
};
|
||
|
|
}
|