_locked) return false; $login = HIPAY_MAPI_UTF8::forceUTF8($login); if (empty($login)) return false; $password = HIPAY_MAPI_UTF8::forceUTF8($password); if (empty($password)) return false; $this->login = $login; $this->password = $password; return true; } /** * Retourne le login * * @return string */ public function getLogin() { return $this->login; } /** * Retourne le mot de passe * * @return string */ public function getPassword() { return $this->password; } /** * Assigne les comptes sur lesquels seront versés les différents montants * * @param int $itemAccount * @param int $taxAccount * @param int $insuranceAccount * @param int $fixedCostAccount * @param int $shippingCostAccount * @return boolean */ public function setAccounts($itemAccount, $taxAccount = 0, $insuranceAccount = 0, $fixedCostAccount =0, $shippingCostAccount = 0) { if ($this->_locked) return false; $itemAccount = (int)$itemAccount; $taxAccount = (int)$taxAccount; $insuranceAccount = (int)$insuranceAccount; $fixedCostAccount = (int)$fixedCostAccount; $shippingCostAccount = (int)$shippingCostAccount; if ($itemAccount <= 0) return false; if ($taxAccount <= 0) $taxAccount = $itemAccount; if ($insuranceAccount <= 0) $insuranceAccount = $itemAccount; if ($fixedCostAccount <= 0) $fixedCostAccount = $itemAccount; if ($shippingCostAccount <= 0) $shippingCostAccount = $itemAccount; $this->itemAccount = $itemAccount; $this->taxAccount = $taxAccount; $this->insuranceAccount = $insuranceAccount; $this->fixedCostAccount = $fixedCostAccount; $this->shippingCostAccount = $shippingCostAccount; return true; } /** * Retourne le numéro de compte sur lequel sera versé * le montant de produits * * @return int */ public function getItemAccount() { return $this->itemAccount; } /** * Retourne le numéro de compte sur lequel sera versé * le montant des taxes * * @return int */ public function getTaxAccount() { return $this->taxAccount; } /** * Retourne le numéro de compte sur lequel sera versé * le montant des assurances * * @return int */ public function getInsuranceAccount() { return $this->insuranceAccount; } /** * Retourne le numéro de compte sur lequel sera versé * le montant des coûts fixes * * @return int */ public function getFixedCostAccount() { return $this->fixedCostAccount; } /** * Retourne le numéro de compte sur lequel sera versé * le montant des frais d'envoi * * @return int */ public function getShippingCostAccount() { return $this->shippingCostAccount; } /** * Assigne la lange par défaut (AZ_az = pays_langue) * * @param string $defaultLang * @return boolean */ public function setDefaultLang($defaultLang) { if ($this->_locked) return false; if (!preg_match('#^[A-Z]{2}_[a-z]{2}$#', $defaultLang)) return false; $this->defaultLang = $defaultLang; return true; } /** * Retourne la langue par défaut * * @return string */ public function getDefaultLang() { return $this->defaultLang; } /** * Défini le type d'interface de paiement * * @param string $media * @return boolean */ public function setMedia($media) { if ($this->_locked) return false; if (!preg_match('#^[A-Z]+$#', $media)) return false; $this->media = $media; return true; } /** * Retourne le type d'interface de paiement * * @return string */ public function getMedia() { return $this->media; } /** * Défini le public visé * * @param string $rating * @return boolean */ public function setRating($rating) { if ($this->_locked) return false; $rating = trim(substr($rating, 0, HIPAY_MAPI_MAX_RATING_LENGTH)); if ($rating == '') return false; $this->rating = $rating; return true; } /** * Retourne le type de public visé * * @return string */ public function getRating() { return $this->rating; } /** * Défini si le paiement est simple ou récurrent * * @param int $paymentMethod * @return boolean */ public function setPaymentMethod($paymentMethod) { if ($this->_locked) { return false; } $paymentMethod = (int)$paymentMethod; if ($paymentMethod != HIPAY_MAPI_METHOD_SIMPLE && $paymentMethod != HIPAY_MAPI_METHOD_MULTI) return false; $this->paymentMethod = $paymentMethod; return true; } /** * Retourne le type de paiement (simple ou récurrent) * * @return int */ public function getPaymentMethod() { return $this->paymentMethod; } /** * Défini le délai de capture * * @param int $captureDay * @return boolean */ public function setCaptureDay($captureDay) { if ($this->_locked) return false; $captureDay = (int)$captureDay; if (($captureDay != HIPAY_MAPI_CAPTURE_MANUAL && $captureDay != HIPAY_MAPI_CAPTURE_IMMEDIATE && $captureDay <= 0) || $captureDay > HIPAY_MAPI_CAPTURE_MAX_DAYS) return false; $this->captureDay = $captureDay; return true; } /** * Retourne le délai de capture * * @return int */ public function getCaptureDay() { return $this->captureDay; } /** * Défini la devise * * @param string $currency * @return boolean */ public function setCurrency($currency) { if ($this->_locked) return false; if (!preg_match('#^[A-Z]{3}$#', $currency)) return false; $this->currency = $currency; return true; } /** * Retourne la devise * * @return string */ public function getCurrency() { return $this->currency; } /** * Défini l'identifiant du groupe statistique auquel appartient ce paiement * * @param int $statsGroupId * @return boolean */ public function setStatsGroupId($statsGroupId) { if ($this->_locked) return false; $statsGroupId = (int)$statsGroupId; if ($statsGroupId < 0) return false; $this->statsGroupId = $statsGroupId; return true; } /** * Retourne l'identifiant du groupe statistique auquel appartient ce paiement * * @return int */ public function getStatsGroupId() { return $this->statsGroupId; } /** * Défini l'identifiant de cette vente chez le marchand * * @param string $idForMerchant * @return boolean */ public function setIdForMerchant($idForMerchant) { if ($this->_locked) return false; $this->idForMerchant = $idForMerchant; return true; } /** * Retourne l'identifiant de la vente pour le marchand * * @return string */ public function getIdForMerchant() { return $this->idForMerchant; } /** * Défini l'identifiant du site marchand * * @param int $merchantSiteId * @return boolean */ public function setMerchantSiteId($merchantSiteId) { if ($this->_locked) return false; $merchantSiteId = (int)$merchantSiteId; if ($merchantSiteId < 0) return false; $this->merchantSiteId = $merchantSiteId; return true; } /** * Retourne l'identifiant du site marchand * * @return int */ public function getMerchantSiteId() { return $this->merchantSiteId; } /** * Assigne des données marchandes * * @param string $merchantDatas * @return boolean */ public function setMerchantDatas($key,$merchantDatas) { if ($this->_locked) return false; if ($key == '') return false; $merchantDatas = substr($merchantDatas, 0, HIPAY_MAPI_MAX_MDATAS_LENGTH); $this->merchantDatas[$key] = $merchantDatas; return true; } /** * Retourne les données marchandes * * @return array */ public function getMerchantDatas() { return $this->merchantDatas; } /** * Assigne l'url à appeller si le paiement est ok * * @param string $url_ok * @return unknown */ public function setUrlOk($url_ok) { if ($this->_locked) return false; $url_ok = trim($url_ok); if (!HIPAY_MAPI_UTILS::checkURL($url_ok) && $url_ok != '') return false; $this->url_ok = $url_ok; return true; } /** * Retourne l'url_ok * * @return string */ public function getUrlOk() { return $this->url_ok; } /** * Assigne l'url à appeller si le paiement n'est pas ok * * @param string $url_nok * @return unknown */ public function setUrlNok($url_nok) { if ($this->_locked) return false; $url_nok = trim($url_nok); if (!HIPAY_MAPI_UTILS::checkURL($url_nok) && $url_nok != '') return false; $this->url_nok = $url_nok; return true; } /** * Retourne l'url_nok * * @return string */ public function getUrlNok() { return $this->url_nok; } /** * Assigne l'url à appeller si le paiement est annulé * * @param string $url_cancel * @return boolean */ public function setUrlCancel($url_cancel) { if ($this->_locked) return false; $url_cancel = trim($url_cancel); if (!HIPAY_MAPI_UTILS::checkURL($url_cancel) && $url_cancel != '') return false; $this->url_cancel = $url_cancel; return true; } /** * Retourne l'url_cancel * * @return string */ public function getUrlCancel() { return $this->url_cancel; } /** * Assigne l'url à appeller pour notifier le paiement * * @param string $url_cancel * @return boolean */ public function setUrlAck($url_ack) { if ($this->_locked) return false; $url_ack = trim($url_ack); if (!HIPAY_MAPI_UTILS::checkURL($url_ack) && $url_ack != '') return false; $this->url_ack = $url_ack; return true; } /** * Retourne l'url_ack * * @return string */ public function getUrlAck() { return $this->url_ack; } /** * Assigne le mot clé d'acquittement * * @param string $ack_wd * @return boolean */ public function setAckWd($ack_wd) { if ($this->_locked) return false; $ack_wd=trim($ack_wd); if (strlen($ack_wd) > HIPAY_MAPI_MAX_ACKWD_LENGTH) return false; $this->ack_wd = $ack_wd; return true; } /** * Retourne le mot clé d'acquittement * * @return string */ public function getAckWd() { return $this->ack_wd; } /** * Assigne l'adresse email de notification de paiement * * @param string $email_ack * @return boolean */ public function setEmailAck($email_ack) { if ($this->_locked) return false; $email_ack = trim($email_ack); if (strlen($email_ack) > HIPAY_MAPI_MAX_ACKMAIL_LENGTH || (!HIPAY_MAPI_UTILS::checkemail($email_ack) && $email_ack != '')) return false; $this->email_ack = $email_ack; return true; } /** * Retourne l'email de notification * * @return string */ public function getEmailAck() { return $this->email_ack; } /** * Assigne la couleur de fond de l'interface (#XXXXXX) * * @param string $bg_color * @return boolean */ public function setBackgroundColor($bg_color) { if ($this->_locked) return false; $bg_color = trim($bg_color); if (!preg_match('#^\#([0-9a-f]){6}$#i', $bg_color) && $bg_color != '') return false; $this->bg_color = $bg_color; return true; } /** * Retourne la couleur de fond de l'interface * * @return string */ public function getBackgroundColor() { return $this->bg_color; } /** * Assigne l'url du logo du marchand * * @param string $logo_url * @return boolean */ public function setLogoUrl($logo_url) { if ($this->_locked) return false; $logo_url = trim($logo_url); if (!HIPAY_MAPI_UTILS::checkURL($logo_url) && $logo_url != '') return false; $this->logo_url = $logo_url; return true; } /** * Retourne l'url du logo du marchand * * @return string */ public function getLogoUrl() { return $this->logo_url; } /** * Vérifie que l'objet est correctement initialisé * * @return boolean */ public function check() { if ($this->login == '') throw new Exception('Username is missing'); if ($this->itemAccount <= 0 || $this->taxAccount <= 0 || $this->insuranceAccount <= 0 || $this->fixedCostAccount <= 0 || $this->shippingCostAccount <= 0) throw new Exception('Invalid account numbers'); if ($this->rating == '') throw new Exception('Invalid public target'); if ($this->paymentMethod < 0) throw new Exception('Invalid payment type'); if ($this->captureDay == -100) throw new Exception('Invalid capture delay'); if ($this->currency == '') throw new Exception('Undefined currency'); if ($this->idForMerchant < 0) throw new Exception('Merchant ID is missing'); if ($this->idForMerchant > 0) if ($this->password == '') throw new Exception('Password is missing'); if ($this->statsGroupId < 0) throw new Exception('Negative group ID'); if ($this->merchantSiteId < 0) throw new Exception('Merchant site ID is missing'); return true; } protected function init() { $this->login = ''; $this->password = ''; $this->itemAccount = 0; $this->taxAccount = 0; $this->insuranceAccount = 0; $this->fixedCostAccount = 0; $this->shippingCostAccount = 0; $this->defaultLang = HIPAY_MAPI_DEFLANG; $this->media = HIPAY_MAPI_DEFMEDIA; $this->rating = ''; $this->paymentMethod = -1; $this->captureDay = -100; $this->currency = ''; $this->idForMerchant = -1; $this->statsGroupId = 0; $this->merchantSiteId = -1; $this->merchantDatas = array(); $this->url_ok = ''; $this->url_nok = ''; $this->url_cancel = ''; $this->url_ack = ''; $this->ack_wd = ''; $this->email_ack = ''; $this->bg_color = ''; $this->logo_url = ''; } function __construct() { $this->init(); parent::__construct(); } }