Невозможно отправить запрос 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