Ошибка при запросе к платежной системе Binance API

При таком запросе

import requests
import json

headers = {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Content-Length": "123",
    "content-type": "application/json",
    "Host": "p2p.binance.com",
    "Origin": "https://p2p.binance.com",
    "Pragma": "no-cache",
    "TE": "Trailers",
}

data = {
  "asset": "USDT",
    "fiat": "RUB",
    "page": 1,
    "payTypes": ["Tinkoff"],
    "rows": 1,
    "tradeType": "SELL",
    "transAmount":  "30000"
}

request_data = requests.post('https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search', headers=headers, json=data).json()

print(request_data['data'][0]['adv']['price'])

получаю следующую ошибку:

Traceback (most recent call last): File "C:\Users\artem\source\repos\PythonParser2\PythonParser2\PythonParser2.py", line 30, in print(request_data['data'][0]['adv']['price']) IndexError: list index out of range

Это значит, что при запросе, значение 'price' равно null

Посмотрев, что же все таки получает В поле 'message' Выводит вот такое сообщение:

Dear User, this payment method is unsupported on Binance P2P. You can still buy and sell cryptocurrency on our official partner's platform https://www.pexpay.com/en

Платформа pexpay меня не устраивает. Хотел поинтересоваться как эту ошибку можно обойти.


Ответы (1 шт):

Автор решения: artem_tmm

у binance есть идентификаторы для платежных систем. Например у Tinkoff идентификатор TinkoffNew. Тогда в поле PayTypes надо было писать TinkoffNew. Для того чтобы узнать названия остальных идентификаторов платежных систем я отправлял большой запрос на максимальное количество page(около 30) и rows(20), paytypes оставлял пустым. После чего получал большой файл json, в котором поле identifier и есть то что мне нужно было. Дальше с помощью linq нетрудно было отфильтровать.

→ Ссылка