_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('Nom d\'utilisateur manquant'); if ($this->itemAccount<=0 || $this->taxAccount<=0 || $this->insuranceAccount <=0 || $this->fixedCostAccount<=0 || $this->shippingCostAccount<=0) throw new Exception('Numéros de compte invalides'); if ($this->rating=='') throw new Exception('Type de public visé invalide'); if ($this->paymentMethod<0) throw new Exception('Type de paiement invalide'); if ($this->captureDay==-100) throw new Exception('Délai de capture invalide '); if ($this->currency=='') throw new Exception('Devise non-définie'); if ($this->idForMerchant<0) throw new Exception('ID chez le marchand manquant'); if ($this->idForMerchant>0) if ($this->password=='') throw new Exception('Mot de passe manquant'); if ($this->statsGroupId<0) throw new Exception('ID groupe est négatif'); if ($this->merchantSiteId<0) throw new Exception('ID du site marchand manquant'); 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(); } } ?>