80 lines
1.6 KiB
TypeScript
80 lines
1.6 KiB
TypeScript
import routes from "@/routes";
|
|
import { getAuthHeaders } from "../utils";
|
|
|
|
interface Payload {
|
|
token: string;
|
|
}
|
|
|
|
export type PayloadGet = Payload;
|
|
|
|
export interface PayloadPost extends Payload {
|
|
data: {
|
|
user: {
|
|
id: string;
|
|
email: string;
|
|
name: string;
|
|
sign: string;
|
|
age: number;
|
|
};
|
|
partner: {
|
|
sign: string | null;
|
|
age: number | null;
|
|
};
|
|
paymentInfo: {
|
|
productId: string;
|
|
};
|
|
return_url: string;
|
|
};
|
|
}
|
|
|
|
export interface ResponseGet {
|
|
key: string;
|
|
productId: string;
|
|
amount: number;
|
|
currency: string;
|
|
}
|
|
|
|
export interface ResponsePost {
|
|
paymentIntent: {
|
|
status: string;
|
|
data: {
|
|
client_secret: string;
|
|
paymentIntentId: string;
|
|
return_url?: string;
|
|
public_key: string;
|
|
product: {
|
|
id: string;
|
|
name: string;
|
|
description: null | string;
|
|
price: {
|
|
id: string;
|
|
unit_amount: number;
|
|
currency: string;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
export interface ResponsePostExistPaymentData {
|
|
payment: {
|
|
status: string;
|
|
invoiceId: string;
|
|
};
|
|
}
|
|
|
|
export const createRequestPost = ({ data, token }: PayloadPost): Request => {
|
|
const url = new URL(routes.server.dApiPaymentCheckout());
|
|
const body = JSON.stringify(data);
|
|
return new Request(url, {
|
|
method: "POST",
|
|
headers: getAuthHeaders(token),
|
|
body,
|
|
});
|
|
};
|
|
|
|
export const createRequestGet = ({ token }: PayloadGet): Request => {
|
|
const url = new URL(routes.server.dApiTestPaymentProducts());
|
|
return new Request(url, { method: "GET", headers: getAuthHeaders(token) });
|
|
};
|