Итак, я захотел получить токен p2p и мне выдало ошибку, что получение токена невозможно.
Я решил попробовать получить его кодом и сейчас расскажу вам как получить api and p2p токен.
Вам потребуется получить head токен по этой статье:
https://vk.com/@682226009-poluchenie-tokenov-tokenhead-i-tokentail
Далее нужно установить Python и запустить код и ждать смс кода:
Код Python:
Код
import requests
def get_url_encoded_object(data):
form_body = []
for key, value in data.items():
encoded_key = requests.utils.quote(key)
encoded_value = requests.utils.quote(value)
form_body.append(encoded_key + "=" + encoded_value)
form_body = "&".join(form_body)
return form_body
def request_token_creation():
data = {
"response_type": "code",
"client_id": "qiwi_wallet_api",
"client_software": "WEB v4.96.0",
"username": "тут номер киви кошелька",
"scope": "read_person_profile read_balance read_payment_history accept_payments get_virtual_cards_requisites write_ip_whitelist",
"token_head": "тут head token",
"token_head_client_id": "web-qw"
}
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "тут куки с сайта киви"
}
response = requests.post("https://qiwi.com/oauth/authorize", headers=headers, data=get_url_encoded_object(data))
print(response.content)
if response.status_code != 200 or "code" not in response.json():
print(response.text)
else:
# ТУТ ЖДЕМ СМС КОД И ПОТОМ ЗАПУСКАЕМ ВТОРУЮ ФУНКЦИЮ С ПАРАМЕТРОМ response.json()["code"]
pass
request_token_creation()
Далле нужно получить api токен, вставляем этот код:
Код Python:
Код
import requests
def get_url_encoded_object(data):
form_body = []
for key, value in data.items():
encoded_key = requests.utils.quote(key)
encoded_value = requests.utils.quote(value)
form_body.append(encoded_key + "=" + encoded_value)
form_body = "&".join(form_body)
return form_body
def confirm_token_creation(code):
data = {
"grant_type": "urn:qiwi:oauth:grant-type:vcode",
"client_id": "qiwi_wallet_api",
"code": code,
"vcode": "тут код который придет"
}
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "Тут куки с сайта киви"
}
response = requests.post("https://qiwi.com/oauth/token", headers=headers, data=get_url_encoded_object(data))
if response.status_code == 200 and "access_token" in response.json():
print("TOKEN: " + response.json()["access_token"])
else:
print(response.content)
confirm_token_creation('сюда нужно ввести вывод с кода выше')
А чтоб получить p2p токен, нужно этот код:
Код Python:
Код
import requests
def create_p2p_merchant_key(token):
data = {
"keysPairName": "сюда название любое",
"serverNotificationsUrl": ""
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer " + token
}
response = requests.post("https://edge.qiwi.com/widgets-api/api/p2p/protected/keys/create", headers=headers, json=data)
if response.status_code == 200:
print("Ключ создан")
print(response.json())
elif response.status_code == 401:
print("Ключ заблокирован")
elif response.status_code == 403:
print("Недостаточно прав")
else:
print(response.text)
create_p2p_merchant_key('тут апи который вы получали выше в коде')
Код желательно выполнять поочередно, будут вопросы пишите, постараюсь ответить