%PDF- %PDF-
Direktori : /proc/self/root/home1/lightco1/www/plugins/vmpayment/klarna/klarna/helpers/ |
Current File : //proc/self/root/home1/lightco1/www/plugins/vmpayment/klarna/klarna/helpers/klarna_ajax.php |
<?php defined('_JEXEC') or die('Restricted access'); /** * The Klarna AJAX provider. * This class provides data for AJAX calls * * @package Klarna Standard Kassa API * @version 2.0.0 * @since 2011-10-10 * @link http://integration.klarna.com/ * @copyright Copyright (c) 2011 Klarna AB (http://klarna.com) */ if (!class_exists('KlarnaAPI')) { require (JPATH_VMKLARNAPLUGIN . DS . 'klarna' . DS . 'helpers' . DS . 'klarnaapi.php'); } class KlarnaAjax { private $api; private $template; private $coSetup; /** * @param $api * @param $eid * @param $path * @param $webroot */ public function __construct($api, $eid, $path, $webroot) { if (!$api instanceof Klarna) { throw new KlarnaApiException("api must be an instance of Klarna"); } $this->api = $api; $this->eid = $eid; $this->path = $path; $this->coSetup = array(); } /** * @param $template */ public function __setTemplate($template) { if (is_array($template)) { $this->template = array_merge($this->template, $template); } else { $this->template['name'] = $template; } } /** * @param $arr */ public function __addSetupValues($arr) { if (is_array($arr)) { $this->coSetup = array_merge($this->coSetup, $arr); } } /** * @return null * @throws KlarnaApiException */ public function languagepack() { $sSubAction = vRequest::getWord('subAction'); if (!isset($this->template['name']) || $this->template['name'] == '') { $this->template['name'] = "default"; } if ($sSubAction == "klarna_box") { $sNewISO = vRequest::getWord('newIso'); $sCountry = vRequest::getWord('country'); $iSum = vRequest::getFloat('sum', 0); $iInvoiceFee = vRequest::getFloat('fee', 0); $iFlag = vRequest::getInt('flag'); $sType = vRequest::getWord('type'); $aParams = vRequest::getVar('params'); $aValues = vRequest::getVar('values'); // foreach($aValues as $key => $value) { // $aValues[$key] = utf8_encode($value); // } // foreach($aParams as $key => $value) { // $aParams[$key] = utf8_decode($value); // } if ($sType != "part" && $sType != "invoice" && $sType != "spec") { throw new KlarnaApiException("Invalid parameters"); } $this->api->setCountry($sCountry); if ($sType == 'spec') { $types = array(KlarnaPClass::SPECIAL); } else { $types = array(KlarnaPClass::CAMPAIGN, KlarnaPClass::ACCOUNT, KlarnaPClass::FIXED); } $oApi = new KlarnaAPI ($sCountry, $sNewISO, $sType, $iSum, $iFlag, $this->api, $types, VMKLARNAPLUGINWEBROOT); // $oApi->addSetupValue ('web_root', $this->webroot); // $oApi->setPaths (); $oApi->addSetupValue('eid', $this->eid); if ($sType == 'invoice') { $oApi->setInvoiceFee($iInvoiceFee); } $oApi->setCurrency($this->api->getCurrency()); if (count($this->coSetup) > 0) { $oApi->addMultipleSetupValues($this->coSetup); } return $oApi->retrieveLayout($aParams, $aValues); // if ($sType == 'spec') { // return $oApi->retrieveHTML($aParams, $aValues, null, $this->template); // } else { // return $oApi->retrieveHTML ($aParams, $aValues); // } } else { if ($sSubAction == 'jsLanguagePack') { $sNewISO = vRequest::getWord('newIso'); $sFetch = ""; } else { throw new KlarnaApiException("Invalid sub-action"); } } } public function getAddress() { $aSessionCalls = array(); // Check the session for calls if (array_key_exists('klarna_address', $_SESSION)) { $sSessionCalls = base64_decode($_SESSION['klarna_address']); $aSessionCalls = unserialize($sSessionCalls); } $sPNO = vRequest::getWord('socialNumber'); //vRequest::getWord('pno'); $sCountry = strtolower(vRequest::getWord('country')); if (array_key_exists($sPNO, $aSessionCalls)) { $addrs = $aSessionCalls[$sPNO]; } else { $addrs = $this->api->getAddresses($sPNO, NULL, KlarnaFlags::GA_GIVEN); $aSessionCalls[$sPNO] = $addrs; $_SESSION['klarna_address'] = base64_encode(serialize($aSessionCalls)); } $sString = "<?xml version='1.0'" . "?" . ">\n"; //eval breaks at question-mark gt $sString .= "<getAddress>\n"; //This example only works for GA_GIVEN. foreach ($addrs as $index => $addr) { if ($addr->isCompany) { $implode = array( 'companyName' => $addr->getCompanyName(), 'street' => $addr->getStreet(), 'zip' => $addr->getZipCode(), 'city' => $addr->getCity(), 'countryCode' => $addr->getCountryCode() ); } else { $implode = array( 'first_name' => $addr->getFirstName(), 'last_name' => $addr->getLastName(), 'street' => $addr->getStreet(), 'zip' => $addr->getZipCode(), 'city' => $addr->getCity(), 'countryCode' => $addr->getCountryCode() ); } $sString .= "<address>\n"; foreach ($implode as $key => $val) { $sString .= "<" . $key . ">" . Klarna::num_htmlentities($val) . "</" . $key . ">\n"; } $sString .= "</address>\n"; } $sString .= "</getAddress>"; return array( 'type' => 'text/xml', 'value' => $sString); } }