API-соединение и получение возвращаемого результата

Простите за мой плохой английский

Здравствуйте, я использую брокерскую фирму в качестве платежного инструмента. Соединение с API успешно, и я получаю результат. Но я не могу использовать полученную информацию о результате.

payment_card = {
            'cardHolderName': kartisim,
            'cardNumber': kartno,
            'expireMonth': kartskt_ay,
            'expireYear': '2030',
            'cvc': karcvc,
            'registerCard': '0'
        }
        buyer = {
            'id': adres.id,
            'name': adres.adres_uye.username,
            'surname': 'Doe',
            'gsmNumber': '+905350000000',
            'email': adres.adres_uye.email,
            'identityNumber': '74300864791',
            'lastLoginDate': '2015-10-05 12:43:35',
            'registrationDate': '2013-04-21 15:12:09',
            'registrationAddress': adres.adres_detay,
            'ip': '85.34.78.112',
            'city': 'Istanbul',
            'country': 'Turkey',
            'zipCode': '34732'
        }
        address = {
            'contactName': 'Jane Doe',
            'city': 'Istanbul',
            'country': 'Turkey',
            'address': 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
            'zipCode': '34732'
        }            
        
        basket_items = []
        for bas in uye:
            basa = {
                'id': str(bas.id),
                'name': str(bas.sepet_urun.urun_baslik),
                'category1': str(bas.sepet_urun.urun_anakategori.anakategori_baslik),
                'category2': str(bas.sepet_urun.urun_altkategori.altkategori_baslik),
                'itemType': 'VIRTUAL',
                'price': str(bas.sepet_fiyat)
            }
            basket_items.append(basa)            
        print(basket_items)
        
        request_payload = {
            'locale': 'tr',
            'conversationId': '123456789',
            'price': str(sepetf),
            'paidPrice': str(sepetf),
            'currency': 'TRY',
            'installment': '1',
            'basketId': str(sepetid),
            'paymentChannel': 'WEB',
            'paymentGroup': 'PRODUCT',
            'paymentCard': payment_card,
            'buyer': buyer,
            'shippingAddress': address,
            'billingAddress': address,
            'basketItems': basket_items
        }
        
        payment = iyzipay.Payment().create(request_payload, options)
        print(payment.read().decode('utf-8'))
        return HttpResponse(payment["status"])

Я не могу использовать полученную информацию о результате. Возвращенный результат выглядит следующим образом enter image description here

Ошибка, которую я получаю, выглядит следующим образом: 'HTTPResponse' object is not subscriptable

Похоже, что проблема здесь.

return HttpResponse(payment["status"])

payment возвращает объект HTTPResponse response и вы не можете напрямую индексировать status. Вместо этого следует использовать атрибут .status.

Если вы хотите вернуть JSON в качестве ответа, вы можете использовать класс JsonResponse из django.http модуля .

return JsonResponse(json.loads(payment.read().decode('utf-8')))
Вернуться на верх