#django #serialization #django-rest-framework #stripe-payments
#django #сериализация #django-rest-framework #stripe-платежи
Вопрос:
В моем API, использующем Django Rest Framework, у меня есть представление на основе функций для части процесса регистрации для использования Stripe. Представление успешно отправляет все в stripe и обновляет базу данных моих сайтов соответствующей информацией, но при попытке вернуть данные сериализатора я получаю эту ошибку:
кодек ‘utf-8’ не может декодировать байт 0xff в позиции 0: недопустимый начальный байт
Предполагая, что это связано с файлами, необходимыми для идентификации личности
Вот вид:
@api_view(['POST'])
def StripePersonalOnboard(request):
serializer = StripePersonalSerializer(data=request.data)
profile = get_object_or_404(Profile, user=request.user)
if serializer.is_valid():
phone_number = serializer.validated_data.get('phone_number')
ss_number = serializer.validated_data.get('ss_number')
id_front = serializer.validated_data.get('id_front')
id_back = serializer.validated_data.get('id_back')
try:
stripe.api_key = settings.STRIPE_TEST_SEC_KEY
id_front_file = stripe.File.create(
purpose='identity_document',
file=id_front
)
id_back_file = stripe.File.create(
purpose='identity_document',
file=id_back
)
stripe.Account.modify(
profile.stripe_acc_id,
individual= {
'phone': phone_number,
'id_number': ss_number,
'verification': {
'document': {
'back': id_back_file,
'front': id_front_file
}
}
}
)
profile.stripe_id_front_tkn = id_front_file.id
profile.stripe_id_back_tkn = id_back_file.id
profile.save(update_fields=['stripe_id_front_tkn', 'stripe_id_back_tkn'])
return Response(serializer.validated_data)
except stripe.error.InvalidRequestError as e:
#invalid parameters were provided
return Response(e.error.message)
else:
return Response(serializer.errors)
Комментарии:
1. Какая строка вызывает эту ошибку? Что показывает трассировка стека?
2. @floatingLomas да, это когда я пытаюсь вернуть проверенные данные из сериализатора
3. Не уверен, что предложить, так как у меня действительно недостаточно информации, чтобы помочь здесь.