$request['country'] = getISO3166CountryCode($order['customer_billing_country']);
 //ISO-3166
 $request['email'] = $order['customer_billing_email'];
 $request['telephonenumber'] = $order['customer_billing_phone'];
 //$request['birthday'] = ''; //YYYYMMDD
 //$request['language'] = ''; //ISO639
 //$request['vatid'] = '';
 //$request['ip'] = '';
 //--SHIPPING INFO
 $request['shipping_firstname'] = $order['customer_shipping_firstname'];
 $request['shipping_lastname'] = $order['customer_shipping_lastname'];
 //$request['shipping_company'] = '';
 $request['shipping_street'] = $order['customer_shipping_address'];
 $request['shipping_zip'] = $order['customer_shipping_postcode'];
 $request['shipping_city'] = $order['customer_shipping_city'];
 $request['shipping_country'] = getISO3166CountryCode($order['customer_shipping_country']);
 //ISO-3166
 //--METHOD PARAMETERS: COD
 if ($order["payment_method"] == 'CASH_ON_DELIVERY') {
     $request['shippingprovider'] = 'DHL';
 }
 $request['param'] = $order['order_id'];
 //APPLY UTF-8 ENCODING TO ALL REQUEST (STRING VALUE)
 foreach ($request as $key => $value) {
     if (is_string($value)) {
         $request[$key] = utf8_encode($value);
     } elseif (is_array($value)) {
         foreach ($value as $val_key => $val_value) {
             if (is_string($val_value)) {
                 $request[$key][$val_key] = utf8_encode($val_value);
             }
Example #2
0
 function payoneCustomerConsumerScore($order_id, $is_sp = true)
 {
     use_class('jng_sp_orders');
     use_class('jng_sp_customers');
     $class_orders = new jng_sp_orders();
     $class_cust = new jng_sp_customers();
     $process_method = PAYONE_REQUEST_CONSUMERSCORE;
     $result = null;
     if ($is_sp) {
         $q = "SELECT c.`customer_firstname` firstname,c.`customer_lastname` lastname\n                    , o.`customer_billing_address` street, o.`customer_billing_postcode` zip, o.`customer_billing_city` city, o.`customer_billing_country` country, o.`customer_billing_phone` telephonenumber\n                    FROM jng_sp_orders o\n                    INNER JOIN jng_sp_customers c ON c.`customer_id` = o.`customer_billing_id`\n                    WHERE o.`jng_sp_orders_id` = {$order_id}";
     } else {
         $q = $q = "SELECT o.`delivery_name`, o.`delivery_company` company, o.`delivery_street_address` street, o.`delivery_postcode` zip, o.`delivery_city` city, o.`delivery_country` country\n                    , c.`customers_telephone` telephonenumber\n                    FROM orders o\n                    INNER JOIN customers c ON c.`customers_id` = o.`customers_id`\n                    WHERE o.`orders_id` =  {$order_id}";
     }
     $dbq = tep_db_query($q);
     $r = array();
     $r = tep_db_fetch_array($dbq);
     if (count($r) > 1) {
         $request = array();
         //--STANDARD PARAMETERS
         $request['mid'] = PAYONE_MERCHANT_ID;
         $request['portalid'] = PAYONE_PORTAL_ID;
         $request['key'] = md5(PAYONE_PORTAL_KEY);
         $request['mode'] = PAYONE_MODE;
         $request['request'] = $process_method;
         $request['encoding'] = 'UTF-8';
         $request['aid'] = $is_sp ? PAYONE_SUBACCOUNT_ID_OTTODE : PAYONE_SUBACCOUNT_ID_JNG;
         //PREPARE PARAMETERS
         $request['addresschecktype'] = 'BA';
         //BA : Addresscheck Basic; PE : Addresscheck Person (cannot used, must have another settings)
         $request['consumerscoretype'] = 'IB';
         //IH : Infoscore (hard criteria); IA : Infoscore (all criteria); IB : Infoscore (all criteria + boni score)
         if ($is_sp) {
             $request['firstname'] = $r['firstname'];
             $request['lastname'] = $r['lastname'];
         } else {
             list($request['firstname']) = split(" ", $r['billing_name']);
             $request['lastname'] = trim(substr($r['billing_name'], strlen($request['firstname']), strlen($r['billing_name']) - strlen($request['firstname'])));
         }
         if ($r['company'] != '') {
             $request['company'] = $r['company'];
         }
         $request['street'] = $r['street'];
         $request['zip'] = $r['zip'];
         $request['city'] = $r['city'];
         $request['country'] = getISO3166CountryCode($r['country']);
         if ($r['telephonenumber'] != '') {
             $request['telephonenumber'] = $r['telephonenumber'];
         }
         //                echo "<pre>";return var_dump($request);die();
         use_class('payone_logger');
         use_class('payone/financegateConnect');
         $class_plog = new payone_logger();
         $fconnect = new financegateConnect();
         $process_time = date('Y-m-d H:i:s');
         $fconnect->setApiUrl(PAYONE_API_URL);
         $response = $fconnect->processByArray($request);
         $class_plog->add('S', $process_time, $process_method, $request, $response);
         $result = $returns['txid'];
         if (is_array($response)) {
             //                    $result = $response['status'];
             $result = $response;
         }
     }
     return $result;
 }
     $request['shipping_zip'] = $order['customer_shipping_postcode'];
     $request['shipping_city'] = $order['customer_shipping_city'];
     $request['shipping_country'] = getISO3166CountryCode($order['customer_shipping_country']);
     //ISO-3166
 } else {
     $shipping_address = $order['delivery_street_address'];
     if ($order['delivery_company'] != '') {
         $shipping_address .= ', ' . $order['delivery_company'];
     }
     list($request['shipping_firstname']) = split(" ", $order['delivery_name']);
     $request['shipping_lastname'] = trim(substr($order['delivery_name'], strlen($request['shipping_firstname']), strlen($order['delivery_name']) - strlen($request['shipping_firstname'])));
     //$request['shipping_company'] = '';
     $request['shipping_street'] = $shipping_address;
     $request['shipping_zip'] = $order['delivery_postcode'];
     $request['shipping_city'] = $order['delivery_city'];
     $request['shipping_country'] = getISO3166CountryCode($order['delivery_country']);
     //ISO-3166
 }
 //--METHOD PARAMETERS: COD
 if ($order["payment_method"] == 'CASH_ON_DELIVERY') {
     $request['shippingprovider'] = 'DHL';
 } elseif ($order["payment_method"] == PAYMENT_METHOD_DIRECT_DEBIT) {
     //Bankeinzug
     if (!$is_sp) {
         $customer_bankdata = array();
         $customer_bankdata = $class_cust->getBankAccountData($order_id);
         $request['bankcountry'] = 'DE';
         $request['bankaccount'] = preg_replace(array('/-/', '/\\s/', '/\\//', '/\\\\/'), '', $customer_bankdata['banktransfer_number']);
         $request['bankcode'] = $customer_bankdata['banktransfer_blz'];
         $request['bankaccountholder'] = $customer_bankdata['banktransfer_owner'];
     }
 /**
  * Check credit worthiness using Payone API
  * @global payone_logger $class_plog
  * @return boolean
  */
 public function checkCreditWorthiness()
 {
     global $class_plog;
     if (count($address_country) == 2) {
         $country_code = strtoupper($this->order_country);
     } else {
         $country_code = getISO3166CountryCode($this->order_country);
     }
     $process_method = PAYONE_REQUEST_CONSUMERSCORE;
     $request = array();
     //--STANDARD PARAMETERS
     $request['mid'] = PAYONE_MERCHANT_ID;
     $request['portalid'] = PAYONE_PORTAL_ID;
     $request['key'] = md5(PAYONE_PORTAL_KEY);
     $request['mode'] = PAYONE_MODE;
     $request['request'] = $process_method;
     $request['encoding'] = 'UTF-8';
     $request['aid'] = $this->order_type == Order::ORDER_TYPE_SALES_PARTNER ? PAYONE_SUBACCOUNT_ID_OTTODE : PAYONE_SUBACCOUNT_ID_JNG;
     //PREPARE PARAMETERS
     $request['addresschecktype'] = 'BA';
     $request['consumerscoretype'] = 'IB';
     $request['firstname'] = $this->order_firstname;
     $request['lastname'] = $this->order_lastname;
     $request['street'] = $this->order_address;
     $request['zip'] = $this->order_zipcode;
     $request['city'] = $this->order_city;
     $request['country'] = $country_code;
     $fconnect = new financegateConnect();
     $process_time = date('Y-m-d H:i:s');
     $fconnect->setApiUrl(PAYONE_API_URL);
     $response = $fconnect->processByArray($request);
     unset($fconnect);
     $class_plog->add('S', $process_time, $process_method, $request, $response);
     //$response = array('score' => 'G');
     if (is_array($response)) {
         switch ($response['score']) {
             case 'G':
                 $score = FraudRiskChecker::ORDER_SCORE_GREEN;
                 $source = null;
                 break;
             case 'Y':
                 $score = FraudRiskChecker::ORDER_SCORE_YELLOW;
                 $source = FraudRiskChecker::SOURCE_CREDITCHECK_YELLOW;
                 break;
             case 'R':
                 $score = FraudRiskChecker::ORDER_SCORE_RED;
                 $source = FraudRiskChecker::SOURCE_CREDITCHECK_RED;
                 break;
         }
         if (!is_null($source)) {
             FraudRiskChecker::addNewCustomer($this->order_type, $this->customer_id, $source);
         }
         $this->check_score = $score;
     } else {
         $score = false;
     }
     return $score;
 }