| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/a/w/e/awebpaca/boutiques/lib/3Dsecure/ |
Upload File : |
<?php
// Distributed by license from CardinalCommerce Corporation
/////////////////////////////////////////////////////////////////////////////////////////////
// CardinalCommerce (http://www.cardinalcommerce.com)
// CentinelClient.php
// Version 1.2 02/17/2005
//
// Usage
// The CentinelClient class is defined to assist integration efforts with the Centinel
// XML message integration. The class implements helper methods to construct, send, and
// receive XML messages with respect to the Centinel XML Message APIs.
//
/////////////////////////////////////////////////////////////////////////////////////////////
require("XMLParser.php");
include "CentinelErrors.php";
class CentinelClient {
var $request ;
var $response ;
var $parser;
/////////////////////////////////////////////////////////////////////////////////////////////
// Function Add(name, value)
//
// Add name/value pairs to the Centinel request collection.
/////////////////////////////////////////////////////////////////////////////////////////////
function add($name, $value) {
$this->request[$name] = $this->escapeXML($value);
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Function getValue(name)
//
// Retrieve a specific value for the give name within the Centinel response collection.
/////////////////////////////////////////////////////////////////////////////////////////////
function getValue($name) {
if (!empty($this->response[$name])) {
return $this->response[$name];
}else{
return "";
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Function getRequestXml(name)
//
// Serialize all elements of the request collection into a XML message, and format the required
// form payload according to the Centinel XML Message APIs. The form payload is returned from
// the function.
/////////////////////////////////////////////////////////////////////////////////////////////
function getRequestXml(){
$queryString = "<CardinalMPI>";
foreach ($this->request as $name => $value) {
$queryString = $queryString."<".($name).">".($value)."</".($name).">" ;
}
$queryString = $queryString."</CardinalMPI>";
return "cmpi_msg=".urlencode($queryString);
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Function sendHttp(url, "", $timeout)
//
// HTTP POST the form payload to the url using cURL.
// form payload according to the Centinel XML Message APIs. The form payload is returned from
// the function.
/////////////////////////////////////////////////////////////////////////////////////////////
function sendHttp($url, $connectTimeout="", $timeout) {
// verify that the URL uses a supported protocol.
if( (strpos($url, "http://")=== 0) || (strpos($url, "https://")=== 0) ) {
//Construct the payload to POST to the url.
$data = $this->getRequestXml();
// create a new cURL resource
$ch = curl_init($url);
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
// Execute the request.
$result = curl_exec($ch);
$succeeded = curl_errno($ch) == 0 ? true : false;
// close cURL resource, and free up system resources
curl_close($ch);
// If Communication was not successful set error result, otherwise
if(!$succeeded) {
$result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8030, CENTINEL_ERROR_CODE_8030_DESC);
}
// Assert that we received an expected Centinel Message in reponse.
if (strpos($result, "<CardinalMPI>") === false) {
$result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8010, CENTINEL_ERROR_CODE_8010_DESC);
}
} else {
$result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8000, CENTINEL_ERROR_CODE_8000_DESC);
}
$parser = new XMLParser;
$parser->deserializeXml($result);
$this->response = $parser->deserializedResponse;
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Function setErrorResponse(errorNo, errorDesc)
//
// Initialize an Error response to ensure that parsing will be handled properly.
/////////////////////////////////////////////////////////////////////////////////////////////
function setErrorResponse($errorNo, $errorDesc) {
$resultText = "<CardinalMPI>";
$resultText = $resultText."<ErrorNo>".($errorNo)."</ErrorNo>" ;
$resultText = $resultText."<ErrorDesc>".($errorDesc)."</ErrorDesc>" ;
$resultText = $resultText."</CardinalMPI>";
return $resultText;
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Function escapeXML(value)
//
// Escaped string converting all '&' to '&' and all '<' to '<'. Return the escaped value.
/////////////////////////////////////////////////////////////////////////////////////////////
function escapeXML($elementValue){
$escapedValue = str_replace("&", "&", $elementValue);
$escapedValue = str_replace("<", "<", $escapedValue);
return $escapedValue;
}
}