Пример #1
0
 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);
 }
Пример #2
0
 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 {
     }
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }