Home > Back-end >  API connection and getting the returned result
API connection and getting the returned result

Time:11-27

I'm sorry for my bad english

Hello, I am using a brokerage firm for payment instrument. The API connection is successful and I get the result. But I can't use the returned result information.

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"])

I cannot use the returned result information. The returned result is as follows enter image description here

The error I get is as follows: 'HTTPResponse' object is not subscriptable

CodePudding user response:

Looks like the issue is here.

return HttpResponse(payment["status"])

payment returns an HTTPResponse response object and you cannot directly index the status. Instead you should use .status attribute.

If your intention is to return JSON back as response you could use JsonResponse class from django.http module.

return JsonResponse(json.loads(payment.read().decode('utf-8')))
  • Related