Я пытаюсь интегрировать систему Point of Sale (POS) OneCard.net на моем сайте. Пример из документации:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="https://www.onecard.net/webservice">
<soapenv:Header/>
<soapenv:Body>
<web:POSCheckBalanceRequest>
<web:posUsername>test_pos</web:posUsername>
<web:signature>6cc1ca29793526f0d920e17a0d815afd</web:signature>
</web:POSCheckBalanceRequest>
</soapenv:Body>
</soapenv:Envelope>
$posUsername='posUsername';
$secretKey='secretKey';
$signature=md5($posUsername.$secretKey);
$query='<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="https://www.onecard.net/webservice">
<soapenv:Header/>
<soapenv:Body>
<web:POSCheckBalanceRequest>
<web:posUsername>'.$posUsername.'</web:posUsername>
<web:signature>'.$signature.'</web:signature>
</web:POSCheckBalanceRequest>
</soapenv:Body>
</soapenv:Envelope>';
$url='https://www.onecard.net/webservice';
$channel = curl_init();
$options = [
CURLOPT_URL => $url,
CURLOPT_NOBODY => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_MAXREDIRS => 3,
CURLOPT_TIMEOUT => 200,
CURLOPT_CONNECTTIMEOUT => 150,
CURLINFO_HEADER_OUT => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $query,
];
curl_setopt_array($channel, $options);
$content = curl_exec($channel);
curl_close($channel);
var_dump($content);
Но я не получаю никакого результата.
Помогите пожалуйста, кто работал с этой системой.
Я пытался использовать Soap Client:
header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-store, no-cache');
header('Expires: '.date('r'));
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);
class Message{
public $posUsername;
public $signature;
}
class POSCheckBalanceRequest{
public $posUsername;
public $signature;
}
class Request{
public $POSCheckBalanceRequest;
}
$req = new Request();
$req->POSCheckBalanceRequest=new POSCheckBalanceRequest();
$req->POSCheckBalanceRequest->posUsername = 'posUsername';
$req->POSCheckBalanceRequest->signature = 'signature';
$client = new SoapClient("https://www.onecard.net/webservice",
array( 'soap_version' => SOAP_1_2));
var_dump($client->__soapCall('POSCheckBalanceRequest', array('posUsername' => $req->POSCheckBalanceRequest->posUsername,'signature'=>$req->POSCheckBalanceRequest->signature)));
ERR_CONNECTION_RESET
Но я не получаю никакого результата снова. Я пытался во многих отношениях, никто не дал результата.
Задача ещё не решена.
Других решений пока нет …