|
Соединение с сайтом + передача параметров | ☑ | ||
---|---|---|---|---|
0
NcSteel
24.07.08
✎
14:22
|
Как данный код перевести с php на 1с.
<?php header('Content-Type: text/html; charset=utf-8'); $request = '<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <PlaceOrder xmlns="https://KORM.kaspersky.com/"> <comment>Le commentaire</comment> <deliveryMethodName>Email</deliveryMethodName> <deliveryEmail>[email protected]</deliveryEmail> <deliveryDate>'.date('Y-m-d').'T00:00:00Z</deliveryDate> <partNumber>KL4853NHAYH</partNumber> <quantity>1</quantity> <notificationEmail>[email protected]</notificationEmail> <licenseInfo>L\'information de licence</licenseInfo> <customerName>Le nom de client</customerName> <customerEmail>[email protected]</customerEmail> <contactPerson>La personne pour contacter</contactPerson> <phone>Phone</phone> <fax>Fax</fax> <country>FR</country> <postcode>Postcode</postcode> <city>La ville</city> <streetAddress>L\'address</streetAddress> <purchaseOrder>L\'identificateur de commande dans votre système</purchaseOrder> <customerCode>L\'identificateur de client dans votre système</customerCode> </PlaceOrder> </soap:Body> </soap:Envelope>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://KORM.kaspersky.com/Sdk/v1.4/Sales.asmx"); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSLKEY, 'C:\Inetpub\wwwroot\PrivateKey.pem'); curl_setopt($ch, CURLOPT_SSLKEYPASSWD, 'Password123'); curl_setopt($ch, CURLOPT_SSLCERT, 'C:\Inetpub\wwwroot\PublicKey.pem'); $headers = array( 'Host: korm.kaspersky.com', 'Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($request), 'SOAPAction: "https://KORM.kaspersky.com/PlaceOrder"' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); echo '<pre>'; curl_exec($ch); echo '</pre>'; curl_close($ch); ?> |
|||
1
NcSteel
24.07.08
✎
14:25
|
WEB сервис , фирмы Касперского, который обрабатывает входные параметры и формирует лицензионное соглашение . Необходимо реализовать связь с этим сервисом
|
|||
2
NcSteel
24.07.08
✎
14:33
|
Подскажите хоть куда капнуть, писать ВК или можно встроенным языком обойтись?
|
|||
3
DK_L
24.07.08
✎
14:34
|
Функция ПолучитьДанныеПользователейУдаленно(Знач АдресВэбСервиса,Знач ПользовательВэбСервиса,Знач ПарольПользователяВэбСервиса) Экспорт
Определения = Новый WSОпределения(АдресВэбСервиса + "?wsdl",ПользовательВэбСервиса,ПарольПользователяВэбСервиса); //ИмяФайлаБезРасширения = ПолучениеИмяФалаБезРасширения(АдресВэбСервиса);// разложить АдресВэбСервиса на АдресВэбСервисаБезРасширения Прокси = Новый WSПрокси(Определения, "WebServiceV8", "MainService", "MainServiceSoap"); Прокси.Пользователь = ПользовательВэбСервиса; Прокси.Пароль = ПарольПользователяВэбСервиса; Возврат Прокси.GetActiveUsers(); КонецФункции |
|||
4
NcSteel
24.07.08
✎
14:37
|
Я как понимаю это несовсем то?
|
|||
5
NcSteel
24.07.08
✎
14:41
|
aUrlRequest = "https://KORM.kaspersky.com/";
Определения = Новый WSОпределения(aUrlRequest); //ИмяФайлаБезРасширения = ПолучениеИмяФалаБезРасширения(АдресВэбСервиса);// разложить АдресВэбСервиса на АдресВэбСервисаБезРасширения Прокси = Новый WSПрокси(Определения, "WebServiceV8", "MainService", "MainServiceSoap"); //Прокси.Пользователь = ПользовательВэбСервиса; //Прокси.Пароль = ПарольПользователяВэбСервиса; Значение = Прокси.GetActiveUsers(); Выдает ошибку - {ВнешняяОбработка.ВнешняяОбработка1(2)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка: https://KORM.kaspersky.com Определения = Новый WSОпределения(aUrlRequest); |
|||
6
Garkin
24.07.08
✎
14:48
|
Посмотри здесь
Книга знаний: v8: Использование внешних web-сервисов в 1С:Предприятие 8 возможно будет полезно |
|||
7
shuhard
24.07.08
✎
14:57
|
(5) думаешь в (3) wsdl для форсу используется ?
|
|||
8
NcSteel
24.07.08
✎
15:21
|
Суть в том что индентификация осуществляется через сертификат, который подключается к браузеру.
|
|||
9
NcSteel
24.07.08
✎
15:22
|
ПРимер кода на .NET:
// Create an instance of the proxy class. Kaspersky.Korm.Sales salesService = new TestSdkClient.Kaspersky.Korm.Sales(); // Set network proxy server (if applicable). salesService.Proxy = new System.Net.WebProxy(); // Use default network credentials to access the network proxy server (if applicable). salesService.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; // Open certificate file. System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate(@"Certificate.pfx", "Password123", System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.UserKeySet); // Add the certificate to ClientCertificates collection of the proxy class instance. salesService.ClientCertificates.Add(x509Certificate); try { // Call PlaceOrder method. string orderNumber = salesService.PlaceOrder(null, null, null, null, null, "Test Order", "Email", "[email protected]", DateTime.SpecifyKind(DateTime.Today, DateTimeKind.Utc), "KL4853NHAYH", 1, null, null, "[email protected]", null, null, "License information", "Customer Name", "[email protected]", "Contact Person", "Phone", "Fax", "GB", null, "Postcode", "City", "Street Address", "Order identifier in your system", "Customer identifier in your system"); Console.WriteLine("Order number: {0}", orderNumber); } catch (System.Net.WebException webException) { // Handle network error. Console.WriteLine("Network error: {0}", webException.Message); } catch (System.Web.Services.Protocols.SoapException soapException) { // Handle processing (bussiness) error. Console.WriteLine("Processing error: {0}", soapException.Message); } |
|||
10
NcSteel
28.07.08
✎
12:44
|
Попробывал на основании примера на .NET написать dll"ку. К сожеленью знаний мало , только 2 дня изучаю язык. Вот код:
using System; using System.ComponentModel; using System.IO; namespace Korm1CDLL { public class Korm1CConnection : Component { public string ConnectSait(string TestOrder, string Email, string TestEmail, string Article, int Coli4ectvo ) { // Create an instance of the proxy class. Kaspersky.Korm.Sales salesService = new TestSdkClient.Kaspersky.Korm.Sales(); // Set network proxy server (if applicable). salesService.Proxy = new System.Net.WebProxy(); // Use default network credentials to access the network proxy server (if applicable). salesService.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; // Open certificate file. System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate(@"Certificate.pfx", "Password123", System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.UserKeySet); // Add the certificate to ClientCertificates collection of the proxy class instance. salesService.ClientCertificates.Add(x509Certificate); try { // Call PlaceOrder method. string orderNumber = salesService.PlaceOrder(null, null, null, null, null, TestOrder, Email, TestEmail, DateTime.SpecifyKind(DateTime.Today, DateTimeKind.Utc), Article, Coli4ectvo , null, null, "[email protected]", null, null, "License information", "Customer Name", "[email protected]", "Contact Person", "Phone", "Fax", "GB", null, "Postcode", "City", "Street Address", "Order identifier in your system", "Customer identifier in your system"); Console.WriteLine("Order number: {0}", orderNumber); } catch (System.Net.WebException webException) { // Handle network error. Console.WriteLine("Network error: {0}", webException.Message); } catch (System.Web.Services.Protocols.SoapException soapException) { // Handle processing (bussiness) error. Console.WriteLine("Processing error: {0}", soapException.Message); } return "Privet"; } } } При компиляции пишет что : error CS0246: "Неудалось найти имя типа или простаранство имен "Kaspersky" [Промущена директива ising или ссылка на сборку?] error CS0246: "Неудалось найти имя типа или простаранство имен "TestSdkKlient" [Промущена директива ising или ссылка на сборку?] Куда копать ) |
|||
11
NcSteel
28.07.08
✎
12:45
|
Понятно что необходимо указать пространство имен , но как?
|
|||
12
NcSteel
28.07.08
✎
13:02
|
Ап...
|
|||
13
NcSteel
28.07.08
✎
15:00
|
(6) Попытался сделать как в Статья и создать веб - ссылку 'http://webservices.aeroflot.aero/flightstatus.wsdl но конфигуратор ругнулся:
Ошибка доступа к файлу 'http://webservices.aeroflot.aero/flightstatus.wsdl' по причине: Ошибка работы с Интернет: failure when receiving data from the peer |
|||
14
NcSteel
28.07.08
✎
16:23
|
Пробую на сервере (захожу через терминал) создать веб сервис , создает без проблем. а на собственной машине пишет ошибку, подозреваю что есть фишка с прокси?!
|
|||
15
NcSteel
28.07.08
✎
16:41
|
ВебСервис = Новый WSОпределения("https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL");
Выдает ошибку .... {ВнешняяОбработка.ВнешняяОбработка1(1)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка: https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL по причине: {ВнешняяОбработка.ВнешняяОбработка1(1)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка: https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL по причине: При создании описания сервиса произошла ошибка: https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL по причине: Ошибка при выполнении файловой операции 'https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL' по причине: Ошибка работы с Интернет: внутренняя ошибка сервера (500). <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML dir=ltr><HEAD><TITLE>The page cannot be displayed</TITLE> <STYLE id=L_defaultr_1>A:link { FONT: 8pt/11pt verdana; COLOR: #ff0000 } A:visited { FONT: 8pt/11pt verdana; COLOR: #4e4e4e } </STYLE> <META content=NOINDEX name=ROBOTS> <META http-equiv=Content-Type content="text-html; charset=UTF-8"> <META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD> <BODY bgColor=#ffffff> <TABLE cellSpacing=5 cellPadding=3 width=410> <TBODY> <TR> <TD vAlign=center align=left width=360> <H1 id=L_defaultr_2 style="FONT: 13pt/15pt verdana; COLOR: #000000"><ID id=L_defaultr_3><!--Problem-->The page cannot be displayed </ID></H1></TD></TR> <TR> <TD width=400 colSpan=2><FONT id=L_defaultr_4 style="FONT: 8pt/11pt verdana; COLOR: #000000"><ID id=L_defaultr_5><B>Explanation: </B>There is a problem with the page you are trying to reach and it cannot be displayed.</ID></FONT></TD></TR> <TR> <TD width=400 colSpan=2><FONT id=L_defau |
|||
16
NcSteel
28.07.08
✎
16:41
|
Неужели никто несталкивался
|
|||
17
Asmody
модератор
28.07.08
✎
16:43
|
(14) есть фишка с прокси. какая версия платформы?
|
|||
18
Garkin
28.07.08
✎
16:50
|
(15) попробуй сохранить файл по ссылке
https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL себе на комп, и загрузить его со своего диска. |
|||
19
NcSteel
28.07.08
✎
17:37
|
8.1.11
|
|||
20
NcSteel
28.07.08
✎
17:41
|
(18) Сработало.
|
|||
21
NcSteel
28.07.08
✎
17:41
|
(20) + И как мне это побороть?
|
|||
22
Garkin
28.07.08
✎
18:53
|
(21) ВебСервис = Новый WSОпределения("https://KORM.kaspersky.com/sdk/v1.4/Sales.asmx?WSDL",ИмяПользователя,Пароль);
Попробуй задать ИмяПользователя и Пароль |
|||
23
NcSteel
29.07.08
✎
09:30
|
(22) Суть в том что на этом сервисе аутентификация через "Сертификат".
|
|||
24
NcSteel
29.07.08
✎
10:00
|
Подскажите с чем может быть это связано:
{ВнешняяОбработка.ВнешняяОбработка1(3)}: Ошибка при вызове метода контекста (PlaceOrder): Ошибка вызова операции сервиса: {https://korm.kaspersky.com/}:Sales:PlaceOrder() по причине: {ВнешняяОбработка.ВнешняяОбработка1(3)}: Ошибка при вызове метода контекста (PlaceOrder): Ошибка вызова операции сервиса: {https://korm.kaspersky.com/}:Sales:PlaceOrder() по причине: Ошибка вызова операции сервиса: {https://korm.kaspersky.com/}:Sales:PlaceOrder() по причине: Неизвестная ошибка. Ошибка работы с Интернет: failure when receiving data from the peer по причине: Ошибка работы с Интернет: failure when receiving data from the peer |
|||
25
NcSteel
29.07.08
✎
10:00
|
Вот код:
СервисKorm=WSСсылки.Korm.СоздатьWSПрокси("https://korm.kaspersky.com/", "Sales", "SalesSoap"); ВозвращЗначение = СервисKorm.PlaceOrder("", "", "", "", "", "Test Order", "Email", "[email protected]", ТекущаяДата(), "KL4853NHAYH", 1, '00010101', 0, "[email protected]", "", "", "License information", "Customer Name", "[email protected]", "Contact Person", "Phone", "Fax", "GB", "", "Postcode", "City", "Street Address", "Order identifier in your system", "Customer identifier in your system"); |
|||
26
Garkin
29.07.08
✎
10:11
|
(24) это может быть связано с тем что не проходишь аутентификацию.
|
|||
27
NcSteel
29.07.08
✎
10:25
|
(26) Вопрос ? А как пройти. Суть в том что аутентификация осуществляется через Сертификат.
К сожеленью данный код не работает: СервисKorm.ClientCertificates.Add("C:\Certificate.p12"); |
|||
28
NcSteel
29.07.08
✎
10:38
|
salesService.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
// Open certificate file. System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate(@"Certificate.pfx", "Password123", System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.UserKeySet); // Add the certificate to ClientCertificates collection of the proxy class instance. salesService.ClientCertificates.Add(x509Certificate); Как я понимаю тут написан пример как подключить сертификат, но как его реализовать через 1с |
|||
29
NcSteel
29.07.08
✎
10:54
|
Видимо вопрос заключается как к WSПрокси подключить Сертификат ((( Ап, Хелп
|
|||
30
NcSteel
29.07.08
✎
11:14
|
Хм , ап ...
|
|||
31
Garkin
29.07.08
✎
11:21
|
(29)
Попробуй содержимое файла C:\Certificate.p12 перевести в формат Base64 (смотри Base64Значение) и передать его в качастве параметра функции СервисKorm.ClientCertificates.Add вдруг сдуру получится. |
|||
32
NcSteel
29.07.08
✎
11:47
|
(31) К сожеленью при написании кода СервисKorm.ClientCertificates
ругается на "Поле объекта не обнаружено (ClientCertificates)" Я этот код просто взял из примера для .Net . |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |