Как обработать XML запрос
17 повідомлень
#15 років тому
Здравствуйте. Дописываю свой клиентский магазин, используя XML Digiseller (посилання)
Сервис Digiseller позволяет продавать различные цифровые товары, и среди них есть такой тип товара как "Форма для заполнения регистрационных данных"
В двух словах, как это работает:
- покупатель оплачивает товар
- затем заполняет форму с произвольными полями
- после этого на мой сервер отправляется XML-запрос в виде
<request>
<id>123456</id> // ID товара
<inv></inv> // номер счета
<sign></sign> // контрольная сумма
<fio></fio> // поле формы
<email></email> // поле формы
</request>
запрос отправляется на URL, который я могу задать сам
- затем я должен обработать запрос и отправить Digiseller ответ в формате
<?xml version="1.0" encoding="windows-1251"?>
<response>
<id>123456</id> // ID товара
<inv></inv> // номер счета
<goods></goods> // собственно, продаваемый товар в виде PIN-кода
</response>
И все. Документации о том, в каком виде приходит XML-запрос — нет.
В переменной $_POST на указанный URL ничего не приходит. Каким еще образом узнать, что запрос пришел?
Скрипты магазин написаны на PHP. Скилл у меня сильно ниже среднего, поэтому для профессионалов вопрос может показаться детским =)
Если вы работали с этим сервисом или просто знаете ответ — буду очень благодарен советам.
17 повідомлень
#15 років тому
VeMax, не совсем понял ваш вопрос.Digiseller (DS) отправляет запрос на мой сервер. После этого мой скрипт должен обработать его, выбрать нужный ПИН-код из базы и отправить ответ обратно DS
На какой урл отправлять XML-ответ, опять же, непонятно. В документации этого нет, но я подозреваю, что из полученного запроса я могу вытащить урл.
Вопрос - как?
731 повідомлення
17 повідомлень
#15 років тому
Окей, попробуем этот урл.А как все-таки "поймать" входящий запрос, чтобы потом его обработать?
85 повідомлень
#15 років тому
Запрос наверняка идет через XML-RPC
17 повідомлень
#15 років тому
VeMax, newartstyle, большое спасибо за советы. Со всем разобрался, все работает:
Запрос можно вытащить из $HTTP_RAW_POST_DATA
Ответ не нужно никуда отсылать, достаточно сформировать XML и вывести его в этом же файле.