Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include('../includes/config.inc.php');
- ///Variables
- $the_time=time();
- $bounce_address='XX@XX.com';
- //Data, connection, auth
- $soapUrl = "https://xyz"; //WSDL URL
- $soapUser = "xxxx"; // username
- $soapPassword = "xxx"; // password
- //Ethoca360AlertsRequest
- $xml_post_string ='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.ethoca.com/E360v1/xml">
- <soapenv:Header/>
- <soapenv:Body>
- <ns:Ethoca360AlertsRequest>
- <ns:Username>xx</ns:Username>
- <ns:Password>xx=xx</ns:Password>
- </ns:Ethoca360AlertsRequest>
- </soapenv:Body>
- </soapenv:Envelope>'; // data from the form, e.g. some ID number
- $headers = array(
- "Content-type: text/xml;charset=\"utf-8\"",
- "Accept: text/xml",
- "Cache-Control: no-cache",
- "Pragma: no-cache",
- "SOAPAction: http://schemas.ethoca.com/E360v1/wsdl/EthocaServices/getE360AlertsRequest",
- "Content-length: ".strlen($xml_post_string),
- );
- // PHP cURL for https connection with auth
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_URL, $soapUrl);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_USERPWD, $soapUser.":".$soapPassword); // username and password
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
- curl_setopt($ch, CURLOPT_TIMEOUT, 10);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- // converting
- $response = curl_exec($ch);
- curl_close($ch);
- // converting
- $response1 = str_replace("<soap:Body>","",$response);
- $response2 = str_replace("</soap:Body>","",$response1);
- // convertingc to XML
- $parser = simplexml_load_string($response2);
- // user $parser to get your data out of XML response and to display it.
- //Test
- #include('testxml.php');
- // SimpleXML seems to have problems with the colon ":" in the <xxx:yyy> response tags, so take them out
- $xml = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response);
- $xml = simplexml_load_string($xml);
- $json = json_encode($xml);
- $responseArray = json_decode($json,true);
- #echo $response;
- #echo '<pre>';
- #print_r($responseArray);
- #echo '</pre>';
- $numofethalerts=$responseArray['soapenvBody']['ethEthoca360AlertsResponse']['ethNumberOfAlerts'];
- if($numofethalerts==1){
- if(isset($responseArray['soapenvBody']['ethEthoca360AlertsResponse']['ethAlerts'])){
- foreach($responseArray['soapenvBody']['ethEthoca360AlertsResponse']['ethAlerts'] as $value){
- extract($value);
- $ethCardNumber = sweet_encrypt($ethCardNumber);
- $ethAlertTimestamp = str_replace('T',' ',$ethAlertTimestamp);
- $ethAlertT=explode('.',$ethAlertTimestamp);
- $ethAlertTimestamp=$ethAlertT[0];
- $ethTransactionTimestamp = str_replace('T',' ',$ethTransactionTimestamp);
- $ethTransT=explode('.',$ethTransactionTimestamp);
- $ethTransactionTimestamp=$ethTransT[0];
- $ethMerchantDescriptor=strtoupper($ethMerchantDescriptor);
- $acknar[]=$ethEthocaID; #acknowledge array
- //Insert alert into DB
- $ethIssuer=str_replace("'","",$ethIssuer);
- mysql_query("INSERT INTO cbalerts (ethoca_id, alert_time, age, bank, cnm, trans_time, descriptor, amount, currency, type, entered_by, instime) VALUES ('$ethEthocaID', '$ethAlertTimestamp', '$ethAge', '$ethIssuer', '$ethCardNumber', '$ethTransactionTimestamp', '$ethMerchantDescriptor', '$ethAmount', '$ethCurrency', '$ethTransactionType', '$ethInitiatedBy', '$the_time')");
- //Get descriptor info
- $descrownquer = mysql_query("SELECT alert_email FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- if(mysql_num_rows($descrownquer)==0){ #if exact descriptor not found, search for similar and enter it for next time
- $firstfv = trim(substr($ethMerchantDescriptor, 0, 5));
- $descrownquer = mysql_query("SELECT * FROM descriptors WHERE descriptor LIKE '$firstfv%' LIMIT 1");
- if(mysql_num_rows($descrownquer)!=0){
- $fivr = mysql_fetch_array($descrownquer);
- $fvuserid = $fivr['user_id'];
- $fvdescr = trim($ethMerchantDescriptor);
- $fvalrtem = $fivr['alert_email'];
- $fvaffid = $fivr['affiliate_id'];
- mysql_query("INSERT INTO descriptors (user_id, descriptor, alert_email, affiliate_id) VALUES ('$fvuserid', '$fvdescr', '$fvalrtem', '$fvaffid')");
- }
- }
- $descrownquer = mysql_query("SELECT alert_email FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- $descrownrow = mysql_fetch_array($descrownquer);
- extract($descrownrow);
- if(stristr($alert_email,'|')){
- $emltosend = explode('|',$alert_email);
- }
- else{
- $emltosend[]=$alert_email;
- }
- //Email admin if descriptor still not found.
- if(mysql_num_rows($descrownquer)==0){
- $adminemail ='xx@xx.com';
- $message ="Hello,\n";
- $message.="\n";
- $message.="I could not locate the $ethMerchantDescriptor descriptor.";
- $message.="\n";
- $message.="\n";
- $message.="Rgds,\n";
- $message.="CBD Admin\n";
- mail($adminemail, "CBD Descriptor Not Found", $message, "From: $adminemail\nReply-To: $adminemail\nX-Mailer: PHP/" . phpversion());
- }
- //Email alert
- foreach($emltosend as $emladdy){
- $adminemail ='xx@xx.com';
- $message ="Hello,\n";
- $message.="\n";
- $message.="A new alert has been issued on the $ethMerchantDescriptor descriptor.";
- $message.="\n";
- $message.="\n";
- $message.="Please log in to https://cbdefense.com/admin/ to retrieve further information.";
- $message.="\n";
- $message.="\n";
- $message.="Rgds,\n";
- $message.="CB Defense\n";
- //Sanity Check due to customers recently receiving emails on Not Found descriptors
- $emailsancheck = mysql_query("SELECT * FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- if(mysql_num_rows($emailsancheck)!=0){
- mail($emladdy, "CB Defense Alert - $ethMerchantDescriptor", $message, "From: $adminemail\nReply-To: $adminemail\nX-Mailer: PHP/" . phpversion(), "-f" . escapeshellarg($bounce_address));
- }
- }//foreach
- unset($emltosend);
- }
- }//if there were alerts
- }//num of alerts=1
- ///else num of alerts >1
- else{
- //Parse response and put into DB
- if(isset($responseArray['soapenvBody']['ethEthoca360AlertsResponse']['ethAlerts']['ethAlert'])){
- foreach($responseArray['soapenvBody']['ethEthoca360AlertsResponse']['ethAlerts']['ethAlert'] as $value){
- extract($value);
- $ethCardNumber = sweet_encrypt($ethCardNumber);
- $ethAlertTimestamp = str_replace('T',' ',$ethAlertTimestamp);
- $ethAlertT=explode('.',$ethAlertTimestamp);
- $ethAlertTimestamp=$ethAlertT[0];
- $ethTransactionTimestamp = str_replace('T',' ',$ethTransactionTimestamp);
- $ethTransT=explode('.',$ethTransactionTimestamp);
- $ethTransactionTimestamp=$ethTransT[0];
- $ethMerchantDescriptor=strtoupper($ethMerchantDescriptor);
- $acknar[]=$ethEthocaID; #acknowledge array
- //Insert alert into DB
- $ethIssuer=str_replace("'","",$ethIssuer);
- mysql_query("INSERT INTO cbalerts (ethoca_id, alert_time, age, bank, cnm, trans_time, descriptor, amount, currency, type, entered_by, instime) VALUES ('$ethEthocaID', '$ethAlertTimestamp', '$ethAge', '$ethIssuer', '$ethCardNumber', '$ethTransactionTimestamp', '$ethMerchantDescriptor', '$ethAmount', '$ethCurrency', '$ethTransactionType', '$ethInitiatedBy', '$the_time')");
- //Get descriptor info
- $descrownquer = mysql_query("SELECT alert_email FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- if(mysql_num_rows($descrownquer)==0){ #if exact descriptor not found, search for similar and enter it for next time
- $firstfv = trim(substr($ethMerchantDescriptor, 0, 5));
- $descrownquer = mysql_query("SELECT * FROM descriptors WHERE descriptor LIKE '$firstfv%' LIMIT 1");
- if(mysql_num_rows($descrownquer)!=0){
- $fivr = mysql_fetch_array($descrownquer);
- $fvuserid = $fivr['user_id'];
- $fvdescr = trim($ethMerchantDescriptor);
- $fvalrtem = $fivr['alert_email'];
- $fvaffid = $fivr['affiliate_id'];
- mysql_query("INSERT INTO descriptors (user_id, descriptor, alert_email, affiliate_id) VALUES ('$fvuserid', '$fvdescr', '$fvalrtem', '$fvaffid')");
- }
- }
- $descrownquer = mysql_query("SELECT alert_email FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- $descrownrow = mysql_fetch_array($descrownquer);
- extract($descrownrow);
- if(stristr($alert_email,'|')){
- $emltosend = explode('|',$alert_email);
- }
- else{
- $emltosend[]=$alert_email;
- }
- //Email admin if descriptor not found.
- if(mysql_num_rows($descrownquer)==0){
- $adminemail ='xx@xx.com';
- $message ="Hello,\n";
- $message.="\n";
- $message.="I could not locate the $ethMerchantDescriptor descriptor.";
- $message.="\n";
- $message.="\n";
- $message.="Rgds,\n";
- $message.="CBD Admin\n";
- mail($adminemail, "CBD Descriptor Not Found", $message, "From: $adminemail\nReply-To: $adminemail\nX-Mailer: PHP/" . phpversion(), "-f" . escapeshellarg($bounce_address));
- }
- //Email alert
- foreach($emltosend as $emladdy){
- $adminemail ='xx@xx.com';
- $message ="Hello,\n";
- $message.="\n";
- $message.="A new alert has been issued on the $ethMerchantDescriptor descriptor.";
- $message.="\n";
- $message.="\n";
- $message.="Please log in to https://cbdefense.com/admin/ to retrieve further information.";
- $message.="\n";
- $message.="\n";
- $message.="Rgds,\n";
- $message.="CB Defense\n";
- //Sanity Check due to customers recently receiving emails on Not Found descriptors
- $emailsancheck = mysql_query("SELECT * FROM descriptors WHERE descriptor='$ethMerchantDescriptor'");
- if(mysql_num_rows($emailsancheck)!=0){
- mail($emladdy, "CB Defense Alert - $ethMerchantDescriptor", $message, "From: $adminemail\nReply-To: $adminemail\nX-Mailer: PHP/" . phpversion(), "-f" . escapeshellarg($bounce_address));
- }
- }//foreach
- unset($emltosend);
- }
- }//if there were alerts
- }//num of alerts > 1
- ///Acknowledge
- //EthocaAlertAcknowledgementRequest
- $xml_post_string_ack ='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.ethoca.com/E360v1/xml">
- <soapenv:Header/>
- <soapenv:Body>
- <ns:EthocaAlertAcknowledgementRequest>
- <ns:Username>xx</ns:Username>
- <ns:Password>xx=xx</ns:Password>
- <ns:AlertAcknowledgements>';
- foreach($acknar as $av){
- $xml_post_string_ack.="<ns:AlertAcknowledgement>
- <ns:EthocaID>$av</ns:EthocaID>
- <ns:Status>success</ns:Status>
- </ns:AlertAcknowledgement>";
- }
- $xml_post_string_ack.="</ns:AlertAcknowledgements>
- </ns:EthocaAlertAcknowledgementRequest>
- </soapenv:Body>
- </soapenv:Envelope>";
- $headers_ack = array(
- "Content-type: text/xml;charset=\"utf-8\"",
- "Accept: text/xml",
- "Cache-Control: no-cache",
- "Pragma: no-cache",
- "SOAPAction: http://schemas.ethoca.com/E360v1/wsdl/EthocaServices/acknowledgeAlertsRequest",
- "Content-length: ".strlen($xml_post_string_ack),
- );
- // PHP cURL
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_URL, $soapUrl);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_USERPWD, $soapUser.":".$soapPassword); // username and password
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
- curl_setopt($ch, CURLOPT_TIMEOUT, 10);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string_ack); // the SOAP request
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_ack);
- $response_ack = curl_exec($ch);
- curl_close($ch);
- die();
- ?>
Add Comment
Please, Sign In to add comment