Lightning LND Rest API в Django API Обработка POST-запросов при кодировании/декодировании, получение некорректного Padding
Я пытаюсь сделать Django API для обработки молниеносных платежей, и мне нужно реализовать некоторые функции, такие как разблокировка кошелька, смена пароля и т.д. Я получаю "Incorrect padding" и не знаю, как это исправить. Вот мой view.py:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework.parsers import JSONParser
import os
import base64, codecs, json, requests
class ChangePassword(APIView):
def post(self, request):
url = "https://localhost:8080/v1/changepassword"
cert_path = "/Users/user1/Library/Application Support/Lnd/tls.cert"
data = {
"current_password": base64.b64decode(
request.data["current_password"]
).decode("utf-8"),
"new_password": base64.b64decode(request.data["new_password"]).decode(
"utf-8"
),
}
r = requests.post(url, verify=cert_path, data=json.dumps(data))
if r.status_code == 200:
data = r.json()
return Response(data, status=status.HTTP_200_OK)
return Response({"error": "Request failed"}, status=r.status_code)
Я использую документацию LND Rest https://api.lightning.community/#v1-changepassword.
Заранее спасибо за помощь :)
Решение заключается в том, чтобы изменить способ кодирования/декодирования следующим образом:
...
data = {
"wallet_password": base64.b64encode(
bytes(request.data["wallet_password"], "UTF-8")
).decode(),
...