Отправить POST запрос в api Сбера

1. user1302499 03.12.20 10:44 Сейчас в теме
	WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
			WinHttp.SetTimeouts(100000,100000,100000,100000);
			
			WinHttp.Option(2,"utf-8");                   		
			WinHttp.Open("POST","https://3dsec.sberbank.ru/payment/webservices/merchant-ws");
					
			WinHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
			WinHttp.Send(СтрXML);
Показать


Возвращает Internet Server Error. Думаю, я как-то не так заполняю xml или отправляю запрос. Вот Сам XML Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
	<soapenv:Header>
		<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-%20wssecurity-utility-1.0.xsd">
			<wsse:UsernameToken wsu:Id="UsernameToken-87">
				<wsse:Username>claystreet-api</wsse:Username>
				<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">claystreet</wsse:Password>
			</wsse:UsernameToken>
		</wsse:Security>
	</soapenv:Header>
	<soapenv:Body>
		<mer:registerOrder>
			<Order merchantOrderNumber="CS1C-000366" amount="3150">
				<returnUrl>https://test.ru</returnUrl>;
				<orderBundle>
					<cartItems>
						<Items positionId="1">
							<name>Ваза для цветов с кроликами, 1700 мл, Белый</name>
							<quantity measure="шт">1</quantity>
							<itemCode>D157</itemCode>
						</Items>
					</cartItems>
				</orderBundle>
			</Order>
		</mer:registerOrder>
	</soapenv:Body>
</soapenv:Envelope>
Показать


Ссылка на их гайд по интеграции: https://securepayments.sberbank.ru/wiki/doku.php/integration:api:ws:requests:register_cart
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. HAMAZ 7 03.12.20 10:52 Сейчас в теме
Возвращает Internet Server Error
может Internal? код состояния показаьельнее. И зачем Com обьектом отправлять запрос?
3. user1302499 03.12.20 15:16 Сейчас в теме
(2)
И зачем Com обьектом отправлять запрос?


А чем?
5. HAMAZ 7 04.12.20 11:56 Сейчас в теме
(3) ну так есть же объекты - HTTPЗапрос, HTTPСоединение. Ими можно. Там и тело можно указать и заголовки и методы разные доступны.
а для проверки и заполнения XML XDTO имеется.

Или у вас 7.7?
4. user1302499 03.12.20 15:17 Сейчас в теме
(2)
может Internal? код состояния показаьельнее.


Код состояния - 500;
Да, Internal, думал одно писал другое)
6. user1302499 04.12.20 12:22 Сейчас в теме
7. user597086_dir_box 9 03.02.21 18:18 Сейчас в теме
(6) Ну тогда подскажите как у вас заработало, и что нужно сделать))
9. user597086_dir_box 9 04.02.21 10:04 Сейчас в теме
(8)
return

Спасибо, я уже решил вопрос)
Вы все-таки продвигаете передачу запросов через Com-объект))
12. user1302499 04.02.21 11:13 Сейчас в теме
(9) Не знаю как еще можно)
10. user597086_dir_box 9 04.02.21 10:07 Сейчас в теме
(8)
rnameTo

Да и логин с паролем я бы почистил перед выкладкой кода)
11. user1302499 04.02.21 11:07 Сейчас в теме
14. user597086_dir_box 9 04.02.21 12:02 Сейчас в теме
13. user597086_dir_box 9 04.02.21 12:01 Сейчас в теме
Соединение = Новый HTTPСоединение("securepayments.sberbank.ru/payment/webservices/merchant-ws",,,,,,SSL, Ложь); 

Заголовки = Новый Соответствие;

Заголовки.Вставить("Content-Type", "text/xml;charset=UTF-8");
Заголовки.Вставить("SOAPAction", "");
HTTPЗапрос = Новый HTTPЗапрос("/registerOrder", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(SOAP);

Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Ответ = Результат.ПолучитьТелоКакСтроку();
Показать
15. user1302499 04.02.21 12:04 Сейчас в теме
(13) Ну я долго с этим мучался... Поэтому как получилось...)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот