Имя: Пароль:
1C
 
Соединение с сайтом + передача параметров
,
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&#232;me</purchaseOrder>

<customerCode>L\'identificateur de client dans votre syst&#232;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
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 .
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший