Top.Mail.Ru
Ответы

Необходимо переписать генерацию POST запроса с php curl в JSON формате на Python

Решил написать телеграм бота на Python для сайта digiseller. В коде пока слабоват, работу бота смог сам написать (старт, кнопочки, текст).
Перешёл к основной задачи - это проверка номера счёта на существование с помощью API запроса к digiseller. В ходе работы понадобился токен, который генерируется тоже запросом, в интернете нашёл для него код, но он был php curl.
Нужно сделать тоже самое, только на python.
Вот сам код:

12345678910111213141516171819202122232425262728293031
 $seller = '123456';
$ID = 'ABCDEF123456789ABCDEF';
$timestamp = $_SERVER['REQUEST_TIME'];
$sign = hash('sha256', $ID . $_SERVER['REQUEST_TIME']);
  
$data = array(
    'id_seller' => $seller,
    'timestamp' => $timestamp, 
    'sign' => $sign 
    ); 
 
$payload = json_encode($data); 
 
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL,"https://api.digiseller.ru/api/apilogin"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-Type: application/json", 
    "Accept: application/json" 
  ));
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$server_output = curl_exec($ch);
 
echo $server_output;
 
curl_close ($ch); 
По дате
По Рейтингу
Аватар пользователя
Новичок

тоже самое, только на python
Проверял - их сервак все понимает, отвечает, но ругается, что не уникальная отметка времени. Сами поищите, как на питоне получить аналог $_SERVER['REQUEST_TIME']

123456789101112131415
 import requests 
import hashlib
 
URL = 'https://api.digiseller.ru/api/apilogin' 
user_id = 'ABCDEF123456789ABCDEF' 
sign = hashlib.sha256(user_id.encode('utf-8')).hexdigest() 
#timestamp = $_SERVER['REQUEST_TIME']
 
data = dict() 
data['id_seller'] = '22343' 
data['sign'] = sign 
#data['timestamp'] = timestamp
 
r = requests.post(URL, data) 
print(r.text)