addParam() public method

public addParam ( $par )
コード例 #1
1
ファイル: Connection.php プロジェクト: kozinthetdbp/shopmyar
 public function getSocketConnect()
 {
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     $is_sesson = $this->checkConfigurationChange();
     if (!$is_sesson || !is_int($userId)) {
         $sock = $this->getSocket();
         $msg = new xmlrpcmsg('login');
         $msg->addParam(new xmlrpcval(self::$odoo_db, "string"));
         $msg->addParam(new xmlrpcval(self::$odoo_user, "string"));
         $msg->addParam(new xmlrpcval(self::$odoo_pwd, "string"));
         $resp = $sock->send($msg);
         if ($resp->faultCode()) {
             $userId = $resp->faultString();
         } else {
             $val = $resp->value();
             $id = $val->scalarval();
             if ($id > 0) {
                 $userId = $id;
             } else {
                 $userId = 'Invalid Odoo Login Details.';
             }
         }
         Mage::getSingleton('adminhtml/session')->setUserId($userId);
     }
 }
コード例 #2
0
function gFaultXmlRequest($faultCode, $faultString)
{
    global $stylevar;
    $faultMethod = 'return_fault';
    $xml = new xmlrpcmsg($faultMethod);
    $xml->addParam($faultCode);
    $xml->addParam($faultString);
    $rxml = $xml->serialize($stylevar['charset']);
    return $rxml;
}
コード例 #3
0
ファイル: xmlrpc.php プロジェクト: zeroleo12345/freeIBS
 function __createXmlRpcMsg($server_method, $params_arr)
 {
     $xml_val = my_xmlrpc_encode($params_arr);
     $xml_msg = new xmlrpcmsg($server_method);
     $xml_msg->addParam($xml_val);
     return $xml_msg;
 }
コード例 #4
0
ファイル: Mobmultishop.php プロジェクト: babycarenl/360
 public function syncStoreAtOdoo($store_data)
 {
     $response = 0;
     $auto_warehouse_generation = Mage::getStoreConfig('magerpsync/mobmultishop/auto_warehouse_generation');
     $auto_pricelist_generation = Mage::getStoreConfig('magerpsync/mobmultishop/auto_pricelist_generation');
     $store_data['auto_warehouse'] = $auto_warehouse_generation;
     $store_data['auto_pricelist'] = $auto_pricelist_generation;
     $store_array = php_xmlrpc_encode($store_data);
     $helper = Mage::helper('magerpsync/connection');
     $context = $helper->getOdooContext();
     $client = $helper->getClientConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($helper::$odoo_db, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
     $msg->addParam(new xmlrpcval("magento.store.view", "string"));
     $msg->addParam(new xmlrpcval("sync_store_view", "string"));
     $msg->addParam($store_array);
     $msg->addParam(new xmlrpcval($context, "struct"));
     $resp = $client->send($msg);
     if ($resp->faultCode()) {
         $error = "Sync Error, Store " . $store_data['name'] . " >>" . $resp->faultString();
         Mage::log($error, null, 'odoo_connector.log');
     } else {
         $response = 1;
         $odoo_id = $resp->value()->me["int"];
         $store = Mage::getModel("mobmultishop/mobmultishop");
         $store->setOdooStoreId($odoo_id);
         $store->setMageStoreId($store_data['store_id']);
         $store->setCreatedBy($helper::$mage_user);
         $store->save();
     }
     return $response;
 }
コード例 #5
0
 public function exportAttributeSet($setName, $setId)
 {
     $helper = Mage::helper('magerpsync/connection');
     $client = $helper->getClientConnect();
     $context = $helper->getOdooContext();
     $mapped_ids = $this->getMappedAttributeSetIds();
     if (!in_array($setId, $mapped_ids)) {
         $userId = Mage::getSingleton('adminhtml/session')->getUserId();
         $attributeset_array = array('name' => new xmlrpcval($setName, "string"), 'set_id' => new xmlrpcval($setId, "int"), 'created_by' => new xmlrpcval($helper::$mage_user, "string"));
         $msg = new xmlrpcmsg('execute');
         $msg->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $msg->addParam(new xmlrpcval($userId, "int"));
         $msg->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $msg->addParam(new xmlrpcval("magento.attribute.set", "string"));
         $msg->addParam(new xmlrpcval("create", "string"));
         $msg->addParam(new xmlrpcval($attributeset_array, "struct"));
         $msg->addParam(new xmlrpcval($context, "struct"));
         $resp = $client->send($msg);
         if ($resp->faultCode()) {
             $error_message = $resp->faultString();
             return array('erp_set_id' => 0, 'success' => false, 'message' => $error_message);
         } else {
             $odoo_id = $resp->value()->me["int"];
             $mapping_data = array('name' => $setName, 'mage_id' => $setId, 'odoo_id' => $odoo_id, 'created_by' => $helper::$mage_user);
             $this->setmapping($mapping_data);
             return array('success' => true, 'erp_set_id' => $odoo_id);
         }
     }
     return array('success' => true);
 }
コード例 #6
0
function doPing($title, $URI)
{
    include "include/xmlrpc.inc";
    $client = new xmlrpc_client("http://sindice.com/xmlrpc/api");
    $payload = new xmlrpcmsg("weblogUpdates.ping");
    $payload->addParam(new xmlrpcval($title));
    $payload->addParam(new xmlrpcval($URI));
    $response = $client->send($payload);
    $xmlresponsestr = $response->serialize();
    $xml = simplexml_load_string($xmlresponsestr);
    $result = $xml->xpath("//value/boolean/text()");
    if ($result) {
        if ($result[0] == "0") {
            // echo "<p>Submitting $URI to $servicetitle succeeded.</p>";
            return;
        }
    } else {
        $err = "Error Code: " . $response->faultCode() . "<br /> Error Message: " . $response->faultString();
        // echo "<p>Failed to submit $URI to $servicetitle.</p>";
    }
}
コード例 #7
0
ファイル: Data.php プロジェクト: kozinthetdbp/shopmyar
 public function CheckOdooActiveConfig()
 {
     $helper = Mage::helper('magerpsync/connection');
     $mage_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
     /*$fields = array('magento_url'=>new xmlrpcval($mage_url, "string"),);*/
     $helper->getSocketConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         $client = $helper->getClientConnect();
         $fields = array('magento_url' => new xmlrpcval($mage_url, "string"));
         $msg2 = new xmlrpcmsg('execute');
         $msg2->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $msg2->addParam(new xmlrpcval($userId, "int"));
         $msg2->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $msg2->addParam(new xmlrpcval("magento.configure", "string"));
         $msg2->addParam(new xmlrpcval("fetch_connection_info", "string"));
         $msg2->addParam(new xmlrpcval($fields, "struct"));
         $resp = $client->send($msg2);
         $data = $resp->value()->scalarval();
         if ($data) {
             $this->ERP_CATEG = $data['category']->me['array'][0]->me['int'];
             $this->ERP_LANG = $data['language']->me['string'];
             $this->ERP_WAREHOUSE = $data['warehouse_id']->me['array'][0]->me['int'];
             $this->ERP_INSTANCE = $data['id']->me['int'];
             $this->setToSession();
             return true;
         }
     }
     return false;
 }
コード例 #8
0
ファイル: Data.php プロジェクト: babycarenl/360
 public function CheckOdooActiveConfig()
 {
     $helper = Mage::helper('magerpsync/connection');
     $helper->getSocketConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         $mage_url = Mage::getBaseUrl();
         $client = $helper->getClientConnect();
         $fields = array('magento_url' => new xmlrpcval($mage_url, "string"));
         $msg2 = new xmlrpcmsg('execute');
         $msg2->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $msg2->addParam(new xmlrpcval($userId, "int"));
         $msg2->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $msg2->addParam(new xmlrpcval("magento.configure", "string"));
         $msg2->addParam(new xmlrpcval("fetch_connection_info", "string"));
         $msg2->addParam(new xmlrpcval($fields, "struct"));
         $resp = $client->send($msg2);
         if ($resp->faultcode()) {
             $error = $this->__("Fetch Odoo Config Error,") . $resp->faultString();
             Mage::log($error, null, 'odoo_connector.log');
         } else {
             $data = $resp->value()->scalarval();
             if ($data) {
                 $this->ERP_CATEG = $data['category']->me['array'][0]->me['int'];
                 $this->ERP_LANG = $data['language']->me['string'];
                 $this->ERP_WAREHOUSE = $data['warehouse_id']->me['array'][0]->me['int'];
                 $this->ERP_INSTANCE = $data['id']->me['int'];
                 $this->setToSession();
                 return true;
             }
         }
     }
     return false;
 }
コード例 #9
0
ファイル: webmin.php プロジェクト: karepwes/OcsPanels
 function exec($method, $params = NULL)
 {
     $message = new xmlrpcmsg($method);
     if ($params && is_array($params)) {
         foreach ($params as $value) {
             $message->addParam(php_xmlrpc_encode($value));
         }
     }
     $result = $this->db->send($message, 15);
     if ($result->faultCode()) {
         throw new Exception($result->faultString());
     }
     return $result->value();
 }
コード例 #10
0
ファイル: proxy.php プロジェクト: 5haman/knowledgetree
/**
 * Forward an xmlrpc request to another server, and return to client the response received.
 * @param xmlrpcmsg $m (see method docs below for a description of the expected parameters)
 * @return xmlrpcresp
 */
function forward_request($m)
{
    // create client
    $timeout = 0;
    $url = php_xmlrpc_decode($m->getParam(0));
    $c = new xmlrpc_client($url);
    if ($m->getNumParams() > 3) {
        // we have to set some options onto the client.
        // Note that if we do not untaint the received values, warnings might be generated...
        $options = php_xmlrpc_decode($m->getParam(3));
        foreach ($options as $key => $val) {
            switch ($key) {
                case 'Cookie':
                    break;
                case 'Credentials':
                    break;
                case 'RequestCompression':
                    $c->setRequestCompression($val);
                    break;
                case 'SSLVerifyHost':
                    $c->setSSLVerifyHost($val);
                    break;
                case 'SSLVerifyPeer':
                    $c->setSSLVerifyPeer($val);
                    break;
                case 'Timeout':
                    $timeout = (int) $val;
                    break;
            }
            // switch
        }
    }
    // build call for remote server
    /// @todo find a weay to forward client info (such as IP) to server, either
    /// - as xml comments in the payload, or
    /// - using std http header conventions, such as X-forwarded-for...
    $method = php_xmlrpc_decode($m->getParam(1));
    $pars = $m->getParam(2);
    $m = new xmlrpcmsg($method);
    for ($i = 0; $i < $pars->arraySize(); $i++) {
        $m->addParam($pars->arraymem($i));
    }
    // add debug info into response we give back to caller
    xmlrpc_debugmsg("Sending to server {$url} the payload: " . $m->serialize());
    return $c->send($m, $timeout);
}
コード例 #11
0
ファイル: atheme.php プロジェクト: byteturtle/atheme
function atheme($hostname, $port, $path, $sourceip, $username, $password, $service, $command, $params)
{
    $message = new xmlrpcmsg("atheme.login");
    $message->addParam(new xmlrpcval($username, "string"));
    $message->addParam(new xmlrpcval($password, "string"));
    $client = new xmlrpc_client($path, $hostname, $port);
    $response = $client->send($message);
    $session = NULL;
    if (!$response->faultCode()) {
        $session = explode("<string>", $response->serialize());
        $session = explode("</string", $session[1]);
        $session = $session[0];
    } else {
        return "Authorisation failed";
    }
    $message = new xmlrpcmsg("atheme.command");
    $message->addParam(new xmlrpcval($session, "string"));
    $message->addParam(new xmlrpcval($username, "string"));
    $message->addParam(new xmlrpcval($sourceip, "string"));
    $message->addParam(new xmlrpcval($service, "string"));
    $message->addParam(new xmlrpcval($command, "string"));
    if ($params != NULL) {
        if (sizeof($params) < 2) {
            foreach ($params as $param) {
                $message->addParam(new xmlrpcval($param, "string"));
            }
        } else {
            $firstparam = $params[0];
            $secondparam = "";
            for ($i = 1; $i < sizeof($params); $i++) {
                $secondparam .= $params[$i] . " ";
            }
            $message->addParam(new xmlrpcval($firstparam, "string"));
            $message->addParam(new xmlrpcval($secondparam, "string"));
        }
        $response = $client->send($message);
    }
    if (!$response->faultCode()) {
        return $response->serialize();
    } else {
        return "Command failed: " . $response->faultString();
    }
}
コード例 #12
0
ファイル: Order.php プロジェクト: babycarenl/360
 public function createOdooOrder($This_order, $pricelist_id, $erpAddressArray)
 {
     $odoo_order_id = 0;
     $partner_id = $erpAddressArray[0];
     $partner_invoice_id = $erpAddressArray[1];
     $partner_shipping_id = $erpAddressArray[2];
     $increment_id = $This_order->getIncrementId();
     $helper = Mage::helper('magerpsync/connection');
     $client = $helper->getClientConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     $warehouse_id = Mage::getSingleton('adminhtml/session')->getErpWarehouse();
     $order_array = array('partner_id' => new xmlrpcval($partner_id, "int"), 'partner_invoice_id' => new xmlrpcval($partner_invoice_id, "int"), 'partner_shipping_id' => new xmlrpcval($partner_shipping_id, "int"), 'pricelist_id' => new xmlrpcval($pricelist_id, "int"), 'date_order' => new xmlrpcval($This_order->getCreatedAt(), "string"), 'client_order_ref' => new xmlrpcval($increment_id, "string"), 'warehouse_id' => new xmlrpcval($warehouse_id, "int"), 'channel' => new xmlrpcval('magento', "string"));
     /* Adding Shipping Information*/
     if ($This_order->getShippingMethod()) {
         $shipping_method = $This_order->getShippingMethod();
         $shipping_code = explode('_', $shipping_method);
         if ($shipping_code) {
             $shipping_code = $shipping_code[0];
             $erp_carrier_id = Mage::getModel('magerpsync/carrier')->checkSpecificCarrier($shipping_code);
             if ($erp_carrier_id > 0) {
                 $order_array['carrier_id'] = new xmlrpcval($erp_carrier_id, "int");
             }
         }
     }
     /* Adding Payment Information*/
     $payment_method = $This_order->getPayment()->getMethodInstance()->getTitle();
     if ($payment_method) {
         $payment_info = 'Payment Information:- ' . $payment_method;
         $order_array['note'] = new xmlrpcval($payment_info, "string");
     }
     /* Adding Store Information */
     $store_id = $This_order->getStoreId();
     $collection = Mage::getModel('mobmultishop/mobmultishop')->getCollection()->addFieldToFilter('mage_store_id', array('eq' => $store_id));
     foreach ($collection as $col) {
         $erp_store_id = $col->getOdooStoreId();
         $order_array['wk_shop'] = new xmlrpcval($erp_store_id, "int");
     }
     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($helper::$odoo_db, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
     $msg->addParam(new xmlrpcval("sale.order", "string"));
     $msg->addParam(new xmlrpcval("create", "string"));
     $msg->addParam(new xmlrpcval($order_array, "struct"));
     $resp = $client->send($msg);
     if ($resp->faultcode()) {
         $error = "Export Error, Order " . $increment_id . " >>" . $resp->faultString();
         Mage::log($error, null, 'odoo_connector.log');
     } else {
         $odoo_order_id = $resp->value()->me["int"];
     }
     return $odoo_order_id;
 }
コード例 #13
0
ファイル: Commonsocket.php プロジェクト: babycarenl/360
 public function Erp_customer_create($customer_array, $mage_customer_id, $mage_address_id)
 {
     $odoo_id = 0;
     $helper = Mage::helper('magerpsync/connection');
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     $client = $helper->getClientConnect();
     $context = $helper->getOdooContext();
     $customer = Mage::getModel('customer/customer')->load($mage_customer_id);
     $mage_id = $customer->getStoreId();
     $language_mapping = Mage::getModel('mobmultilang/mobmultilang')->getCollection()->addFieldToFilter('mage_store_id', array('eq' => $mage_id));
     $erp_lang = '';
     foreach ($language_mapping as $mapping) {
         $erp_lang = $mapping->getOdooLang();
     }
     $customer_array['lang'] = new xmlrpcval($erp_lang, "string");
     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($helper::$odoo_db, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
     $msg->addParam(new xmlrpcval("res.partner", "string"));
     $msg->addParam(new xmlrpcval("create", "string"));
     $msg->addParam(new xmlrpcval($customer_array, "struct"));
     $msg->addParam(new xmlrpcval($context, "struct"));
     $resp = $client->send($msg);
     if ($resp->faultCode()) {
         $error = "Export Error, Customer Id " . $mage_customer_id . "(" . $mage_address_id . ") >>" . $resp->faultString();
         $response['odoo_id'] = 0;
         $response['error'] = $error;
         Mage::log($error, null, 'odoo_connector.log');
     } else {
         $odoo_id = $resp->value()->me["int"];
         /* entry inside Mapping table*/
         if ($odoo_id && $mage_customer_id && $mage_address_id) {
             $mapping_data = array('erp_customer_id' => $odoo_id, 'mage_customer_id' => $mage_customer_id, 'mage_address_id' => $mage_address_id, 'created_by' => $helper::$mage_user);
             Mage::getModel("magerpsync/magerpsync")->mappingerp($mapping_data);
             if ($odoo_id > 0 && $mage_address_id) {
                 $map_array = array('cus_name' => new xmlrpcval($odoo_id, "int"), 'oe_customer_id' => new xmlrpcval($odoo_id, "int"), 'mag_customer_id' => new xmlrpcval($mage_customer_id, "string"), 'mag_address_id' => new xmlrpcval($mage_address_id, "string"), 'created_by' => new xmlrpcval($helper::$mage_user, "string"), 'instance_id' => $context['instance_id']);
                 $map = new xmlrpcmsg('execute');
                 $map->addParam(new xmlrpcval($helper::$odoo_db, "string"));
                 $map->addParam(new xmlrpcval($userId, "int"));
                 $map->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
                 $map->addParam(new xmlrpcval("magento.customers", "string"));
                 $map->addParam(new xmlrpcval("create", "string"));
                 $map->addParam(new xmlrpcval($map_array, "struct"));
                 $msg->addParam(new xmlrpcval($context, "struct"));
                 $resp = $client->send($map);
             }
         }
     }
     return $odoo_id;
 }
コード例 #14
0
ファイル: atheme.php プロジェクト: nodecast/projectNarwhal
 private function run($service, $command, $params)
 {
     if (!$this->ci->config->item('atheme_enabled')) {
         return;
     }
     $hostname = $this->ci->config->item('atheme_server');
     $port = $this->ci->config->item('atheme_port');
     $path = $this->ci->config->item('atheme_path');
     $username = $this->ci->config->item('atheme_username');
     $password = $this->ci->config->item('atheme_password');
     $sourceip = '127.0.0.1';
     $message = new xmlrpcmsg("atheme.login");
     $message->addParam(new xmlrpcval($username, "string"));
     $message->addParam(new xmlrpcval($password, "string"));
     $client = new xmlrpc_client($path, $hostname, $port);
     $response = $client->send($message);
     $session = NULL;
     if (!$response->faultCode()) {
         $session = explode("<string>", $response->serialize());
         $session = explode("</string", $session[1]);
         $session = $session[0];
     } else {
         return "Authorization failed";
     }
     $message = new xmlrpcmsg("atheme.command");
     $message->addParam(new xmlrpcval($session, "string"));
     $message->addParam(new xmlrpcval($username, "string"));
     $message->addParam(new xmlrpcval($sourceip, "string"));
     $message->addParam(new xmlrpcval($service, "string"));
     $message->addParam(new xmlrpcval($command, "string"));
     if ($params != NULL) {
         foreach ($params as $param) {
             $message->addParam(new xmlrpcval($param, "string"));
         }
         $response = $client->send($message);
     }
     if (!$response->faultCode()) {
         return $response->serialize();
     } else {
         return "Command failed: " . $response->faultString();
     }
 }
コード例 #15
0
ファイル: mail.php プロジェクト: BackupTheBerlios/sotf-svn
<html>
<head><title>xmlrpc</title></head>
<body>
<?php 
include "xmlrpc.inc";
if ($HTTP_POST_VARS["server"]) {
    if ($server == "Userland") {
        $XP = "/RPC2";
        $XS = "206.204.24.2";
    } else {
        $XP = "/xmlrpc/server.php";
        $XS = "pingu.heddley.com";
    }
    $f = new xmlrpcmsg('mail.send');
    $f->addParam(new xmlrpcval($mailto));
    $f->addParam(new xmlrpcval($mailsub));
    $f->addParam(new xmlrpcval($mailmsg));
    $f->addParam(new xmlrpcval($mailfrom));
    $f->addParam(new xmlrpcval($mailcc));
    $f->addParam(new xmlrpcval($mailbcc));
    $f->addParam(new xmlrpcval("text/plain"));
    $c = new xmlrpc_client($XP, $XS, 80);
    $c->setDebug(1);
    $r = $c->send($f);
    if (!$r) {
        die("send to  {$XS}{$XP} port 80 failed: network OK?");
    }
    $v = $r->value();
    if (!$r->faultCode()) {
        print "Mail sent OK<BR>\n";
    } else {
コード例 #16
0
ファイル: secpay.php プロジェクト: billyprice1/whmcs
 $whmcs->load_function("gateway");
 $GATEWAY = getGatewayVariables("secpay");
 if (!$GATEWAY['type']) {
     exit("Module Not Activated");
 }
 require "../../includes/xmlrpc.php";
 $testmode = $_REQUEST['testmode'];
 if (!$testmode) {
     $testmode = "live";
 }
 $repeattrans = "";
 if (!$_REQUEST['cardcvv']) {
     $repeattrans = "usage_type=R,repeat=true,";
 }
 $f = new xmlrpcmsg("SECVPN.validateCardFull");
 $f->addParam(new xmlrpcval($_REQUEST['merchantid'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['vpnpassword'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['invoiceid'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['ipaddress'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['name'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['cardnum'], "string"));
 $f->addParam(new xmlrpcval($_REQUEST['amount'], "string"));
 $f->addParam(new xmlrpcval("/" . substr($_REQUEST['cardexp'], 2, 2), "string"));
 $f->addParam(new xmlrpcval($_REQUEST['issuenum'], "string"));
 $f->addParam(new xmlrpcval("/" . substr($_REQUEST['startdate'], 2, 2), "string"));
 $f->addParam(new xmlrpcval("", "string"));
 $f->addParam(new xmlrpcval("", "string"));
 $f->addParam(new xmlrpcval("name=" . $_REQUEST['clientdetailsfirstname'] . " " . $_REQUEST['clientdetailslastname'] . ",company=" . $_REQUEST['clientdetailscompanyname'] . ",addr_1=" . $_REQUEST['clientdetailsaddress1'] . ",addr_2=" . $_REQUEST['clientdetailsaddress2'] . ",city=" . $_REQUEST['clientdetailscity'] . ",state=" . $_REQUEST['clientdetailstate'] . ",post_code=" . $_REQUEST['clientdetailspostcode'] . ",tel=" . $_REQUEST['clientdetailsphonenumber'] . ",email=" . $_REQUEST['clientdetailsemail'] . "", "string"));
 $f->addParam(new xmlrpcval($repeattrans . ("test_status=" . $testmode . ",dups=false,currency=") . $_REQUEST['currencycode'] . ",cv2=" . $_REQUEST['cardcvv'], "string"));
 $c = new xmlrpc_client("/secxmlrpc/make_call", "www.secpay.com", 443);
 $c->setSSLVerifyHost(0);
コード例 #17
0
 function _xmlrpcs_multicall_do_call($server, $call)
 {
     if ($call->kindOf() != 'struct') {
         return _xmlrpcs_multicall_error('notstruct');
     }
     $methName = $call->structmem('methodName');
     if (!$methName) {
         return _xmlrpcs_multicall_error('nomethod');
     }
     if ($methName->kindOf() != 'scalar' || $methName->scalartyp() != 'string') {
         return _xmlrpcs_multicall_error('notstring');
     }
     if ($methName->scalarval() == 'system.multicall') {
         return _xmlrpcs_multicall_error('recursion');
     }
     $params = $call->structmem('params');
     if (!$params) {
         return _xmlrpcs_multicall_error('noparams');
     }
     if ($params->kindOf() != 'array') {
         return _xmlrpcs_multicall_error('notarray');
     }
     $numParams = $params->arraysize();
     $msg = new xmlrpcmsg($methName->scalarval());
     for ($i = 0; $i < $numParams; $i++) {
         $msg->addParam($params->arraymem($i));
     }
     $result = $server->execute($msg);
     if ($result->faultCode() != 0) {
         return _xmlrpcs_multicall_error($result);
         // Method returned fault.
     }
     return new xmlrpcval(array($result->value()), 'array');
 }
コード例 #18
0
ファイル: xmlrpcs.inc.php プロジェクト: gggeek/ggwebservices
 /**
  * Parse an xml chunk containing an xmlrpc request and execute the corresponding
  * php function registered with the server
  * @param string $data the xml request
  * @param string $req_encoding (optional) the charset encoding of the xml request
  * @return xmlrpcresp
  * @access private
  */
 function parseRequest($data, $req_encoding = '')
 {
     // 2005/05/07 commented and moved into caller function code
     //if($data=='')
     //{
     //	$data=$GLOBALS['HTTP_RAW_POST_DATA'];
     //}
     // G. Giunta 2005/02/13: we do NOT expect to receive html entities
     // so we do not try to convert them into xml character entities
     //$data = xmlrpc_html_entity_xlate($data);
     $GLOBALS['_xh'] = array();
     $GLOBALS['_xh']['ac'] = '';
     $GLOBALS['_xh']['stack'] = array();
     $GLOBALS['_xh']['valuestack'] = array();
     $GLOBALS['_xh']['params'] = array();
     $GLOBALS['_xh']['pt'] = array();
     $GLOBALS['_xh']['isf'] = 0;
     $GLOBALS['_xh']['isf_reason'] = '';
     $GLOBALS['_xh']['method'] = false;
     // so we can check later if we got a methodname or not
     $GLOBALS['_xh']['rt'] = '';
     // decompose incoming XML into request structure
     if ($req_encoding != '') {
         if (!in_array($req_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
             error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $req_encoding);
             $req_encoding = $GLOBALS['xmlrpc_defencoding'];
         }
         /// @BUG this will fail on PHP 5 if charset is not specified in the xml prologue,
         // the encoding is not UTF8 and there are non-ascii chars in the text...
         /// @todo use an empty string for php 5 ???
         $parser = xml_parser_create($req_encoding);
     } else {
         $parser = xml_parser_create();
     }
     xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
     // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
     // the xml parser to give us back data in the expected charset
     // What if internal encoding is not in one of the 3 allowed?
     // we use the broadest one, ie. utf8
     // This allows to send data which is native in various charset,
     // by extending xmlrpc_encode_entitites() and setting xmlrpc_internalencoding
     if (!in_array($GLOBALS['xmlrpc_internalencoding'], array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
         xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
     } else {
         xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $GLOBALS['xmlrpc_internalencoding']);
     }
     if ($this->functions_parameters_type != 'xmlrpcvals') {
         xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee_fast');
     } else {
         xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee');
     }
     xml_set_character_data_handler($parser, 'xmlrpc_cd');
     xml_set_default_handler($parser, 'xmlrpc_dh');
     if (!xml_parse($parser, $data, 1)) {
         // return XML error as a faultCode
         $r = new xmlrpcresp(0, $GLOBALS['xmlrpcerrxml'] + xml_get_error_code($parser), sprintf('XML error: %s at line %d, column %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser), xml_get_current_column_number($parser)));
         xml_parser_free($parser);
     } elseif ($GLOBALS['_xh']['isf']) {
         xml_parser_free($parser);
         $r = new xmlrpcresp(0, $GLOBALS['xmlrpcerr']['invalid_request'], $GLOBALS['xmlrpcstr']['invalid_request'] . ' ' . $GLOBALS['_xh']['isf_reason']);
     } else {
         xml_parser_free($parser);
         // small layering violation in favor of speed and memory usage:
         // we should allow the 'execute' method handle this, but in the
         // most common scenario (xmlrpcvals type server with some methods
         // registered as phpvals) that would mean a useless encode+decode pass
         if ($this->functions_parameters_type != 'xmlrpcvals' || isset($this->dmap[$GLOBALS['_xh']['method']]['parameters_type']) && $this->dmap[$GLOBALS['_xh']['method']]['parameters_type'] == 'phpvals') {
             if ($this->debug > 1) {
                 $this->debugmsg("\n+++PARSED+++\n" . var_export($GLOBALS['_xh']['params'], true) . "\n+++END+++");
             }
             $r = $this->execute($GLOBALS['_xh']['method'], $GLOBALS['_xh']['params'], $GLOBALS['_xh']['pt']);
         } else {
             // build an xmlrpcmsg object with data parsed from xml
             $m = new xmlrpcmsg($GLOBALS['_xh']['method']);
             // now add parameters in
             for ($i = 0; $i < count($GLOBALS['_xh']['params']); $i++) {
                 $m->addParam($GLOBALS['_xh']['params'][$i]);
             }
             if ($this->debug > 1) {
                 $this->debugmsg("\n+++PARSED+++\n" . var_export($m, true) . "\n+++END+++");
             }
             $r = $this->execute($m);
         }
     }
     return $r;
 }
コード例 #19
0
ファイル: Tax.php プロジェクト: babycarenl/360
 public static function getErpTaxArray()
 {
     $Tax = array();
     $helper = Mage::helper('magerpsync/connection');
     $helper->getSocketConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         if (!Mage::helper('magerpsync')->CheckOdooActiveConfig()) {
             array_push($Category, array('label' => Mage::helper('magerpsync')->__('Check Odoo Configuration Default Settings'), 'value' => ''));
             return $Category;
         }
         $context = $helper->getOdooContext();
         $client = $helper->getClientConnect();
         $key = array();
         $msg_ser = new xmlrpcmsg('execute');
         $msg_ser->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $msg_ser->addParam(new xmlrpcval($userId, "int"));
         $msg_ser->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $msg_ser->addParam(new xmlrpcval("account.tax", "string"));
         $msg_ser->addParam(new xmlrpcval("search", "string"));
         $msg_ser->addParam(new xmlrpcval($key, "array"));
         $resp0 = $client->send($msg_ser);
         if ($resp0->faultCode()) {
             array_push($Tax, array('label' => Mage::helper('magerpsync')->__('Not Available(Error in Fetching)'), 'value' => ''));
             return $Tax;
         } else {
             $val = $resp0->value()->me['array'];
             $key1 = array(new xmlrpcval('id', 'int'), new xmlrpcval('name', 'string'), new xmlrpcval('amount', 'string'));
             $msg_ser1 = new xmlrpcmsg('execute');
             $msg_ser1->addParam(new xmlrpcval($helper::$odoo_db, "string"));
             $msg_ser1->addParam(new xmlrpcval($userId, "int"));
             $msg_ser1->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
             $msg_ser1->addParam(new xmlrpcval("account.tax", "string"));
             $msg_ser1->addParam(new xmlrpcval("read", "string"));
             $msg_ser1->addParam(new xmlrpcval($val, "array"));
             $msg_ser1->addParam(new xmlrpcval($key1, "array"));
             $msg_ser1->addParam(new xmlrpcval($context, "struct"));
             $resp1 = $client->send($msg_ser1);
             if ($resp1->faultCode()) {
                 $msg = Mage::helper('magerpsync')->__('Not Available- Error: ') . $resp1->faultString();
                 array_push($Tax, array('label' => $msg, 'value' => ''));
                 return $Tax;
             } else {
                 $value_array = $resp1->value()->scalarval();
                 $count = count($value_array);
                 for ($x = 0; $x < $count; $x++) {
                     $id = $value_array[$x]->me['struct']['id']->me['int'];
                     $name = $value_array[$x]->me['struct']['name']->me['string'] . ' (' . $value_array[$x]->me['struct']['amount']->me['double'] * 100 . '%)';
                     array_push($Tax, array('value' => $id, 'label' => Mage::helper('adminhtml')->__($name)));
                 }
             }
         }
         array_unshift($Tax, array('label' => Mage::helper('magerpsync')->__('--Select Odoo Tax--'), 'value' => ''));
         return $Tax;
     } else {
         array_push($Tax, array('label' => Mage::helper('magerpsync')->__('Not Available(Connection Error)'), 'value' => ''));
         return $Tax;
     }
 }
コード例 #20
0
ファイル: Commonsocket.php プロジェクト: babycarenl/360
 public function deliverOdooOrder($This_order, $erp_order_id)
 {
     $shipment_no = false;
     $tracknums = false;
     $trackCarrier = false;
     $trackArray = array();
     $helper = Mage::helper('magerpsync/connection');
     $client = $helper->getClientConnect();
     $context = $helper->getOdooContext();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     $increment_id = $This_order->getIncrementId();
     $shipment = $This_order->getShipmentsCollection();
     foreach ($shipment as $ship) {
         $shipment_no = $ship->getIncrementId();
         foreach ($ship->getAllTracks() as $tracknum) {
             $tracknums = $tracknum->getNumber();
             $trackCarrier = $tracknum->getCarrierCode();
             $trackinfo = array('magento_carrier_tracking_ref' => new xmlrpcval($tracknums, "string"), 'magento_carrier_code' => new xmlrpcval($trackCarrier, "string"));
             array_push($trackArray, new xmlrpcval($trackinfo, "struct"));
         }
         break;
     }
     $shipment_array = array('order_id' => new xmlrpcval($erp_order_id, "int"), 'mage_ship_number' => new xmlrpcval($shipment_no, "string"), 'carrier_tracking_ref' => new xmlrpcval($tracknums, "string"), 'carrier_code' => new xmlrpcval($trackCarrier, "string"), 'track_array' => new xmlrpcval($trackArray, "array"));
     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($helper::$odoo_db, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
     $msg->addParam(new xmlrpcval("bridge.backbone", "string"));
     $msg->addParam(new xmlrpcval("order_shipped", "string"));
     $msg->addParam(new xmlrpcval($shipment_array, "struct"));
     $msg->addParam(new xmlrpcval($context, "struct"));
     $resp = $client->send($msg);
     if ($resp->faultcode()) {
         $error = "Sync Error, Order " . $increment_id . " During Shipment >>" . $resp->faultString();
         Mage::log($error, null, 'odoo_connector.log');
         return false;
     }
     return true;
 }
コード例 #21
0
ファイル: Payment.php プロジェクト: kozinthetdbp/shopmyar
 public static function getErpPaymentArray()
 {
     $Payment = array();
     $helper = Mage::helper('magerpsync/connection');
     $helper->getSocketConnect();
     $context = $helper->getOdooContext();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         if (!Mage::helper('magerpsync')->CheckOdooActiveConfig()) {
             array_push($Payment, array('label' => 'At Odoo Magento Connection Not Found', 'value' => ''));
             return $Payment;
         }
         $client = $helper->getClientConnect();
         $key1 = array(new xmlrpcval('bank', 'string'), new xmlrpcval('cash', 'string'));
         $key = array(new xmlrpcval(array(new xmlrpcval('type', "string"), new xmlrpcval('in', "string"), new xmlrpcval($key1, "array")), "array"));
         $msg_ser = new xmlrpcmsg('execute');
         $msg_ser->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $msg_ser->addParam(new xmlrpcval($userId, "int"));
         $msg_ser->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $msg_ser->addParam(new xmlrpcval("account.journal", "string"));
         $msg_ser->addParam(new xmlrpcval("search", "string"));
         $msg_ser->addParam(new xmlrpcval($key, "array"));
         $resp0 = $client->send($msg_ser);
         if ($resp0->faultCode()) {
             array_push($Payment, array('label' => 'Not Available(Error in Fetching)', 'value' => ''));
             return $Payment;
         } else {
             $val = $resp0->value()->me['array'];
             $key1 = array(new xmlrpcval('id', 'int'), new xmlrpcval('name', 'string'));
             $msg_ser1 = new xmlrpcmsg('execute');
             $msg_ser1->addParam(new xmlrpcval($helper::$odoo_db, "string"));
             $msg_ser1->addParam(new xmlrpcval($userId, "int"));
             $msg_ser1->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
             $msg_ser1->addParam(new xmlrpcval("account.journal", "string"));
             $msg_ser1->addParam(new xmlrpcval("read", "string"));
             $msg_ser1->addParam(new xmlrpcval($val, "array"));
             $msg_ser1->addParam(new xmlrpcval($key1, "array"));
             $msg_ser1->addParam(new xmlrpcval($context, "struct"));
             $resp1 = $client->send($msg_ser1);
             if ($resp1->faultCode()) {
                 $msg = 'Not Available- Error: ' . $resp1->faultString();
                 array_push($Payment, array('label' => $msg, 'value' => ''));
                 return $Payment;
             } else {
                 $value_array = $resp1->value()->scalarval();
                 $count = count($value_array);
                 for ($x = 0; $x < $count; $x++) {
                     $id = $value_array[$x]->me['struct']['id']->me['int'];
                     $name = $value_array[$x]->me['struct']['name']->me['string'];
                     array_push($Payment, array('value' => $id, 'label' => Mage::helper('adminhtml')->__($name)));
                 }
             }
         }
         array_unshift($Payment, array('label' => '--Select Odoo Payment Method--', 'value' => ''));
         return $Payment;
     } else {
         array_push($Payment, array('label' => 'Not Available(Connection Error)', 'value' => ''));
         return $Payment;
     }
 }
コード例 #22
0
ファイル: vardemo.php プロジェクト: 5haman/knowledgetree
print "<h3>Testing value serialization</h3>\n";
$v = new xmlrpcval(23, "int");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$v = new xmlrpcval("What are you saying? >> << &&");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$v = new xmlrpcval(array(new xmlrpcval("ABCDEFHIJ"), new xmlrpcval(1234, 'int'), new xmlrpcval(1, 'boolean')), "array");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$v = new xmlrpcval(array("thearray" => new xmlrpcval(array(new xmlrpcval("ABCDEFHIJ"), new xmlrpcval(1234, 'int'), new xmlrpcval(1, 'boolean'), new xmlrpcval(0, 'boolean'), new xmlrpcval(true, 'boolean'), new xmlrpcval(false, 'boolean')), "array"), "theint" => new xmlrpcval(23, 'int'), "thestring" => new xmlrpcval("foobarwhizz"), "thestruct" => new xmlrpcval(array("one" => new xmlrpcval(1, 'int'), "two" => new xmlrpcval(2, 'int')), "struct")), "struct");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
$w = new xmlrpcval(array($v, new xmlrpcval("That was the struct!")), "array");
print "<PRE>" . htmlentities($w->serialize()) . "</PRE>";
$w = new xmlrpcval("Mary had a little lamb,\nWhose fleece was white as snow,\nAnd everywhere that Mary went\nthe lamb was sure to go.\n\nMary had a little lamb\nShe tied it to a pylon\nTen thousand volts went down its back\nAnd turned it into nylon", "base64");
print "<PRE>" . htmlentities($w->serialize()) . "</PRE>";
print "<PRE>Value of base64 string is: '" . $w->scalarval() . "'</PRE>";
$f->method('');
$f->addParam(new xmlrpcval("41", "int"));
print "<h3>Testing request serialization</h3>\n";
$op = $f->serialize();
print "<PRE>" . htmlentities($op) . "</PRE>";
print "<h3>Testing ISO date format</h3><pre>\n";
$t = time();
$date = iso8601_encode($t);
print "Now is {$t} --> {$date}\n";
print "Or in UTC, that is " . iso8601_encode($t, 1) . "\n";
$tb = iso8601_decode($date);
print "That is to say {$date} --> {$tb}\n";
print "Which comes out at " . iso8601_encode($tb) . "\n";
print "Which was the time in UTC at " . iso8601_decode($date, 1) . "\n";
print "</pre>\n";
?>
<hr/>
コード例 #23
0
ファイル: xmlrpc.inc.php プロジェクト: gggeek/ggwebservices
 /**
  * Attempt to boxcar $msgs via system.multicall.
  * Returns either an array of xmlrpcreponses, an xmlrpc error response
  * or false (when received response does not respect valid multicall syntax)
  * @access private
  */
 function _try_multicall($msgs, $timeout, $method)
 {
     // Construct multicall message
     $calls = array();
     foreach ($msgs as $msg) {
         $call['methodName'] = new xmlrpcval($msg->method(), 'string');
         $numParams = $msg->getNumParams();
         $params = array();
         for ($i = 0; $i < $numParams; $i++) {
             $params[$i] = $msg->getParam($i);
         }
         $call['params'] = new xmlrpcval($params, 'array');
         $calls[] = new xmlrpcval($call, 'struct');
     }
     $multicall = new xmlrpcmsg('system.multicall');
     $multicall->addParam(new xmlrpcval($calls, 'array'));
     // Attempt RPC call
     $result =& $this->send($multicall, $timeout, $method);
     if ($result->faultCode() != 0) {
         // call to system.multicall failed
         return $result;
     }
     // Unpack responses.
     $rets = $result->value();
     if ($this->return_type == 'xml') {
         return $rets;
     } else {
         if ($this->return_type == 'phpvals') {
             ///@todo test this code branch...
             $rets = $result->value();
             if (!is_array($rets)) {
                 return false;
                 // bad return type from system.multicall
             }
             $numRets = count($rets);
             if ($numRets != count($msgs)) {
                 return false;
                 // wrong number of return values.
             }
             $response = array();
             for ($i = 0; $i < $numRets; $i++) {
                 $val = $rets[$i];
                 if (!is_array($val)) {
                     return false;
                 }
                 switch (count($val)) {
                     case 1:
                         if (!isset($val[0])) {
                             return false;
                             // Bad value
                         }
                         // Normal return value
                         $response[$i] = new xmlrpcresp($val[0], 0, '', 'phpvals');
                         break;
                     case 2:
                         ///	@todo remove usage of @: it is apparently quite slow
                         $code = @$val['faultCode'];
                         if (!is_int($code)) {
                             return false;
                         }
                         $str = @$val['faultString'];
                         if (!is_string($str)) {
                             return false;
                         }
                         $response[$i] = new xmlrpcresp(0, $code, $str);
                         break;
                     default:
                         return false;
                 }
             }
             return $response;
         } else {
             $rets = $result->value();
             if ($rets->kindOf() != 'array') {
                 return false;
                 // bad return type from system.multicall
             }
             $numRets = $rets->arraysize();
             if ($numRets != count($msgs)) {
                 return false;
                 // wrong number of return values.
             }
             $response = array();
             for ($i = 0; $i < $numRets; $i++) {
                 $val = $rets->arraymem($i);
                 switch ($val->kindOf()) {
                     case 'array':
                         if ($val->arraysize() != 1) {
                             return false;
                             // Bad value
                         }
                         // Normal return value
                         $response[$i] = new xmlrpcresp($val->arraymem(0));
                         break;
                     case 'struct':
                         $code = $val->structmem('faultCode');
                         if ($code->kindOf() != 'scalar' || $code->scalartyp() != 'int') {
                             return false;
                         }
                         $str = $val->structmem('faultString');
                         if ($str->kindOf() != 'scalar' || $str->scalartyp() != 'string') {
                             return false;
                         }
                         $response[$i] = new xmlrpcresp(0, $code->scalarval(), $str->scalarval());
                         break;
                     default:
                         return false;
                 }
             }
             return $response;
         }
     }
 }
コード例 #24
0
 for ($i = 0; $i < $v->arraysize(); $i++) {
     $mname = $v->arraymem($i);
     print "<H3>" . $mname->scalarval() . "</H3>\n";
     $f = new xmlrpcmsg('system.methodHelp');
     $f->addParam(new xmlrpcval($mname->scalarval(), "string"));
     $w = rpc_call($c, $f);
     if ($w) {
         $txt = $w->scalarval();
         if ($txt != "") {
             print "<H4>Documentation</H4><P>{$txt}</P>\n";
         } else {
             print "<P>No documentation available.</P>\n";
         }
     }
     $f = new xmlrpcmsg('system.methodSignature');
     $f->addParam(new xmlrpcval($mname->scalarval(), "string"));
     $w = rpc_call($c, $f);
     if ($w) {
         print "<H4>Signature</H4><P>\n";
         if ($w->kindOf() == "array") {
             for ($j = 0; $j < $w->arraysize(); $j++) {
                 $x = $w->arraymem($j);
                 $ret = $x->arraymem(0);
                 print "<CODE>" . $ret->scalarval() . " " . $mname->scalarval() . "(";
                 if ($x->arraysize() > 1) {
                     for ($k = 1; $k < $x->arraysize(); $k++) {
                         $y = $x->arraymem($k);
                         print $y->scalarval();
                         if ($k < $x->arraysize() - 1) {
                             print ", ";
                         }
コード例 #25
0
 protected function _mapOnErp($mage_id, $erp_id)
 {
     $helper = Mage::helper('magerpsync/connection');
     $helper->getSocketConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         $client = $helper->getClientConnect();
         $map_array = array('cat_name' => new xmlrpcval($erp_id, "int"), 'oe_category_id' => new xmlrpcval($erp_id, "int"), 'mag_category_id' => new xmlrpcval($mage_id, "int"), 'created_by' => new xmlrpcval('Manual Mapping', "string"));
         $catg_map = new xmlrpcmsg('execute');
         $catg_map->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $catg_map->addParam(new xmlrpcval($userId, "int"));
         $catg_map->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $catg_map->addParam(new xmlrpcval("magento.category", "string"));
         $catg_map->addParam(new xmlrpcval("create", "string"));
         $catg_map->addParam(new xmlrpcval($map_array, "struct"));
         $catg_map_resp = $client->send($catg_map);
     }
 }
コード例 #26
0
ファイル: snoop.php プロジェクト: joshuawdavidson/planwatch
function snoop_remove_xmlrpc($rpcuser, $host, $remote = 0)
{
    if ($remote == FALSE) {
        $snoop_setter = $_SERVER['USER'];
    } else {
        $snoop_setter = $remote;
    }
    $hostinfo = planworld_node_getinfo($host);
    $f = new xmlrpcmsg('planworld.snoop.remove');
    $f->addParam(new xmlrpcval($rpcuser, "string"));
    $f->addParam(new xmlrpcval($snoop_setter . "@planwatch.org", "string"));
    $c = new xmlrpc_client($hostinfo["directory"], $hostinfo["server"], $hostinfo["port"]);
    $c->setDebug(0);
    $r = $c->send($f);
    if (!$r) {
        $success = FALSE;
    } else {
        $v = $r->value();
        if (!$r->faultCode()) {
            if ($v->kindOf() == 'array') {
                $success = TRUE;
            }
        } else {
            $success = FALSE;
        }
    }
    // If the snoop remove failed for any reason, add it to the queue
    // for later sending. This is done by creating a TIMECODE.remsnoop file in
    // FILE_ROOT/stats which gets picked up by the queue processor in pt.php
    if ($success == FALSE) {
        $queue_array = array("snoop_setter" => $snoop_setter, "snoop_target" => $rpcuser, "snoop_host" => $host);
        file_put_contents("{$_SERVER['FILE_ROOT']}/stats/" . array_sum(explode(" ", microtime())) . ".remsnoop", serialize($queue_array));
    }
    return $success;
}
コード例 #27
0
ファイル: xmlrpcs.php プロジェクト: Tommar/vino2
 /**
  * Parse an xml chunk containing an xmlrpc request and execute the corresponding
  * php function registered with the server
  * @param string $data the xml request
  * @param string $req_encoding (optional) the charset encoding of the xml request
  * @return xmlrpcresp
  * @access private
  */
 function parseRequest($data, $req_encoding = '')
 {
     // 2005/05/07 commented and moved into caller function code
     //if($data=='')
     //{
     //	$data=$GLOBALS['HTTP_RAW_POST_DATA'];
     //}
     // G. Giunta 2005/02/13: we do NOT expect to receive html entities
     // so we do not try to convert them into xml character entities
     //$data = xmlrpc_html_entity_xlate($data);
     $GLOBALS['_xh'] = array();
     $GLOBALS['_xh']['ac'] = '';
     $GLOBALS['_xh']['stack'] = array();
     $GLOBALS['_xh']['valuestack'] = array();
     $GLOBALS['_xh']['params'] = array();
     $GLOBALS['_xh']['pt'] = array();
     $GLOBALS['_xh']['isf'] = 0;
     $GLOBALS['_xh']['isf_reason'] = '';
     $GLOBALS['_xh']['method'] = false;
     // so we can check later if we got a methodname or not
     $GLOBALS['_xh']['rt'] = '';
     // decompose incoming XML into request structure
     if ($req_encoding != '') {
         if (!in_array($req_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
             error_log('XML-RPC: xmlrpc_server::parseRequest: invalid charset encoding of received request: ' . $req_encoding);
             $req_encoding = $GLOBALS['xmlrpc_defencoding'];
         }
         /// @BUG this will fail on PHP 5 if charset is not specified in the xml prologue,
         // the encoding is not UTF8 and there are non-ascii chars in the text...
         $parser = xml_parser_create($req_encoding);
     } else {
         $parser = xml_parser_create();
     }
     xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
     // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
     // the xml parser to give us back data in the expected charset
     xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $GLOBALS['xmlrpc_internalencoding']);
     if ($this->functions_parameters_type != 'xmlrpcvals') {
         xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee_fast');
     } else {
         xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee');
     }
     xml_set_character_data_handler($parser, 'xmlrpc_cd');
     xml_set_default_handler($parser, 'xmlrpc_dh');
     if (!xml_parse($parser, $data, 1)) {
         // return XML error as a faultCode
         $r = new xmlrpcresp(0, $GLOBALS['xmlrpcerrxml'] + xml_get_error_code($parser), sprintf('XML error: %s at line %d, column %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser), xml_get_current_column_number($parser)));
         xml_parser_free($parser);
     } elseif ($GLOBALS['_xh']['isf']) {
         xml_parser_free($parser);
         $r = new xmlrpcresp(0, $GLOBALS['xmlrpcerr']['invalid_request'], $GLOBALS['xmlrpcstr']['invalid_request'] . ' ' . $GLOBALS['_xh']['isf_reason']);
     } else {
         xml_parser_free($parser);
         if ($this->functions_parameters_type != 'xmlrpcvals') {
             if ($this->debug > 1) {
                 $this->debugmsg("\n+++PARSED+++\n" . var_export($GLOBALS['_xh']['params'], true) . "\n+++END+++");
             }
             $r = $this->execute($GLOBALS['_xh']['method'], $GLOBALS['_xh']['params'], $GLOBALS['_xh']['pt']);
         } else {
             // build an xmlrpcmsg object with data parsed from xml
             $m = new xmlrpcmsg($GLOBALS['_xh']['method']);
             // now add parameters in
             for ($i = 0; $i < count($GLOBALS['_xh']['params']); $i++) {
                 $m->addParam($GLOBALS['_xh']['params'][$i]);
             }
             if ($this->debug > 1) {
                 $this->debugmsg("\n+++PARSED+++\n" . var_export($m, true) . "\n+++END+++");
             }
             $r = $this->execute($m);
         }
     }
     return $r;
 }
コード例 #28
0
ファイル: mail.php プロジェクト: 5haman/knowledgetree
<?php 
include "xmlrpc.inc";
// Play nice to PHP 5 installations with REGISTER_LONG_ARRAYS off
if (!isset($HTTP_POST_VARS) && isset($_POST)) {
    $HTTP_POST_VARS = $_POST;
}
if (isset($HTTP_POST_VARS["server"]) && $HTTP_POST_VARS["server"]) {
    if ($HTTP_POST_VARS["server"] == "Userland") {
        $XP = "/RPC2";
        $XS = "206.204.24.2";
    } else {
        $XP = "/xmlrpc/server.php";
        $XS = "pingu.heddley.com";
    }
    $f = new xmlrpcmsg('mail.send');
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailto"]));
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailsub"]));
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailmsg"]));
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailfrom"]));
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailcc"]));
    $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailbcc"]));
    $f->addParam(new xmlrpcval("text/plain"));
    $c = new xmlrpc_client($XP, $XS, 80);
    $c->setDebug(2);
    $r =& $c->send($f);
    if (!$r->faultCode()) {
        print "Mail sent OK<br/>\n";
    } else {
        print "<fonr color=\"red\">";
        print "Mail send failed<br/>\n";
        print "Fault: ";
コード例 #29
0
ファイル: TemplateController.php プロジェクト: babycarenl/360
 protected function _mapOnErp($mage_product_id, $erp_product_id)
 {
     $helper = Mage::helper('magerpsync/connection');
     $helper->getSocketConnect();
     $userId = Mage::getSingleton('adminhtml/session')->getUserId();
     if ($userId > 0) {
         $client = $helper->getClientConnect();
         $map_array = array('template_name' => new xmlrpcval($erp_product_id, "int"), 'erp_template_id' => new xmlrpcval($erp_product_id, "int"), 'mage_product_id' => new xmlrpcval($mage_product_id, "int"), 'created_by' => new xmlrpcval('Manual Mapping', "string"));
         $map_data = new xmlrpcmsg('execute');
         $map_data->addParam(new xmlrpcval($helper::$odoo_db, "string"));
         $map_data->addParam(new xmlrpcval($userId, "int"));
         $map_data->addParam(new xmlrpcval($helper::$odoo_pwd, "string"));
         $map_data->addParam(new xmlrpcval("magento.product.template", "string"));
         $map_data->addParam(new xmlrpcval("create", "string"));
         $map_data->addParam(new xmlrpcval($map_array, "struct"));
         $resp = $client->send($map_data);
         if ($resp->errno != 0) {
             return false;
         } else {
             return true;
         }
     }
 }
コード例 #30
0
ファイル: import.php プロジェクト: nacef/juriste
  public function send( $methodName, $functionArgs = array() )
  {
    $message = new xmlrpcmsg($methodName);

    if ($methodName != 'system.connect') {
      $timestamp = (string)time();
      $nonce = $this->getUniqueCode("10");

      // prepare a hash
      $hash_parameters = array( $timestamp, $this->domain, $nonce, $methodName );
      $hash = hash_hmac("sha256", implode(';', $hash_parameters), $this->kid);
      
      $message->addParam(new xmlrpcval($hash, "string"));
      $message->addParam(new xmlrpcval($this->domain, "string"));
      $message->addParam(new xmlrpcval($timestamp, "string"));
      $message->addParam(new xmlrpcval($nonce, "string"));
      $message->addParam(new xmlrpcval($this->session_id, "string"));
      
      foreach($functionArgs as $arg) {
        $message->addParam(new xmlrpcval($arg['value'], $arg['type']));
      }
    }
    $result = $this->client->send($message);
    
    return rpcexample_rpc_convert($result->value());
  }