Написать скрипт на Node.js/TypeScript для регистрации отправления на сайте Почта России

Задание закрыто
Стоимость:Договорная
Срок выполнения:30 дней
Варианты оплаты:Планируется использовать Безопасную сделку
Дата публикации:2024-09-05 22:39
Обновлено:2024-09-05 22:44
Был на сайте:2024-09-10 15:42

Написать скрипт на Node.js/TypeScript для регистрации отправления на сайте Почта России

 
Задача

Важно: Никаких предоплат, все через безопастную сделку, проценты мы берем на себя.

Разработать скрипт на Node.js с использованием TypeScript и Axios для регистрации отправлений на сайте Почты России.

Требуемый функционал:

- Скрипт должен авторизоваться на сайте Почты России, управляя необходимыми заголовками и cookies.

- На основе входных данных о посылке (тип отправления — бандероль, форма — CN22) и предоставленных данных отправителя, получателя и адреса, скрипт должен создать новое отправление.

- В выходных данных скрипт должен возвращать номер отслеживания и PDF-файл почтового ярлыка в бинарном формате.

- Я дам вам скрипт, который делает это используя Pupeteer, чтобы вам було проще понять что конкретно мы генерируем и по каким данным.

Входные данные:

Функция принимает объект с деталями отправления следующего формата:

```typescript
export interface IPochtaShipmentDetails {
customerName: string; // Имя получателя, например, John Doe
country: string; // Страна, например, Сое...

Видеть полную информацию и оставлять заявки могут только авторизованные пользователи.
Nomadic Soft
Специализация: Программирование и IT
  • 50 000 руб7 дней
Здравствуйте!

Мы разработаем вам скрипт для регистрации отправлений на Node.js.

Некоторые из наших актуальных последних проектов :

https://oneclick.de — инструмент управления проектами, немного похожий на Trello (есть Kanban), немного на Jira, немного на TimeDoctor (есть тайм-трекер). Также есть модуль биллинга, модуль отчетов и т.д.
https://app.insuranceprofessionalsrating.com — приложение SaaS. Как оценка FICO, но для страховых специалистов. Имеет разные типы пользователей, лицензии, сертификаты, систему управления обучением и т. д.
https://aminos.ai — платформа для создания чат-ботов. Имеет возможности ветвления, различные типы сообщений и т. д.
https://corcava.com - Это новый инструмент для простого управления всеми вашими бизнес-процессами. Маркетинг, аутрич, продажи, управление проектами, выставление счетов - все, от поиска клиента до поступления денег в банк!

У нас есть опыт поддержки как крупных проектов (10 человек фуллтайм) так и мелких (несколько часов в неделю).

Буду рад услышать детали и сделать расчет!

------

Telegram: @Glebque

Upwork (Top-Rated Plus/ 3% лучших разработчиков на Upwork) —
https://www.upwork.com/ag/nomadicsoft/
Станислав Гулевич
Специализация: Тексты
  • 40 000 руб45 дней
import axios, { AxiosInstance } from 'axios';

export interface IPochtaShipmentDetails {
customerName: string;
country: string;
city: string;
state: string;
zip: string;
address: string;
weight: number;
nrOfBooks: number;
cost: number;
}

export interface IShipmentResponse {
trackingNumber: string;
pdfFile: Buffer;
}

class PochtaRussiaClient {
private client: AxiosInstance;
private apiUrl: string = 'https://otpravka-api.pochta.ru'; // Примерный URL API Почты России

constructor(apiKey: string, authToken: string) {
this.client = axios.create({
baseURL: this.apiUrl,
headers: {
'Authorization': `AccessToken ${authToken}`,
'X-User-Authorization': `Basic ${apiKey}`,
'Content-Type': 'application/json'
}
});
}

public async createShipment(details: IPochtaShipmentDetails): Promise<IShipmentResponse> {
try {
// Пример данных для запроса
const shipmentData = {
address: {
country: details.country,
city: details.city,
state: details.state,
zip: details.zip,
addressLine: details.address
},
recipient: {
name: details.customerName,
},
package: {
weight: details.weight,
content: [
{
name: 'Books',
quantity: details.nrOfBooks,
value: details.cost,
},
],
formType: 'CN22',
packageType: 'banderol',
}
};

// Запрос на создание отправления
const response = await this.client.post('/1.0/user/shipment', shipmentData);
const trackingNumber = response.data.barcode;

// Запрос на получение PDF файла ярлыка
const labelResponse = await this.client.get(`/1.0/forms/${trackingNumber}/print`, {
responseType: 'arraybuffer',
});

Кусок кода.
Остальное - при выборе)
Дарья Котова
Специализация: Веб-разработка
  • 38 000 руб30 дней
Tg darfhh
Takeda Daicha
Специализация: Программирование и IT
  • 10 руб30 дней
Привет, имею большой опыт в разработке скриптов, сайтов, парсеров и просто програм на python, одним словом пишу всо, также пишу приложения на Андроид, с удовольствием возьмусь за работу, сделаю всо в лучшем виде и в кратчайшие сроки, также помогу запустить и разобраться.

Мое портфолио: https://ochistka35.wixsite.com/daichasportfolio
Мой телеграм: https://t.me/daichitakeda

Оставлять заявки могут только авторизованные пользователи.