%PDF- %PDF-
Direktori : /home/lightco1/www/lightingrepublic.com.au/plugins/vmpayment/klarna/klarna/api/ |
Current File : /home/lightco1/www/lightingrepublic.com.au/plugins/vmpayment/klarna/klarna/api/klarnaaddr.php |
<?php defined('_JEXEC') or die('Restricted access'); /** * * Copyright 2010 KLARNA AB. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY KLARNA AB "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KLARNA AB OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of KLARNA AB. * * @package KlarnaAPI */ /** * KlarnaAddr is an object of convenience, to parse and create addresses. * * @package KlarnaAPI * @version 2.1.3 * @since 2011-10-10 * @link http://integration.klarna.com/ * @copyright Copyright (c) 2010 Klarna AB (http://klarna.com) */ class KlarnaAddr { /** * Email address. * * @ignore Do not show this in PHPDoc. * @var string */ protected $email; /** * Phone number. * * @ignore Do not show this in PHPDoc. * @var string */ protected $telno; /** * Cellphone number. * * @ignore Do not show this in PHPDoc. * @var string */ protected $cellno; /** * First name. * * @ignore Do not show this in PHPDoc. * @var string */ protected $fname; /** * Last name. * * @ignore Do not show this in PHPDoc. * @var string */ protected $lname; /** * Company name. * * @ignore Do not show this in PHPDoc. * @var string */ protected $company; /** * Care of, C/O. * * @ignore Do not show this in PHPDoc. * @var string */ protected $careof; /** * Street address. * * @ignore Do not show this in PHPDoc. * @var string */ protected $street; /** * Zip code. * * @ignore Do not show this in PHPDoc. * @var string */ protected $zip; /** * City. * * @ignore Do not show this in PHPDoc. * @var string */ protected $city; /** * {@link KlarnaCountry} constant.<br> * * @ignore Do not show this in PHPDoc. * @var int */ protected $country; /** * House number.<br> * Only for NL and DE!<br> * * @ignore Do not show this in PHPDoc. * @var string */ protected $houseNo; /** * House extension.<br> * Only for NL!<br> * * @ignore Do not show this in PHPDoc. * @var string */ protected $houseExt; /** * When using {@link Klarna::getAddresses()} this might be guessed depending on type used.<br> * * Signifies if address is for a company or a private person.<br> * If isCompany is null, then it is unknown and will be assumed to be a private person.<br> * * <b>Note</b>:<br> * This has no effect on transmitted data.<br> * * @var bool|null */ public $isCompany = null; /** * Class constructor. * * Calls the set methods for all arguments. * * @param string $email Email address. * @param string $telno Phone number. * @param string $cellno Cellphone number. * @param string $fname First name. * @param string $lname Last name. * @param string $careof Care of, C/O. * @param string $street Street address. * @param string $zip Zip code. * @param string $city City. * @param string|int $country {@link KlarnaCountry} constant or two letter code. * @param string $houseNo House number, only used in DE and NL. * @param string $houseExt House extension, only used in NL. * @throws KlarnaException */ public function __construct($email = null, $telno = null, $cellno = null, $fname = null, $lname = null, $careof = "", $street = null, $zip = null, $city = null, $country = null, $houseNo = "", $houseExt = "") { //Set all string values to "" $this->company = ""; $this->telno = ""; $this->careof = ""; $this->cellno = ""; $this->city = ""; $this->email = ""; $this->fname = ""; $this->lname = ""; $this->zip = ""; if($email !== null) { $this->setEmail($email); } if($telno !== null) { $this->setTelno($telno); } if($cellno !== null) { $this->setCellno($cellno); } if($fname !== null) { $this->setFirstName($fname); } if($lname !== null) { $this->setLastName($lname); } $this->setCareof($careof); if($street !== null) { $this->setStreet($street); } if($zip !== null) { $this->setZipCode($zip); } if($city !== null) { $this->setCity($city); } if($country !== null) { $this->setCountry($country); } $this->setHouseNumber($houseNo); $this->setHouseExt($houseExt); } /** * Returns the email address. * * @return string */ public function getEmail() { return $this->email; } /** * Sets the email address. * * @param string $email * @return void */ public function setEmail($email) { if(!is_string($email)) { $email = strval($email); } if(strlen($email) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': Email address not specified!'); } $this->email = $email; } /** * Returns the phone number. * * @return string */ public function getTelno() { return $this->telno; } /** * Sets the phone number. * * @param string $telno * @return void */ public function setTelno($telno) { if(!is_string($telno)) { $telno = strval($telno); } $this->telno = $telno; } /** * Returns the cellphone number. * * @return string */ public function getCellno() { return $this->cellno; } /** * Sets the cellphone number. * * @param string $cellno * @return void */ public function setCellno($cellno) { if(!is_string($cellno)) { $cellno = strval($cellno); } $this->cellno = $cellno; } /** * Returns the first name. * * @return string */ public function getFirstName() { return $this->fname; } /** * Sets the first name. * * @param string $fname * @return void */ public function setFirstName($fname) { if(!is_string($fname)) { $fname = strval($fname); } if(strlen($fname) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': First name not specified!'); } $this->fname = $fname; } /** * Returns the last name. * * @return string */ public function getLastName() { return $this->lname; } /** * Sets the last name. * * @param string $lname * @return void */ public function setLastName($lname) { if(!is_string($lname)) { $lname = strval($lname); } if(strlen($lname) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': Last name not specified!'); } $this->lname = $lname; } /** * Returns the company name. * * @return string */ public function getCompanyName() { return $this->company; } /** * Sets the company name.<br> * If the purchase results in a company purchase, reference person will be used from first and last name,<br> * or the value set with {@link Klarna::setReference()}.<br> * * @see Klarna::setReference * @param string $company * @return void */ public function setCompanyName($company) { if(!is_string($company)) { $company = strval($company); } if(strlen($company) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': Company name not specified!'); } $this->company = $company; } /** * Returns the care of, C/O. * * @return string */ public function getCareof() { return $this->careof; } /** * Sets the care of, C/O. * * @param string $careof * @return void */ public function setCareof($careof) { if(!is_string($careof)) { $careof = strval($careof); } $this->careof = $careof; } /** * Returns the street address. * * @return string */ public function getStreet() { return $this->street; } /** * Sets the street address. * * @param string $street * @return void */ public function setStreet($street) { if(!is_string($street)) { $street = strval($street); } if(strlen($street) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': Street address not specified!'); } $this->street = $street; } /** * Returns the zip code. * * @return string */ public function getZipCode() { return $this->zip; } /** * Sets the zip code. * * @param string $zip * @return void */ public function setZipCode($zip) { if(is_string($zip)) { $zip = str_replace(' ', '', $zip); //remove spaces } else { $zip = strval($zip); } if(strlen($zip) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': Zip code not specified!'); } $this->zip = $zip; } /** * Returns the city. * * @return string */ public function getCity() { return $this->city; } /** * Sets the city. * * @param string $city * @return void */ public function setCity($city) { if(!is_string($city)) { $city = strval($city); } if(strlen($city) == 0) { throw new KlarnaException("Error in " . __METHOD__ . ': City not specified!'); } $this->city = $city; } /** * Returns the country as a integer constant. * * @return int {@link KlarnaCountry} */ public function getCountry() { return $this->country; } /** * Returns the country as a two letter representation. * * @throws KlarnaException * @return string E.g. 'de', 'dk', ... */ public function getCountryCode() { switch($this->country) { case KlarnaCountry::DE: return 'de'; case KlarnaCountry::DK: return 'dk'; case KlarnaCountry::FI: return 'fi'; case KlarnaCountry::NL: return 'nl'; case KlarnaCountry::NO: return 'no'; case KlarnaCountry::SE: return 'se'; default: throw new KlarnaException('Error in' . __METHOD__ . ': Unknown country! ('.$this->country.')'); } } /** * Sets the country, use either a two letter representation or the integer constant. * * @param int $country {@link KlarnaCountry} * @throws KlarnaException * @return void */ public function setCountry($country) { if(!is_numeric($country) && strlen($country) == 2) { $this->setCountry(Klarna::getCountryForCode($country)); } else { if(!isset($country)) { throw new KlarnaException("Error in " . __METHOD__ . ": Country is not set!"); } if(is_numeric($country) && !is_int($country)) { $country = intval($country); } if(!is_numeric($country) || !is_int($country)) { throw new KlarnaException("Error in " . __METHOD__ . ": Country not an integer! ($country)"); } $this->country = $country; } } /** * Returns the house number.<br> * Only used in Germany and Netherlands.<br> * * @return string */ public function getHouseNumber() { return $this->houseNo; } /** * Sets the house number.<br> * Only used in Germany and Netherlands.<br> * * @param string $houseNo * @return void */ public function setHouseNumber($houseNo) { if(!is_string($houseNo)) { $houseNo = strval($houseNo); } $this->houseNo = $houseNo; } /** * Returns the house extension.<br> * Only used in Netherlands.<br> * * @return string */ public function getHouseExt() { return $this->houseExt; } /** * Sets the house extension.<br> * Only used in Netherlands.<br> * * @param string $houseExt * @return void */ public function setHouseExt($houseExt) { if(!is_string($houseExt)) { $houseExt = strval($houseExt); } $this->houseExt = $houseExt; } /** * Returns an associative array representing this object. * * @return array */ public function toArray() { return array( 'email' => $this->getEmail(), 'telno' => $this->getTelno(), 'cellno' => $this->getCellno(), 'fname' => $this->getFirstName(), 'lname' => $this->getLastName(), 'company' => $this->getCompanyName(), 'careof' => $this->getCareof(), 'street' => $this->getStreet(), 'house_number' => $this->getHouseNumber(), 'house_extension' => $this->getHouseExt(), 'zip' => $this->getZipCode(), 'city' => $this->getCity(), 'country' => $this->getCountry(), ); } }