Создание заказа

Чтобы сгенерировать ссылку на оплату, требуется создать новый заказ (платёж)

POST https://api.paynstars.com/createOrder

НазваниеТипОписание

project_id*

integer

ID проекта

order_id*

string

Ваш внутренний ID заказа

amount*

float

Сумма заказа

sign*

string

currency

string

"STARS" - в Звёздах "USD" - в долларах *По умолчанию - "STARS"

paygate_id

int

ID платёжного шлюза 1 - telegram stars *другие шлюзы подключаются на индивидуальных условиях

Ответ:

{
    "url":"https://t.me/paynstars_bot?start=pay-D46DH89fve46x1v4"
}

Примеры кода:

import crypto from 'crypto'; //npm install crypto
import fetch from 'node-fetch'; //npm install node-fetch

async function getPaymentLinkPaynStars(order_id, amount) {
    // Формируем объект данных для отправки
    let request_data = {
        "project_id": 1, // Идентификатор проекта
        "amount": amount, // Сумма заказа
        "order_id": order_id, // ID заказа
        "currency": "USD", 
        // валюта заказа (пользователю выставляется счёт в STARS с округлением в большую сторону)
        "secret_key": "UCi2jSi7btPg91t0bllFPSV9IJ1KWnCUT" // Секретный ключ проекта
    }
    // Получаем отсортированные ключи объекта данных
    let sortedKeys = Object.keys(request_data).sort();
    // Формируем строку данных для подписи
    let data = sortedKeys.map(key => request_data[key]).join(':');
    // Создаем подпись для данных
    let sign = crypto.createHash('md5').update(data).digest('hex');
    // Удаляем секретный ключ из объекта данных (чтобы не отправлять его)
    delete request_data.secret_key;
    // Добавляем подпись к объекту данных
    request_data.sign = sign;

    try {
        // Отправляем запрос на создание заказа
        let response = await fetch('https://api.paynstars.com/createOrder', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(request_data) // Отправляем данные в формате JSON
        });
        // Получаем ответ от сервера
        const res_data = await response.json(); // Преобразуем ответ в JSON
        if(res_data.message)
            throw res_data.message; //Пришло сообщение об ошибке
        return res_data.url;//Возвращаем ссылку на оплату
    } catch (e) {
        // Если произошла ошибка, возвращаем текст ошибки
        return e;
    }
}

console.log(await getPaymentLinkPaynStars("ORD11648", 100)); // ссылка на оплату

Last updated