Невозможно отправить запрос Xml

У меня проблема с отправкой xml запроса в pthon, потому что я не знаю, как отобразить код python в xml. Я понятия не имею, как визуализировать или перемещаться по тексту xml, как в примере ниже, или как визуализировать код python в текст xml перед отправкой запроса python.

def start_xml_payment(request):
      if request.method == 'POST':
        form = FormPaymentForm(request.POST)
        if form.is_valid():
              payment  = form.save() 
              first_name = request.user.first_name
              last_name = request.user.last_name
              
              email = request.user.email
              serdate = datetime.datetime.now()
              ref = payment.ref
              amount = payment.amount 
              fees = payment.fees
              datejson_str = json.dumps({'created_at': serdate}, default=str)

              url = 'https://secure.powerpay.com/API/v6/'
              xml = '''  <?xml version="1.0" encoding="utf-8"?>
                      <API3G>
                      <code>4332-9D7F-4E09-96D4-3D44E7A83EA3</Code>
                      <Transaction>
                      <PaymentAmount>{amount}</PaymentAmount >
                      <customerEmail>{email}</customerEmail>
                      </Transaction>
                      <Services>
                          <Service>
                            <ServiceDate>{datejson_str}</ServiceDate>
                          </Service>
                      </Services>
                      </API3G>
                    '''

              headers = {'Content-Type': 'application/xml'}
              response = requests.post(url, data=xml, headers=headers)
              response_data = response.json()
              TransToken = response_data["TransToken"]
              cashier_response = 'https://secure.powerpay.com/p.php?ID={TransToken}' 
              return  HttpResponseRedirect (cashier_response)
      else:
        form = FormPaymentForm(request.POST)
        return render(request, 'dpo/start_dpo_payment.html', {'form': form})

Ответ

<?xml version="1.0" encoding="utf-8"?><API3G><Result>000</Result><ResultExplanation>Transaction created</ResultExplanation><TransToken>803E06BC-CB80-4671-9F92-90326411ACFC</TransToken><TransRef>R39855046</TransRef></API3G>

Я хочу просмотреть этот xml-ответ и получить TransToken

TransToken = response_data["TransToken"]

я хочу что-то вроде этого

cashier_response = 'https://secure.powerpay.com/p.php?ID={TransToken}'

Выпуск 1. у меня проблема с получением транстокена, потому что я не могу просмотреть xml ответ, чтобы получить транстокен и объединить транстокен с моим url.

Мне нужна помощь в навигации по xml тексту, как в примере выше

Выпуск 2 Как мне преобразовать данные из формы в текст xml перед отправкой запроса на почту. Поскольку xml всегда начинается с """ xml кода """ в файле python, обычный код python не всегда будет работать, когда я пытаюсь вывести свой код python в xml. Я пытался использовать обычные питоновские {}, например {amount} при отображении суммы или {ref} при отображении ссылки, но это не сработало.

Мне нужна помощь, чтобы решить эту проблему

Я хочу просмотреть этот xml-ответ и получить TransToken

.

Смотрите ниже

import xml.etree.ElementTree as ET

xml = '''<?xml version="1.0" encoding="utf-8"?><API3G><Result>000</Result>
        <ResultExplanation>Transaction created</ResultExplanation>
        <TransToken>803E06BC-CB80-4671-9F92-90326411ACFC</TransToken>
        <TransRef>R39855046</TransRef>
    </API3G>
'''

root = ET.fromstring(xml)
print(root.find('.//TransToken').text)

output

803E06BC-CB80-4671-9F92-90326411ACFC
Вернуться на верх