Работа с API на Django:
На сегодняшний день, я разобрался с API подключением к следующим ресурсам:
- Приват-Банк
- Новая Почта
- Маркетплейс Prom.Ua
Ниже привожу примеры запросов.
Приват-Банк
import hashlib def privat_bank (request): # === Переменные ========================================== url = "https://api.privatbank.ua/p24api/balance" password = "МОЙ-API-КЛЮЧ-В-ПРИВАТБАНКЕ" head = """<?xml version="1.0" encoding="UTF-8"?> <request version="1.0"> <merchant> <id>ID-МОЕГО-API-КЛЮЧА-В-ПРИВАТБАНКЕ</id> <signature>""" data = """<oper>cmt</oper> <wait>0</wait> <test>0</test> <payment id=""> <prop name="cardnum" value="№-МОЕЙ-КАРТЫ-В-ПРИВАТБАНКЕ" /> <prop name="country" value="UA" /> </payment>""" end_head = """</signature> </merchant> <data> """ footer = """ </data> </request>""" # === Шифрование Ключа ==================================== signature_md5 = md5((data+password).encode('utf-8')).hexdigest() signature_done = sha1(signature_md5.encode('utf-8')).hexdigest() data_done = head + signature_done + end_head + data + footer # === Запрос ============================================== res = post(url, data=data_done, headers={'Content-Type': 'application/xml; charset=UTF-8'}) # === Результат =========================================== print("Результат: ", res.text) return render(request, 'robot-privat-bank.html', locals());
Новая Почта
def nova_poshta (request): # === Переменные ========================================== novaposhta_url = "https://api.novaposhta.ua/v2.0/xml/" novaposhta_data = """<?xml version="1.0" encoding="UTF-8"?> <root> <apiKey>МОЙ-API-КЛЮЧ-В-НОВОЙ-ПОЧТЕ</apiKey> <calledMethod>getStatusDocuments</calledMethod> <methodProperties> <Documents> <item> <DocumentNumber>НОМЕР-ДЕКЛАРАЦИИ</DocumentNumber> <Phone></Phone> </item> </Documents> </methodProperties> <modelName>TrackingDocument</modelName> </root>""" # === Запрос ============================================== res = post(novaposhta_url, data=novaposhta_data, headers={'Content-Type': 'application/xml; charset=UTF-8'}) # === Результат =========================================== print("Результат: ", res.content) return render(request, 'robot-nova_poshta.html', locals());
Маркетплейс Prom.Ua (JSON)
AUTH_TOKEN = 'МОЙ-КЛЮЧ-В-PROM-UA' HOST = 'my.prom.ua' def prom_ua (request): connection = http.client.HTTPSConnection(HOST) # === Переменные ========================================== headers = {'Authorization': 'Bearer {}'.format(AUTH_TOKEN), 'Content-type': 'application/json'} method = 'GET' url = '/api/v1/orders/list' body = None body = json.dumps(body) # === Запрос ============================================== connection.request(method, url, body=body, headers=headers) response = connection.getresponse() response_data = response.read() # === Результат =========================================== print("Результат: ", response_data) return render(request, 'robot-prom-ua.html', locals());