Перейти к публикации

mikeKlech

Пользователи
  • Публикации

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О mikeKlech

  • Звание
    Новичок

Посетители профиля

Блок посетителей профиля отключен и не будет отображаться другим пользователям

  1. mikeKlech

    sms send POST error 401 Not authorized javascript node.js

    Извините, нет времени разбираться в вашем коде, возьмите мои готовые функции, работают на 100%: // шифровка const crypto = require('crypto'); const { base64encode } = require('nodejs-base64'); const httpBuildQuery = require('http-build-query'); // для запросов const fetch = require('node-fetch'); sortObjKeys = (obj) => { var ordered = {}; Object.keys(obj).sort().forEach(function (key) { ordered[key] = obj[key]; }); return ordered; } //только тут стоит метод GET замените на POST const makeRequest = async (method, params) => { let sortedParams = sortObjKeys(params); let querry = httpBuildQuery(sortedParams); let md5 = crypto.createHash('md5').update(querry).digest('hex'); let text = method + querry + md5; let hash = crypto.createHmac('sha1', secretKey).update(text).digest('hex'); let sign = base64encode(hash); // создаем заголовок let Authorization = `${key}:${sign}`; let request = await fetch(`https://api.zadarma.com${method}?${querry}`, { headers: { Authorization: Authorization }, method: 'GET' }); let response = await request.json(); console.log(response) return response; };
  2. mikeKlech

    Api Как Использовать

    Было бы очень хорошо, Igor. Увидел что у многих проблемы при отправлении запроса с параметрами. Параметры нужно вставить: let querry = httpBuildQuery({ number: '38063*******' }); 1. В md5 кодер let md5 = crypto.createHash('md5').update(querry).digest('hex'); 2. В строку запроса для кодирования sha1 let text = method + querry + md5; let hash = crypto.createHmac('sha1', secretKey).update(text).digest('hex'); 3. Непосредственно в саму строку запроса, где перед параметрами ставим знак вопроса. https://api.zadarma.com/v1/info/price/?number=38063*********
  3. mikeKlech

    Api Как Использовать

    Если кто-то как и я пользуется node.js вместо php: // шифровка var crypto = require('crypto'); const { base64encode, base64decode } = require('nodejs-base64'); // для запросов const fetch = require('node-fetch'); let secretKey = 'ваш секретный ключ' let key = 'ключ пользователя' let method = `/v1/info/balance/`; // для проверки баланса параметров указывать не нужно, поэтому вставляем пустую строку let md5 = crypto.createHash('md5').update('').digest('hex'); let text = method + md5; let hash = crypto.createHmac('sha1', secretKey).update(text).digest('hex'); var sign = base64encode(hash); // создаем заголовок let Authorization = `${key}:${sign}`; fetch('https://api.zadarma.com/v1/info/balance/', { headers: { Authorization }, }, ).then(res => res.json()).then(console.log) // { status: 'success', balance: 3.269, currency: 'USD' }
×
×
  • Создать...