/** * Build a KlarnaAddr from an osCommerce order address array, and takes * missing information from $_POST (collected from our checkout). * * @param array $xtcAddress xtcommerce order address array * * @return KlarnaAddr klarnaAddr object */ public function xtcAddressToKlarnaAddr($xtcAddress) { $country = strtolower($xtcAddress['country']['iso_code_2']); $splitAddr = KiTT_Addresses::splitStreet($xtcAddress["street_address"], $country); $street = ''; $houseno = ''; $housext = ''; if (array_key_exists('street', $splitAddr)) { $street = $splitAddr['street']; } if (array_key_exists('house_number', $splitAddr)) { $houseno = $splitAddr['house_number']; } if (array_key_exists('house_extension', $splitAddr)) { $housext = $splitAddr['house_extension']; } $address = new KlarnaAddr(KiTT_String::encode($_POST["klarna_email"]), KiTT_String::encode($_POST["klarna_phone"]), KiTT_String::encode($_POST["klarna_phone"]), KiTT_String::encode($xtcAddress["firstname"]), KiTT_String::encode($xtcAddress["lastname"]), "", KiTT_String::encode($street), KiTT_String::encode($xtcAddress["postcode"]), KiTT_String::encode($xtcAddress["city"]), KiTT_String::encode($country), KiTT_String::encode($houseno), KiTT_String::encode($housext)); return $address; }
/** * Populate an array with customer information * * @param object $order osCommerce order object * * @return array */ public function collectKlarnaData($order) { $klarna_data = array(); $klarna_data['phone_number'] = $order->customer['telephone']; $klarna_data['email_address'] = $order->customer['email_address']; $klarna_data['reference'] = $order->delivery['firstname'] . " " . $order->delivery['lastname']; $address = KiTT_Addresses::splitStreet($order->delivery['street_address'], $this->_country); $klarna_data = array_merge($klarna_data, $address); if (KiTT_CountryLogic::needDateOfBirth($this->_country)) { // Get date of birth $customer_query = $this->_klarnaDB->query("SELECT DATE_FORMAT(customers_dob, " . "'%d%m%Y') AS customers_dob from " . TABLE_CUSTOMERS . " where customers_id = '" . (int) $_SESSION['customer_id'] . "'"); $customer = $customer_query->getArray(); $dob = $customer['customers_dob']; $klarna_data['birth_year'] = substr($dob, 4, 4); $klarna_data['birth_month'] = substr($dob, 2, 2); $klarna_data['birth_day'] = substr($dob, 0, 2); } $klarna_data['first_name'] = $order->delivery['firstname']; $klarna_data['last_name'] = $order->delivery['lastname']; $klarna_data['city'] = $order->delivery['city']; $klarna_data['zipcode'] = $order->delivery['postcode']; $klarna_data['company_name'] = $order->delivery['company']; $klarna_data['gender'] = $order->customer['gender'] == 'm' ? 1 : 0; foreach ($klarna_data as $key => $value) { $klarna_data[$key] = KiTT_String::encode($value, null, 'UTF-8'); } return $klarna_data; }