public function payCreditCard() { echo 1; die; fb($this->orderModel); $requestArray = array('request' => array('terminalid' => null, 'password' => null, 'action' => 1, 'card' => $this->paymentModel->cc_number, 'cvv2' => $this->paymentModel->cc_cvv, 'expYear' => '20' . $this->paymentModel->num4, 'expMonth' => $this->paymentModel->num3, 'member' => $this->customerModel->lname . ' ' . $this->customerModel->fname, 'currencyCode' => $this->campaignModel->currency_id, 'address' => $this->billingAddressModel->address1 . ' ' . $this->billingAddressModel->address2, 'city' => $this->billingAddressModel->city, 'statecode' => $this->billingAddressModel->state_id, 'zip' => $this->billingAddressModel->zip, 'CountryCode' => $this->billingAddressModel->country->country_name, 'email' => $this->customerModel->email, 'amount' => $this->attemptModel->amount, 'trackid' => $this->attemptModel->getrequest_id('vg'), 'udf1' => null, 'udf2' => null, 'udf3' => null, 'udf4' => null, 'udf5' => null)); $xml = HelperFormatted::array2xml($requestArray); echo '<pre>'; print_r($xml); echo '</pre>'; return false; //OrderLog::createLog(0, $this->orderModel->order_id, 22, ($this->attemptModel->amount).' '.$this->campaignModel->currency_id); }
public function createByOrder(Order $order) { $modelAttempt = new Attempt(); $modelAttempt->getLastOrderAttempt($order->order_id, Attempt::CREDIT_TYPE); //fb($order); $xmlArr = self::$_xmlContainer; $xmlArr['inkasso']['auftraggebernummer'] = 1088; $xmlArr['inkasso']['erstellungsdatum'] = date("d.m.Y"); //$xmlArr['inkasso']['schuldner']['kundennummer']='';//2325 $xmlArr['inkasso']['schuldner']['vorname'] = $order->customer->fname; $xmlArr['inkasso']['schuldner']['name'] = $order->customer->lname; //$xmlArr['inkasso']['schuldner']['anrede']=''; //$xmlArr['inkasso']['schuldner']['geburtsdatum']=''; //$xmlArr['inkasso']['schuldner']['familienstand']=''; $xmlArr['inkasso']['schuldner']['gewerblich'] = 0; $xmlArr['inkasso']['schuldner']['rechtsform'] = 'Privat'; //?? //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-name1']=''; //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-strasse']=''; //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-plz']=''; //$xmlArr['inkasso']['schuldner']['arbeitgeber']['arbeitgeber-ort']=''; $xmlArr['inkasso']['schuldner']['adresse']['strasse'] = $order->address->fullAddress; $xmlArr['inkasso']['schuldner']['adresse']['plz'] = $order->address->zip; $xmlArr['inkasso']['schuldner']['adresse']['ort'] = $order->address->city; $xmlArr['inkasso']['schuldner']['adresse']['land'] = $order->address->country->country_name; //$xmlArr['inkasso']['schuldner']['adresse']['zusatz']=''; $xmlArr['inkasso']['schuldner']['telefon']['telefonnr'] = $order->address->phone; $xmlArr['inkasso']['schuldner']['telefon']['typ'] = 'Telefon'; //or Mobil $xmlArr['inkasso']['schuldner']['telefon']['zusatz'] = 'Zuhause'; //?? Zuhause, Arbeit, Partner, Eltern $xmlArr['inkasso']['schuldner']['email']['emailadresse'] = $order->customer->email; //$xmlArr['inkasso']['schuldner']['bankverbindung']['kontoinhaber']=''; $xmlArr['inkasso']['schuldner']['bankverbindung']['kontonr'] = strlen($order->payment->bank_code) <= 10 ? $order->payment->bank_code : null; $xmlArr['inkasso']['schuldner']['bankverbindung']['blz'] = strlen($order->payment->bank_code) == 8 ? $order->payment->bank_code : null; //$xmlArr['inkasso']['schuldner']['bankverbindung']['bankname']='';//?? $xmlArr['inkasso']['inkassofall']['bestelldatum'] = HelperFormatted::date_euro_format($order->created); $xmlArr['inkasso']['inkassofall']['bestellzeit'] = HelperFormatted::time_format($order->created); $xmlArr['inkasso']['inkassofall']['mandatenreferenz'] = $order->campaign->order_url; $xmlArr['inkasso']['inkassofall']['zusatzinfo1'] = $order->ip_formatted; //$xmlArr['inkasso']['inkassofall']['zusatzinfo2']=''; //$xmlArr['inkasso']['inkassofall']['zusatzinfo3']=''; //$xmlArr['inkasso']['inkassofall']['sachbearbeiter']=''; //$xmlArr['inkasso']['inkassofall']['telsach']=''; $xmlArr['inkasso']['inkassofall']['forderung']['rechnungsnr'] = $modelAttempt->attempt_id; $xmlArr['inkasso']['inkassofall']['forderung']['rechnungstext'] = $modelAttempt->status_note; $xmlArr['inkasso']['inkassofall']['forderung']['betrag'] = $modelAttempt->amount * 100; $xmlArr['inkasso']['inkassofall']['forderung']['rech-datum'] = HelperFormatted::date_euro_format($modelAttempt->created); //$xmlArr['inkasso']['inkassofall']['forderung']['datumerstemahn']=''; //$xmlArr['inkasso']['inkassofall']['forderung']['mahngebuehrengesamt']=''; $xmlArr['inkasso']['inkassofall']['forderung']['zins-datum'] = HelperFormatted::date_euro_format($modelAttempt->created); //$xmlArr['inkasso']['inkassofall']['forderung']['katalog-nr']=''; //$xmlArr['inkasso']['inkassofall']['forderung']['ruecklaeufergebuehr']=''; //$xmlArr['inkasso']['inkassofall']['forderung']['datumruecklaeufergebuehr']=''; //$xmlArr['inkasso']['inkassofall']['forderung']['waehrung']=''; $xmlRequest = HelperFormatted::array2xml($xmlArr, false); /* header("Content-type:text/xml; charset=utf-8"); echo $xmlRequest; die; */ $xmlResponse = $this->request($xmlRequest, self::METHOD_INKASSOFAL_EINTRAGEN); $responseModel = simplexml_load_string($xmlResponse); $responseModel = (array) $responseModel; $responseItem = false; echo '<pre>'; print_r($responseModel); echo '</pre>'; die; foreach ($responseModel as $item) { ///* header("Content-type:text/xml; charset=utf-8"); echo $item; die; //*/ $responseItem = simplexml_load_string($item); return; } if ($responseItem && $responseItem->Code == 'OK') { } else { } }
private function send($xmlArray, $url, $service = null, $post = true, $put = false) { $xml = null; if ($post && $service) { $xml = HelperFormatted::array2xml($xmlArray, false); $xml = str_replace('<' . $service . '>', '<' . $service . ' xmlns="http://ws.plimus.com">', $xml); fb($xml); } $url = $this->_paymentOptions['curlUrl'] . $url; $options = $this->gatewayModel->attributes; self::log('request', $xml, $url); $login = base64_encode(self::$isTest ? 'API_1420799842330432723628:l4D9dB8g!j4NaV70' : $options['username'] . ':' . $options['shared_secret']); //$key = '84bef16bbed7ec95389a6a3023b56b87d9e163c32812a96d19d9b3c6f3447e2108001655a66940752960648513ca8f6ba80b034a14e915de6d1392a2a2ca4d12950c948207e05749f635b468b82f38bd0418d67acd2a009070886ef0eb4eaec7239a6341aae57211ad9357e976c4fe37c80dea52009af6dc101114a513c9d1726bfce01c97ee370f60e1205c0fb92798736ddb8de558a666b7edb65f8ea4e82003945cbad9adcdf1259d8dd6c69081b2e226b6bba416cb0f84cfef5fc976fd2c6a9c247f4eb12a3a5ff0a06c85c0aeeeecc6cfe6507eedd05153d1e5bab9dd9840d9c78121fa8c86ffec32f778de5720d37c886ea4bb12c244e8a6255b20cab5'; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if ($post) { curl_setopt($ch, CURLOPT_URL, $url); if ($put) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); } curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', 'Authorization: Basic ' . $login)); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); } else { if (http_build_query($xmlArray)) { $url .= '?' . http_build_query($xmlArray); } curl_setopt($ch, CURLOPT_URL, $url); if ($put) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); } curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', 'Authorization: Basic ' . $login)); } $output = curl_exec($ch); if (curl_errno($ch)) { self::log('response', 'error:' . curl_error($ch)); self::log('response', $output); } $info = curl_getinfo($ch, CURLINFO_HEADER_SIZE); curl_close($ch); //Execute Curl call and extract header and body contant $headers = substr($output, 0, $info); $body = substr($output, $info); self::log('response', $body); $t = explode("\r\n", $headers); $headersArray = array(); foreach ($t as $item) { $tt = explode(': ', $item); if (isset($tt[0]) && $tt[0] && isset($tt[1]) && $tt[1]) { $headersArray[trim($tt[0])] = trim($tt[1]); } } $return = array('headers' => $headersArray, 'body' => $body); if ($body) { libxml_use_internal_errors(true); try { $return['xml'] = new SimpleXMLElement($body); } catch (Exception $e) { $return['xml'] = null; } } if (self::$isTest) { fb('Service: ' . $service . '-->'); fb($xmlArray); fb($url); fb('Response:'); fb($return); fb('<--'); } return $return; }
protected function getAttemptInfo($isSave = false) { $xmlStructure = array('request' => array('action', 'meta', 'params' => array('order' => array('orderid')))); $xmlArray = $this->getMainRequestArray(self::ACTION_GET_ORDERSTATUS, $xmlStructure); $xmlArray['request']['params']['order']['orderid'] = $this->orderModel->order_id; $xml = HelperFormatted::array2xml($xmlArray); $ExternalData = new ExternalData(); $xmlResponse = $ExternalData->getData($this->_paymentOptions['curlUrl'], $xml); //fb($xmlArray); /* header("Content-type:text/xml; charset=utf-8"); echo $xmlResponse; die; */ if ($ExternalData->checkErrors()) { $this->_paymetnResponse->addError(substr($ExternalData->error, 6)); $this->_paymetnResponse->status = PaymentAPIResponse::ERROR_STATUS; return false; } $xmlResponseModel = simplexml_load_string($xmlResponse); $RESPONSE = $xmlResponseModel->REQUEST->RESPONSE; if ($RESPONSE->RESULT != 'OK') { $this->_paymetnResponse->status = PaymentAPIResponse::ERROR_STATUS; return false; } $this->attemptModel->status_note = $RESPONSE->STATUS->STATUSID; if ($isSave) { if ($RESPONSE->STATUS->PAYMENTREFERENCE && !$RESPONSE->STATUS->CUSTOMERACCOUNT->PAYMENTREFERENCE) { $RESPONSE->STATUS->CUSTOMERACCOUNT->PAYMENTREFERENCE = $RESPONSE->STATUS->PAYMENTREFERENCE; } $this->saveBankData($RESPONSE->STATUS->CUSTOMERACCOUNT); } $this->checkResponseStatusID($RESPONSE); return true; }