Overview
  • Namespace
  • Class

Namespaces

  • Mypos
    • IPC

Classes

  • Mypos\IPC\Base
  • Mypos\IPC\Card
  • Mypos\IPC\CardStore
  • Mypos\IPC\Cart
  • Mypos\IPC\Config
  • Mypos\IPC\Customer
  • Mypos\IPC\Defines
  • Mypos\IPC\GetTxnStatus
  • Mypos\IPC\Helper
  • Mypos\IPC\IAPurchase
  • Mypos\IPC\IAStoreCard
  • Mypos\IPC\IAStoredCardUpdate
  • Mypos\IPC\IPCGetTxnLog
  • Mypos\IPC\Loader
  • Mypos\IPC\MandateManagement
  • Mypos\IPC\Purchase
  • Mypos\IPC\Refund
  • Mypos\IPC\RequestMoney
  • Mypos\IPC\Response
  • Mypos\IPC\Reversal

Exceptions

  • Mypos\IPC\IPC_Exception
  1 <?php
  2 
  3 namespace Mypos\IPC;
  4 
  5 /**
  6  * IPC Library helper functions
  7  */
  8 class Helper
  9 {
 10 
 11     private function __construct() {}
 12 
 13     /**
 14      * Validate email address
 15      * @param string $email
 16      * @return boolean
 17      */
 18     public static function isValidEmail($email)
 19     {
 20         return filter_var($email, FILTER_VALIDATE_EMAIL);
 21     }
 22 
 23     /**
 24      * Validate URL address
 25      * @param string $url
 26      * @return boolean
 27      */
 28     public static function isValidURL($url)
 29     {
 30         return filter_var($url, FILTER_VALIDATE_URL);
 31     }
 32 
 33     /**
 34      * Validate IP address
 35      * @param string $ip
 36      * @return boolean
 37      */
 38     public static function isValidIP($ip)
 39     {
 40         return filter_var($ip, FILTER_VALIDATE_IP);
 41     }
 42 
 43     /**
 44      * Validate customer names
 45      * @param string $name
 46      * @return boolean
 47      */
 48     public static function isValidName($name)
 49     {
 50         return preg_match("/^[a-zA-Z ]*$/", $name);
 51     }
 52 
 53     /**
 54      * Validate amount.
 55      * @param float $amt
 56      * @return boolean
 57      */
 58     public static function isValidAmount($amt)
 59     {
 60         return preg_match('/^(-)?[0-9]+(?:\.[0-9]{0,2})?$/', $amt);
 61     }
 62 
 63     /**
 64      * Validate if currency is acceptable by API
 65      * @param string $currency ISO 4217 code
 66      * @return boolean
 67      */
 68     public static function isValidCurrency($currency)
 69     {
 70         return in_array(strtoupper($currency), explode(';', Defines::AVL_CURRENCIES));
 71     }
 72 
 73     /**
 74      * Validate quantity
 75      * @param int $quantity
 76      * @return boolean
 77      */
 78     public static function isValidCartQuantity($quantity)
 79     {
 80         return is_int($quantity) && $quantity > 0;
 81     }
 82 
 83     /**
 84      * Validate transaction reference
 85      * @param string $trnref
 86      * @return boolean
 87      */
 88     public static function isValidTrnRef($trnref)
 89     {
 90         #TODO
 91         return true;
 92     }
 93 
 94     /**
 95      * Validate Order ID
 96      * @param string $trnref
 97      * @return boolean
 98      */
 99     public static function isValidOrderId($trnref)
100     {
101         #TODO
102         return true;
103     }
104 
105     /**
106      * Validate output format
107      * @param string $outputFormat
108      * @return boolean
109      */
110     public static function isValidOutputFormat($outputFormat)
111     {
112         return in_array($outputFormat, array(Defines::COMMUNICATION_FORMAT_XML, Defines::COMMUNICATION_FORMAT_JSON));
113     }
114 
115     /**
116      * Validate card number
117      * @param $cardNo
118      * @return boolean
119      */
120     public static function isValidCardNumber($cardNo)
121     {
122         $cardNo = str_replace(" ", "", trim($cardNo));
123         if ((!is_numeric($cardNo)) || (strlen($cardNo) > 19) || (strlen($cardNo) < 13)) return false;
124         $sum = $dub = $add = $chk = 0;
125         $even = 0;
126         for ($i = strlen($cardNo) - 1; $i >= 0; $i--) {
127             if ($even == 1) {
128                 $dub = 2 * $cardNo[$i];
129                 if ($dub > 9) {
130                     $add = $dub - 9;
131                 } else {
132                     $add = $dub;
133                 }
134                 $even = 0;
135             } else {
136                 $add = $cardNo[$i];
137                 $even = 1;
138             }
139             $sum += $add;
140         }
141         return (($sum % 10) == 0);
142     }
143 
144     /**
145      * Validate card CVC
146      * @param $cvc
147      * @return boolean
148      */
149     public static function isValidCVC($cvc)
150     {
151         return (is_numeric($cvc) && strlen($cvc) == 3);
152     }
153 
154 
155     /**
156      * Escape HTML special chars
157      * @param string $text
158      * @return string type
159      */
160     public static function escape($text)
161     {
162         $text = htmlspecialchars_decode($text, ENT_QUOTES);
163         return htmlspecialchars($text, ENT_QUOTES);
164     }
165 
166     /**
167      * Unescape HTML special chars
168      * @param string $text
169      * @return string
170      */
171     public static function unescape($text)
172     {
173         return htmlspecialchars_decode($text, ENT_QUOTES);
174     }
175 
176     /**
177      * Return associative array element by key.
178      * If key not found in array returns $default
179      * If $notEmpty argument is TRUE returns $default even if key is found in array but the element has empty value(0, null, '')
180      *
181      * @param array $array
182      * @param mixed $key
183      * @param string $default
184      * @param bool $notEmpty
185      * @return mixed
186      */
187     public static function getArrayVal($array, $key, $default = '', $notEmpty = false)
188     {
189         if (!is_array($array)) {
190             return $default;
191         }
192         if ($notEmpty) {
193             if (array_key_exists($key, $array)) {
194                 $val = trim($array[$key]);
195                 if (!empty($val)) {
196                     return $val;
197                 }
198             }
199             return $default;
200         } else {
201             return array_key_exists($key, $array) ? $array[$key] : $default;
202         }
203     }
204 
205     /**
206      * Returns one-dimensional array with all values from multi-dimensional array
207      * Useful when create request signature where only array values matter
208      *
209      * @param array $array
210      * @param array $values
211      * @return array
212      */
213     public static function getValuesFromMultiDemensionalArray($array, $values = array())
214     {
215         if (!is_array($array)) {
216             return $values;
217         }
218         foreach ($array as $k => $v) {
219             if (is_array($v)) {
220                 $values = self::getValuesFromMultiDemensionalArray($v, $values);
221             } else {
222                 $values[] = $v;
223             }
224         }
225         return $values;
226     }
227 }
228 
API documentation generated by ApiGen