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(),

...
Вернуться на верх