/** * @param $content * @return bool|MailContent */ public function parse($content) { $mailContent = new MailContent(); $pattern1 = '/(.*) bol zostatok Vasho uctu ([a-zA-Z0-9]+) (zvyseny|znizeny) o ([0-9 ]+,[0-9]+) ([a-zA-Z]+)/m'; $res = preg_match($pattern1, $content, $result); if (!$res) { return false; } $mailContent->setTransactionDate(strtotime($result[1])); $mailContent->setAccountNumber($result[2]); $amount = floatval(str_replace(',', '.', str_replace(' ', '', $result[4]))); $currency = $result[5]; if ($result[3] == 'znizeny') { $amount = -$amount; } $mailContent->setAmount($amount); $mailContent->setCurrency($currency); $pattern2 = '/Informacia pre prijemcu: (.*)/m'; $res = preg_match($pattern2, $content, $result); if ($res) { $mailContent->setReceiverMessage($result[1]); } $pattern3 = '/Referencia platitela: \\/VS(.*)\\/SS(.*)\\/KS(.*)/m'; $res = preg_match($pattern3, $content, $result); if ($res) { $mailContent->setVs($result[1]); $mailContent->setSs($result[2]); $mailContent->setKs($result[3]); } return $mailContent; }
/** * @param $content * @return bool|MailContent */ public function parse($content) { $mailContent = new MailContent(); $cardpayPattern = '/VS=(.*) RES=(.*) AC=(.*) SIGN=(.*)/m'; $res = preg_match($cardpayPattern, $content, $result); if ($res) { $mailContent->setVs($result[1]); $mailContent->setRes($result[2]); $mailContent->setAc($result[3]); $mailContent->setSign($result[4]); $mailContent->setTransactionDate(time()); return $mailContent; } if (!$res) { $comfortpayPattern = '/VS=(.*) TRES=(.*) CID=(.*) SIGN=(.*)/m'; $res = preg_match($comfortpayPattern, $content, $result); if ($res) { $mailContent->setVs($result[1]); $mailContent->setRes($result[2]); $mailContent->setCid($result[3]); $mailContent->setSign($result[4]); $mailContent->setTransactionDate(time()); return $mailContent; } } if (!$res) { $comfortpayHmacPattern = '/AMT=(.*) CURR=(.*) VS=(.*) RES=(.*) AC=(.*) TRES=(.*) CID=(.*) CC=(.*) TID=([0-9]*) TIMESTAMP=([0-9]*) HMAC=(.*) ECDSA_KEY=(.) ECDSA=(.*)/m'; $res = preg_match($comfortpayHmacPattern, $content, $result); if ($res) { $mailContent->setAmount($result[1]); $mailContent->setCurrency($result[2]); $mailContent->setVs($result[3]); $mailContent->setRes($result[4]); $mailContent->setAc($result[5]); $mailContent->setCid($result[7]); $mailContent->setCc($result[8]); $mailContent->setTid($result[9]); $mailContent->setTransactionDate($result[10]); $mailContent->setSign($result[11]); return $mailContent; } $comfortpayHmacErrorPattern = '/AMT=(.*) CURR=(.*) VS=(.*) RES=(.*) TRES=(.*) CC=(.*) TID=([0-9]*) TIMESTAMP=([0-9]*) HMAC=(.*) ECDSA_KEY=(.) ECDSA=(.*)/m'; $res = preg_match($comfortpayHmacErrorPattern, $content, $result); if ($res) { $mailContent->setAmount($result[1]); $mailContent->setCurrency($result[2]); $mailContent->setVs($result[3]); $mailContent->setRes($result[4]); $mailContent->setCc($result[6]); $mailContent->setTid($result[7]); $mailContent->setTransactionDate($result[8]); $mailContent->setSign($result[9]); return $mailContent; } } if (!$res) { $cardpayHmacPattern = '/AMT=(.*) CURR=(.*) VS=(.*) RES=(.*) AC=(.*) TID=([0-9]*) TIMESTAMP=([0-9]*) HMAC=(.*) ECDSA_KEY=1 ECDSA=(.*)/m'; $res = preg_match($cardpayHmacPattern, $content, $result); if ($res) { $mailContent->setAmount($result[1]); $mailContent->setCurrency($result[2]); $mailContent->setVs($result[3]); $mailContent->setRes($result[4]); $mailContent->setAc($result[5]); $mailContent->setTid($result[6]); $mailContent->setTransactionDate($result[7]); $mailContent->setSign($result[8]); return $mailContent; } } return false; }