Пример #1
0
 public function getClientConnect()
 {
     $client = new xmlrpc_client(self::$odoo_url . ":" . self::$odoo_port . "/xmlrpc/object");
     $client->setSSLVerifyPeer(0);
     $client->setSSLVerifyHost(0);
     return $client;
 }
Пример #2
0
function _serv()
{
    global $wbhost;
    $server = new xmlrpc_client($wbhost);
    $server->setSSLVerifyPeer(0);
    return $server;
}
Пример #3
0
/**
 * 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);
}
Пример #4
0
function wordpress_get_options($xmlrpcurl, $username, $password, $blogid = 0, $proxyipports = "")
{
    global $globalerr;
    $client = new xmlrpc_client($xmlrpcurl);
    $client->setSSLVerifyPeer(false);
    $params[] = new xmlrpcval($blogid);
    $params[] = new xmlrpcval($username);
    $params[] = new xmlrpcval($password);
    $msg = new xmlrpcmsg("wp.getOptions", $params);
    if (is_array($proxyipports)) {
        $proxyipport = $proxyipports[array_rand($proxyipports)];
    } elseif ($proxyipports != "") {
        $proxyipport = $proxyipports;
    } else {
        $proxyipport = "";
    }
    if ($proxyipport != "") {
        if (preg_match("/@/", $proxyipport)) {
            $proxyparts = explode("@", $proxyipport);
            $proxyauth = explode(":", $proxyparts[0]);
            $proxyuser = $proxyauth[0];
            $proxypass = $proxyauth[1];
            $proxy = explode(":", $proxyparts[1]);
            $proxyip = $proxy[0];
            $proxyport = $proxy[1];
            $client->setProxy($proxyip, $proxyport, $proxyuser, $proxypass);
        } else {
            $proxy = explode(":", $proxyipport);
            $proxyip = $proxy[0];
            $proxyport = $proxy[1];
            $client->setProxy($proxyip, $proxyport);
        }
    }
    $r = $client->send($msg);
    if ($r === false) {
        $globalerr = "XMLRPC ERROR - Could not send xmlrpc message";
        return false;
    }
    if (!$r->faultCode()) {
        return php_xmlrpc_decode($r->value());
    } else {
        $globalerr = "XMLRPC ERROR - Code: " . htmlspecialchars($r->faultCode()) . " Reason: '" . htmlspecialchars($r->faultString()) . "'";
    }
    return false;
}
Пример #5
0
 /**
  * @method getTemporaryKey
  * @description Connect and Obtain an API key from a vendor key
  * @param string $name - Application Name
  * @param string $user - Username
  * @param string $pass - Password
  * @param string $key - Vendor Key
  * @param string $dbOn - Error Handling On
  * @return bool
  * @throws iSDKException
  */
 public function vendorCon($name, $user, $pass, $key = "", $dbOn = "on")
 {
     $this->debug = $key == 'on' || $key == 'off' || $key == 'kill' || $key == 'throw' ? $key : $dbOn;
     if ($key != "" && $key != "on" && $key != "off" && $key != 'kill' && $key != 'throw') {
         $this->client = new xmlrpc_client("https://{$name}.infusionsoft.com/api/xmlrpc");
         $this->key = $key;
     } else {
         /** @var array $connInfo */
         include 'conn.cfg.php';
         $appLines = $connInfo;
         foreach ($appLines as $appLine) {
             $details[substr($appLine, 0, strpos($appLine, ":"))] = explode(":", $appLine);
         }
         if (!empty($details[$name])) {
             if ($details[$name][2] == "i") {
                 $this->client = new xmlrpc_client("https://" . $details[$name][1] . ".infusionsoft.com/api/xmlrpc");
             } elseif ($details[$name][2] == "m") {
                 $this->client = new xmlrpc_client("https://" . $details[$name][1] . ".mortgageprocrm.com/api/xmlrpc");
             } else {
                 throw new iSDKException("Invalid application name: \"" . $name . "\"");
             }
         } else {
             throw new iSDKException("Application Does Not Exist: \"" . $name . "\"");
         }
         $this->key = $details[$name][3];
     }
     /* Return Raw PHP Types */
     $this->client->return_type = "phpvals";
     /* SSL Certificate Verification */
     $this->client->setSSLVerifyPeer(true);
     $this->client->setCaCertificate((__DIR__ != '__DIR__' ? __DIR__ : dirname(__FILE__)) . '/infusionsoft.pem');
     $encoded_parameters = array(php_xmlrpc_encode($this->key), php_xmlrpc_encode($user), php_xmlrpc_encode(md5($pass)));
     $this->key = $this->methodCaller("DataService.getTemporaryKey", $encoded_parameters);
     $this->encKey = php_xmlrpc_encode($this->key);
     try {
         $connected = $this->dsGetSetting("Application", "enabled");
     } catch (iSDKException $e) {
         throw new iSDKException("Connection Failed");
     }
     return true;
 }
Пример #6
0
//
// Include XML-RPC Library
include_once ".xmlrpc.inc.php";
// Define Server environment
// Server
// Production Server
// $client = new xmlrpc_client("/tr_xmlrpc.cgi", "apibugzilla.novell.com", 443, "https");
// Testserver
$client = new xmlrpc_client("/tr_xmlrpc.cgi", "apibugzillastage.provo.novell.com", 443, "https");
// Username and Password (Must be defined in calling script)
// $username = "";
// $password = "";
$client->setCredentials($username, $password);
// SSL Verify Peer
// $client->setSSLVerifyPeer(FALSE);
$client->setSSLVerifyPeer(TRUE);
// Debug on/off
$client->setDebug(0);
// Functions
function do_call($call)
{
    global $client;
    // Do call and handle feedback
    if (!($res = $client->send($call))) {
        print "Could not connect to HTTPS server.";
        return FALSE;
    }
    if ($res->faultCode() == 0) {
        $value = $res->value();
        return php_xmlrpc_decode($value);
    } else {
function seed_cspv4_emaillist_infusionsoft_add_subscriber($args)
{
    global $seed_cspv4, $seed_cspv4_post_result;
    extract($seed_cspv4);
    require_once SEED_CSPV4_PLUGIN_PATH . 'lib/nameparse.php';
    if (!class_exists('xmlrpc_client')) {
        require_once SEED_CSPV4_PLUGIN_PATH . 'extentions/infusionsoft/xmlrpc-2.0/lib/xmlrpc.inc';
    }
    // If tracking enabled
    if (!empty($enable_reflink)) {
        seed_cspv4_emaillist_database_add_subscriber();
    }
    $app = $infusionsoft_app;
    $api_key = $infusionsoft_api_key;
    $tag_id = $infusionsoft_tag_id;
    $name = '';
    if (!empty($_REQUEST['name'])) {
        $name = $_REQUEST['name'];
    }
    $email = $_REQUEST['email'];
    $fname = '';
    $lname = '';
    if (!empty($name)) {
        $name = seed_cspv4_parse_name($name);
        $fname = $name['first'];
        $lname = $name['last'];
    }
    ###Set our Infusionsoft application as the client###
    $client = new xmlrpc_client("https://" . $app . ".infusionsoft.com/api/xmlrpc");
    ###Return Raw PHP Types###
    $client->return_type = "phpvals";
    ###Dont bother with certificate verification###
    $client->setSSLVerifyPeer(FALSE);
    ###Our API Key###
    $key = $api_key;
    ###Build a Key-Value Array to store a contact###
    $contact = array("FirstName" => $fname, "LastName" => $lname, "Email" => $email);
    $optin_reason = 'Coming Soon Page';
    ###Set up the call###
    $call = new xmlrpcmsg("ContactService.add", array(php_xmlrpc_encode($key), php_xmlrpc_encode($contact)));
    $call2 = new xmlrpcmsg("APIEmailService.optIn", array(php_xmlrpc_encode($key), php_xmlrpc_encode($email), php_xmlrpc_encode($optin_reason)));
    ###Send the call###
    $result = $client->send($call);
    $result2 = $client->send($call2);
    if (!empty($tag_id)) {
        $tags = explode(",", $tag_id);
        //var_dump($tags);
        foreach ($tags as $t) {
            $call3 = new xmlrpcmsg("ContactService.addToGroup", array(php_xmlrpc_encode($key), php_xmlrpc_encode($result->value()), php_xmlrpc_encode($t)));
            $result3 = $client->send($call3);
        }
        //var_dump($result3);
    }
    ###Check the returned value to see if it was successful and set it to a variable/display the results###
    if (!$result->faultCode()) {
        // if(!empty($enable_reflink)){
        //     seed_cspv4_emaillist_database_add_subscriber();
        // }
        if (empty($seed_cspv4_post_result['status'])) {
            $seed_cspv4_post_result['status'] = '200';
        }
        // $conID = $result->value();
        // print "Contact added was " . $conID;
        // print "<BR>";
    } else {
        $seed_cspv4_post_result['status'] = '500';
        // print $result->faultCode() . "<BR>";
        // print $result->faultString() . "<BR>";die();
    }
}
Пример #8
0
<?php

##########################################################################################################
###                            Sample Created by Justin Morris on 7/10/08                               ###
###        In this Sample we will use the InvoiceService to add an order to a contact record.          ###
##########################################################################################################
###Include our XMLRPC Library###
include "xmlrpc-2.0/lib/xmlrpc.inc";
###Set our Infusionsoft application as the client###
$client = new xmlrpc_client("https://mach2.infusionsoft.com/api/xmlrpc");
###Return Raw PHP Types###
$client->return_type = "phpvals";
###Dont bother with certificate verification###
$client->setSSLVerifyPeer(FALSE);
###Our API Key###
$key = "13643d3c8910057ce07623ed01bb22b2";
############################################
###   Function to create a new contact   ###
############################################
function addCon()
{
    global $client, $key;
    ###Create our contact array###
    $contact = array("FirstName" => $_POST['fName'], "LastName" => $_POST['lName'], "Email" => $_POST['eMail'], "StreetAddress1" => $_POST['Street'], "City" => $_POST['City'], "State" => $_POST['State'], "PostalCode" => $_POST['zip']);
    ###Build the Call###
    $call = new xmlrpcmsg("ContactService.add", array(php_xmlrpc_encode($key), php_xmlrpc_encode($contact)));
    ###Send the call###
    $result = $client->send($call);
    if (!$result->faultCode()) {
        return $result->value();
    } else {
 public function removeUserTags($ismachine, $key, $contact, $tags)
 {
     $url = 'https://' . $ismachine . '.infusionsoft.com:443/api/xmlrpc';
     $con = new xmlrpc_client($url);
     $con->return_type = 'phpvals';
     $con->setSSLVerifyHost(0);
     $con->setSSLVerifyPeer(0);
     //get the tags
     $msg = new xmlrpcmsg('ContactService.removeFromGroup');
     $msg->addParam(new xmlrpcval($key));
     $msg->addParam(new xmlrpcval((int) $contact, 'int'));
     $msg->addParam(new xmlrpcval((int) $tags, 'int'));
     $t = $con->send($msg);
     if ($t->errno) {
         $t = array("errno" => $t->errno, "errstr" => $t->errstr);
     } else {
         $t = array("value" => $t->value());
     }
     return $t;
 }
 function InfusionSoft($that)
 {
     global $wpdb;
     if (!class_exists('xmlrpcmsg') || !class_exists('xmlrpcval') || !class_exists('xmlrpc_client')) {
         include_once $x = $that->pluginDir . '/extlib/xmlrpc.php';
     }
     //All FUNCTIONS Starts Here
     //function for getting the product sku using the product id in infusionsoft
     function getProductSku($Id, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('Product'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('Id'));
         $msg->addParam(new xmlrpcval($Id));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Sku')), 'array'));
         $product = $con->send($msg);
         $product = $product->value();
         if ($product) {
             return $product[0];
         } else {
             return false;
         }
     }
     //function for getting the contact info from infusionsoft
     function getContact($Id, $con, $key)
     {
         $msg = new xmlrpcmsg('ContactService.load');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval($Id, 'int'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('FirstName'), new xmlrpcval('LastName'), new xmlrpcval('Email'), new xmlrpcval('Company'), new xmlrpcval('StreetAddress1'), new xmlrpcval('StreetAddress2'), new xmlrpcval('City'), new xmlrpcval('State'), new xmlrpcval('PostalCode'), new xmlrpcval('Country')), 'array'));
         $user = $con->send($msg);
         $user = $user->value();
         return $user;
     }
     //function for getting the invoice using invoice id
     function getInvoice($Id, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('Invoice'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('Id'));
         $msg->addParam(new xmlrpcval($Id));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('ContactId'), new xmlrpcval('JobId'), new xmlrpcval('DateCreated'), new xmlrpcval('TotalDue'), new xmlrpcval('PayStatus'), new xmlrpcval('CreditStatus'), new xmlrpcval('RefundStatus'), new xmlrpcval('PayPlanStatus'), new xmlrpcval('InvoiceType'), new xmlrpcval('ProductSold')), 'array'));
         $invoice = $con->send($msg);
         $invoice = $invoice->value();
         if ($invoice) {
             return $invoice[0];
         } else {
             return false;
         }
     }
     //function for getting the invoice using jobid
     function getInvoiceByJobId($JobId, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('Invoice'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('JobId'));
         $msg->addParam(new xmlrpcval($JobId, 'int'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('ContactId'), new xmlrpcval('DateCreated'), new xmlrpcval('TotalDue'), new xmlrpcval('JobId'), new xmlrpcval('PayStatus'), new xmlrpcval('CreditStatus'), new xmlrpcval('RefundStatus'), new xmlrpcval('PayPlanStatus'), new xmlrpcval('InvoiceType'), new xmlrpcval('ProductSold')), 'array'));
         $invoices = $con->send($msg);
         $invoices = $invoices->value();
         if (empty($invoices)) {
             return false;
         }
         return $invoices[0];
     }
     //function for getting the Job using order id passed in url
     function getJob($orderId, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('Job'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('Id'));
         $msg->addParam(new xmlrpcval($orderId, 'int'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('JobTitle'), new xmlrpcval('ContactId'), new xmlrpcval('StartDate'), new xmlrpcval('DueDate'), new xmlrpcval('JobNotes'), new xmlrpcval('ProductId'), new xmlrpcval('JobStatus'), new xmlrpcval('DateCreated'), new xmlrpcval('JobRecurringId'), new xmlrpcval('OrderType'), new xmlrpcval('OrderStatus')), 'array'));
         $jobs = $con->send($msg);
         $jobs = $jobs->value();
         if (empty($jobs)) {
             return false;
         }
         return $jobs[0];
     }
     //function for getting the payplan items
     function GetPayplanItems($payplan_id, $con, $key)
     {
         // retrieve Payplan Items
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('PayPlanItem'));
         $msg->addParam(new xmlrpcval(10, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('PayPlanId'));
         $msg->addParam(new xmlrpcval($payplan_id));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('PayPlanId'), new xmlrpcval('DateDue'), new xmlrpcval('AmtDue'), new xmlrpcval('Status')), 'array'));
         $ppi = $con->send($msg);
         $ppi = $ppi->value();
         if ($ppi) {
             $ret = $ppi;
         } else {
             $ret = false;
         }
         return $ret;
     }
     //function for getting the payplan status
     function GetPayplanStatus($invoice_id, $con, $key)
     {
         // retrieve Payplan
         $msg = new xmlrpcmsg('DataService.findByField');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('PayPlan'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval('InvoiceId'));
         $msg->addParam(new xmlrpcval($invoice_id));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('InvoiceId'), new xmlrpcval('AmtDue'), new xmlrpcval('DateDue'), new xmlrpcval('InitDate'), new xmlrpcval('StartDate')), 'array'));
         $pp = $con->send($msg);
         $pp = $pp->value();
         if ($pp) {
             $pp = $pp[0];
             if ($pp['StartDate'] > date('Ymd\\TH:i:s', strtotime('EST')) && !empty($pp['StartDate'])) {
                 $ret = array("PayPlanId" => $pp['Id'], "OverDue" => false);
             } else {
                 $ret = array("PayPlanId" => $pp['Id'], "OverDue" => true);
             }
         } else {
             $ret = false;
         }
         return $ret;
     }
     //function for getting the subscription using product id
     function GetSubscriptionStatusByPID($contactID, $PId, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.query');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('RecurringOrder'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval(array('ContactId' => new xmlrpcval($contactID), 'ProductId' => new xmlrpcval($PId, 'int')), 'struct'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('ContactId'), new xmlrpcval('OriginatingOrderId'), new xmlrpcval('SubscriptionPlanId'), new xmlrpcval('ProductId'), new xmlrpcval('StartDate'), new xmlrpcval('EndDate'), new xmlrpcval('LastBillDate'), new xmlrpcval('NextBillDate'), new xmlrpcval('ReasonStopped'), new xmlrpcval('Status')), 'array'));
         $recur = $con->send($msg);
         $recur = $recur->value();
         if ($recur) {
             return $recur[0];
         } else {
             return false;
         }
     }
     //function for get the subscription using subscription id
     function GetSubscriptionStatusBySID($SId, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.query');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('RecurringOrder'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval(array('Id' => new xmlrpcval($SId, 'int')), 'struct'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('ContactId'), new xmlrpcval('OriginatingOrderId'), new xmlrpcval('SubscriptionPlanId'), new xmlrpcval('ProductId'), new xmlrpcval('StartDate'), new xmlrpcval('EndDate'), new xmlrpcval('LastBillDate'), new xmlrpcval('NextBillDate'), new xmlrpcval('ReasonStopped'), new xmlrpcval('Status')), 'array'));
         $recur = $con->send($msg);
         $recur = $recur->value();
         if ($recur) {
             return $recur[0];
         } else {
             return false;
         }
     }
     //function for getting subscription using jobid
     function GetSubscriptionStatusByJID($contactID, $JId, $con, $key)
     {
         $msg = new xmlrpcmsg('DataService.query');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('RecurringOrder'));
         $msg->addParam(new xmlrpcval(1, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval(array('ContactId' => new xmlrpcval($contactID), 'OriginatingOrderId' => new xmlrpcval($JId, 'int')), 'struct'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('ContactId'), new xmlrpcval('OriginatingOrderId'), new xmlrpcval('SubscriptionPlanId'), new xmlrpcval('ProductId'), new xmlrpcval('StartDate'), new xmlrpcval('EndDate'), new xmlrpcval('LastBillDate'), new xmlrpcval('NextBillDate'), new xmlrpcval('ReasonStopped'), new xmlrpcval('Status')), 'array'));
         $recur = $con->send($msg);
         $recur = $recur->value();
         if ($recur) {
             return $recur[0];
         } else {
             return false;
         }
     }
     function getInvoiceRefunds($con, $key, $invid)
     {
         $con->return_type = 'phpvals';
         $con->setSSLVerifyHost(0);
         $con->setSSLVerifyPeer(0);
         $msg = new xmlrpcmsg('DataService.query');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('InvoicePayment'));
         $msg->addParam(new xmlrpcval(1000, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval(array('InvoiceId' => new xmlrpcval($invid, 'int')), 'struct'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('InvoiceId'), new xmlrpcval('Amt'), new xmlrpcval('PayStatus'), new xmlrpcval('PaymentId'), new xmlrpcval('SkipCommission')), 'array'));
         $inv_payments = $con->send($msg);
         $inv_payments = $inv_payments->value();
         $refunded_amount = 0;
         if ($inv_payments) {
             foreach ($inv_payments as $inv_payment) {
                 if ($inv_payment['PayStatus'] == 'Refunded') {
                     $refunded_amount += abs($inv_payment['Amt']);
                 }
             }
         }
         return $refunded_amount;
     }
     function isLastInvoicePaid($con, $key, $invoice)
     {
         //lets get the jobs for the subscription
         $jobs = GetSubscriptionJobs($invoice['SubscriptionId'], $con, $key);
         if (!$jobs) {
             return false;
         }
         //no job then unpaid
         $job_ids = array_map(create_function('$arr', 'return $arr["Id"];'), $jobs);
         //we only need the ids
         $latest_jobid = max($job_ids);
         //get the latest invoice of this subscription
         $latest_invoice = getInvoiceByJobId($latest_jobid, $con, $key);
         //get the invoice of this job
         if (!$latest_invoice) {
             return false;
         }
         //if invoice unpaid
         return (bool) $latest_invoice["PayStatus"];
     }
     //get jobs related for this subscription/recurringorder
     //in order to get the invoices for this subscription
     function GetSubscriptionJobs($recurid, $con, $key)
     {
         $con->return_type = 'phpvals';
         $con->setSSLVerifyHost(0);
         $con->setSSLVerifyPeer(0);
         $msg = new xmlrpcmsg('DataService.query');
         $msg->addParam(new xmlrpcval($key));
         $msg->addParam(new xmlrpcval('Job'));
         $msg->addParam(new xmlrpcval(1000, 'int'));
         $msg->addParam(new xmlrpcval(0, 'int'));
         $msg->addParam(new xmlrpcval(array('JobRecurringId' => new xmlrpcval($recurid, 'int')), 'struct'));
         $msg->addParam(new xmlrpcval(array(new xmlrpcval('Id'), new xmlrpcval('JobTitle'), new xmlrpcval('ContactId'), new xmlrpcval('JobRecurringId'), new xmlrpcval('ProductId')), 'array'));
         $jobs = $con->send($msg);
         $jobs = $jobs->value();
         return $jobs;
     }
     //function for getting the status of the invoice or subscription
     function GetStatus($invoice, $con, $key)
     {
         $sid = isset($invoice['SubscriptionId']) ? $invoice['SubscriptionId'] : "";
         $pid = $invoice['ProductSold'];
         if ($sid == "") {
             //old transaction id, base the search from contact id and product id
             //THIS IS FOR OLD VERSION OF IF INTEGRATION
             $invoice['Status'] = $invoice['PayStatus'] == 1 && $invoice['RefundStatus'] == 0 ? 'active' : 'inactive';
             $recur = GetSubscriptionStatusByPID($invoice['ContactId'], $pid, $con, $key);
             if ($recur && !empty($recur['Status'])) {
                 // make sure that we're not processing an empty field. fixes issue with complete recurring subscriptions
                 $invoice['Status'] = strtolower($recur['Status']);
             }
         } else {
             //NEW INFUSIONSOFT UPDATES AFTER THE SPRING RELEASE, we added subscription id for subscriptions
             //non subscriptions have 00 values
             $invoice['Status'] = $invoice['PayStatus'] == 1 && $invoice['RefundStatus'] == 0 ? 'active' : 'inactive';
             //process subscriptions
             if ($sid != "00") {
                 // subscriptions have number values
                 $recur = GetSubscriptionStatusBySID($sid, $con, $key);
             } else {
                 // if subscription is not available, use the job id
                 $recur = GetSubscriptionStatusByJID($invoice['ContactId'], $invoice['JobId'], $con, $key);
             }
             //subscription
             if ($recur && !empty($recur['Status'])) {
                 // make sure that we're not processing an empty field. fixes issue with complete recurring subscriptions
                 //assign the subscription id
                 $invoice['SubscriptionId'] = $recur['Id'];
                 unset($recur['Id']);
                 $invoice = array_merge($invoice, $recur);
                 if ($recur['Status'] != "Active") {
                     $refund = getInvoiceRefunds($con, $key, $invoice['Id']);
                     //getrefunds of invoice
                     $full_refund = $refund != 0 && $refund >= $invoice['TotalDue'] ? true : false;
                     if ($full_refund || strtolower(trim($recur['ReasonStopped'])) == "refund") {
                         $invoice['Status'] = "inactive";
                     } else {
                         if ($recur['NextBillDate'] > date('Ymd\\TH:i:s', strtotime('EST'))) {
                             //if no active, lets cancel them only when the next bill date has passed already
                             if (isLastInvoicePaid($con, $key, $invoice)) {
                                 //if last invoice is paid, wait for next bill date because he paid
                                 $invoice['Status'] = "active";
                             }
                         } else {
                             $invoice['Status'] = strtolower($recur['Status']);
                         }
                     }
                 } else {
                     $invoice['Status'] = strtolower($recur['Status']);
                 }
             } else {
                 //one time payment
                 if ($invoice['Status'] == "inactive" && $invoice['RefundStatus'] == 1) {
                     //check if refunded
                     $refund = getInvoiceRefunds($con, $key, $invoice['Id']);
                     $full_refund = $refund != 0 && $refund >= $invoice['TotalDue'] ? true : false;
                     if (!$full_refund) {
                         $invoice['Status'] = "active";
                     }
                 }
             }
         }
         //if invoice is inactive, lets check if its has payment plan
         if ($invoice['Status'] == "inactive") {
             $invstat = "inactive";
             //lets get the payment plan for this invoice
             $pp = GetPayplanStatus($invoice['Id'], $con, $key);
             if ($pp) {
                 if ($pp['OverDue']) {
                     //if it has overdue payment plan
                     //get the payment plan items
                     $ppi = GetPayplanItems($pp['PayPlanId'], $con, $key);
                     if ($ppi) {
                         //get the payment plan items with unpaid status
                         foreach ((array) $ppi as $ppitems) {
                             if ($ppitems['Status'] == 1) {
                                 //if it has unpaid payment plan items and its not yet due
                                 if ($ppitems['DateDue'] > date('Ymd\\TH:i:s', strtotime('EST'))) {
                                     $invstat = "active";
                                 } else {
                                     //else its due
                                     $invstat = "inactive";
                                 }
                                 break;
                             }
                         }
                     }
                 } else {
                     //if payment plan has number of days before charging and its not overdue
                     $invstat = "active";
                 }
             }
             $invoice['Status'] = $invstat;
         }
         return $invoice;
     }
     //End of FUNTCTIONS
     // START PROCESSING HERE
     $url = 'https://' . $that->GetOption('ismachine') . '.infusionsoft.com:443/api/xmlrpc';
     $key = $that->GetOption('isapikey');
     $con = new xmlrpc_client($url);
     $con->return_type = 'phpvals';
     $con->setSSLVerifyHost(0);
     $con->setSSLVerifyPeer(0);
     $invmarker = 'InfusionSoft';
     $_GET['iscron'] = isset($_GET['iscron']) ? $_GET['iscron'] : "";
     $_GET['iscron'] = isset($_POST['contactId']) ? "ProcessContact" : $_GET['iscron'];
     switch (wlm_arrval($_GET, 'iscron')) {
         case 'ProcessContact':
             $contactid = $_POST['contactId'];
             $add_level = isset($_POST['add']) ? $_POST['add'] : false;
             $remove_level = isset($_POST['remove']) ? $_POST['remove'] : false;
             $cancel_level = isset($_POST['cancel']) ? $_POST['cancel'] : false;
             $debug = isset($_GET['debug']) ? true : false;
             //if none of these are present, we stop
             if (!$add_level && !$remove_level && !$cancel_level) {
                 if ($debug) {
                     echo "No action found. <br />";
                 }
                 exit;
                 break;
             }
             //check if contact exist in infusionsoft
             $contact = getContact($contactid, $con, $key);
             if (!$contact) {
                 if ($debug) {
                     echo "No Contact found. <br />";
                 }
                 exit;
                 break;
             }
             usleep(1000000);
             $uname = isset($_POST['WLMUserName']) && $_POST['WLMUserName'] != "" ? $_POST['WLMUserName'] : $contact['Email'];
             $pword = isset($_POST['WLMPassWord']) && $_POST['WLMPassWord'] != "" ? $_POST['WLMPassWord'] : $that->PassGen();
             $regemail = isset($_POST['WLMRegEmail']) && strtolower($_POST['WLMRegEmail']) == "no" ? false : true;
             $sequential = isset($_POST['WLMSequential']) && strtolower($_POST['WLMSequential']) == "no" ? false : true;
             //first we get check if this user exist using txnid
             $wpm_user = $that->GetUserIDFromTxnID("IFContact-{$contactid}");
             $new_user = false;
             //if not, check if it exist using the email address
             if (!$wpm_user) {
                 if ($debug) {
                     echo "No User associated with this Contact.<br />Checking for contact email if matches found on user. <br />";
                 }
                 if (function_exists('get_user_by')) {
                     $wpm_user = get_user_by('email', $contact["Email"]);
                     $wpm_user = $wpm_user ? $wpm_user->ID : false;
                 } else {
                     $wpm_user = email_exists($contact["Email"]);
                 }
             }
             //if not, check if it exist using the username
             if (!$wpm_user) {
                 if ($debug) {
                     echo "Checking for username if matches found on username. <br />";
                 }
                 if (function_exists('get_user_by')) {
                     $wpm_user = get_user_by('login', $uname);
                     $wpm_user = $wpm_user ? $wpm_user->ID : $wpm_user;
                 }
             }
             //if the user does not exist yet and its adding to level
             //lets create a new user using api
             if (!$wpm_user && $add_level) {
                 if ($debug) {
                     echo "No user found. Creating user. (Available if add is present) <br />";
                 }
                 $wlm_api_key = $that->GetOption("WLMAPIKey");
                 $wlm_site_url = home_url('/');
                 $wlm_apiclass = new wlmapiclass($wlm_site_url, $wlm_api_key);
                 $wlm_apiclass->return_format = "php";
                 // prepare data
                 $data = array();
                 $data['last_name'] = $contact['LastName'];
                 $data['first_name'] = $contact['FirstName'];
                 $data['user_login'] = $uname;
                 $data['user_email'] = $contact['Email'];
                 $data['user_pass'] = $pword;
                 $data['display_name'] = "{$contact['FirstName']} {$contact['LastName']}";
                 $data['Sequential'] = $sequential;
                 $address['address1'] = $contact['StreetAddress1'];
                 $address['address2'] = $contact['StreetAddress2'];
                 $address['city'] = $contact['City'];
                 $address['state'] = $contact['State'];
                 $address['zip'] = $contact['PostalCode'];
                 $address['country'] = $contact['Country'];
                 $data["SendMail"] = $regemail;
                 $data["Levels"] = explode(",", $add_level);
                 //add the level here
                 $wpm_errmsg = '';
                 if (function_exists("wlmapi_add_member")) {
                     if ($debug) {
                         echo "Adding using WLM internal function.<br />";
                     }
                     $ret = wlmapi_add_member($data);
                 } else {
                     if ($debug) {
                         echo "Adding sing WLM API Call.<br />";
                     }
                     $ret = unserialize($wlm_apiclass->post("/members", $data));
                 }
                 if ($ret["success"] && isset($ret["member"][0]["ID"])) {
                     $wpm_user = $ret["member"][0]["ID"];
                 } else {
                     if ($debug) {
                         echo " Adding User Failed. Returns the following:";
                     }
                 }
                 if ($debug) {
                     echo "<pre>";
                     var_dump($ret);
                     echo "</pre><br />";
                 }
                 $new_user = true;
                 //this is new user
             }
             //assign infusiom contact id if none is assigned to this user
             if ($wpm_user) {
                 $ifcontact = $that->Get_UserMeta($wpm_user, "wlminfusionsoft_contactid");
                 if (!$ifcontact) {
                     if ($debug) {
                         echo "Updating Contact ID for user.<br />";
                     }
                     $that->Update_UserMeta($wpm_user, "wlminfusionsoft_contactid", $contactid);
                 }
             }
             $current_user_mlevels = $that->GetMembershipLevels($wpm_user);
             $wpm_levels = $that->GetOption('wpm_levels');
             if ($debug) {
                 echo "Performing operations. Please wait..<br />";
             }
             //add
             if ($wpm_user && $add_level) {
                 $user_mlevels = $current_user_mlevels;
                 $add_level_arr = explode(",", $add_level);
                 if (in_array("all", $add_level_arr)) {
                     $add_level_arr = array_merge($add_level_arr, array_keys($wpm_levels));
                     $add_level_arr = array_unique($add_level_arr);
                 }
                 if (!$new_user) {
                     if ($debug) {
                         echo "Adding Levels.<br />";
                     }
                     foreach ($add_level_arr as $id => $add_level) {
                         if (isset($wpm_levels[$add_level])) {
                             //check if valid level
                             if (!in_array($add_level, $user_mlevels)) {
                                 $user_mlevels[] = $add_level;
                                 $that->SetMembershipLevels($wpm_user, $user_mlevels);
                                 $that->SetMembershipLevelTxnID($wpm_user, $add_level, "IFContact-{$contactid}");
                             } else {
                                 //just uncancel the user
                                 $ret = $that->LevelCancelled($add_level, $wpm_user, false);
                             }
                         } elseif (strrpos($add_level, "payperpost") !== false) {
                             $that->SetPayPerPost($wpm_user, $add_level);
                         }
                     }
                     if ($debug) {
                         echo count($add_level_arr) . " Levels Added.<br />";
                     }
                 } else {
                     if ($debug) {
                         echo "Updating Level Transaction ID.<br />";
                     }
                     foreach ($add_level_arr as $id => $add_level) {
                         if (isset($wpm_levels[$add_level])) {
                             //check if valid level
                             $that->SetMembershipLevelTxnID($wpm_user, $add_level, "IFContact-{$contactid}");
                         }
                     }
                 }
             }
             //cancel
             if ($wpm_user && $cancel_level) {
                 if ($debug) {
                     echo "Cancelling Levels.<br />";
                 }
                 $user_mlevels = $current_user_mlevels;
                 $cancel_level_arr = explode(",", $cancel_level);
                 if (in_array("all", $cancel_level_arr)) {
                     $cancel_level_arr = array_merge($cancel_level_arr, array_keys($wpm_levels));
                     $cancel_level_arr = array_unique($cancel_level_arr);
                 }
                 foreach ($cancel_level_arr as $id => $cancel_level) {
                     if (isset($wpm_levels[$cancel_level])) {
                         //check if valid level
                         if (in_array($cancel_level, $user_mlevels)) {
                             $ret = $that->LevelCancelled($cancel_level, $wpm_user, true);
                         }
                     }
                 }
                 if ($debug) {
                     echo count($cancel_level_arr) . " Levels Cancelled.<br />";
                 }
             }
             //remove
             if ($wpm_user && $remove_level) {
                 if ($debug) {
                     echo "Removing Levels.<br />";
                 }
                 $user_mlevels = $current_user_mlevels;
                 $remove_level_arr = explode(",", $remove_level);
                 if (in_array("all", $remove_level_arr)) {
                     $remove_level_arr = array_merge($remove_level_arr, array_keys($wpm_levels));
                     $remove_level_arr = array_unique($remove_level_arr);
                 }
                 foreach ($remove_level_arr as $id => $remove_level) {
                     $arr_index = array_search($remove_level, $user_mlevels);
                     if ($arr_index !== false) {
                         unset($user_mlevels[$arr_index]);
                     } elseif (strrpos($remove_level, "payperpost") !== false) {
                         list($marker, $pid) = explode("-", $remove_level);
                         $post_type = get_post_type($pid);
                         $that->RemovePostUsers($post_type, $pid, $wpm_user);
                     }
                 }
                 $that->SetMembershipLevels($wpm_user, $user_mlevels);
                 if ($debug) {
                     echo count($remove_level_arr) . " Levels Removed.<br />";
                 }
             }
             if ($debug) {
                 echo "Done.<br />";
             }
             usleep(1000000);
             exit;
             break;
         case '1':
             set_time_limit(0);
             //override max execution time
             //get all the infusionsoft txn_id
             $qwhere = "WHERE uo.`option_value` LIKE '{$invmarker}%'";
             $qjoin = "LEFT JOIN `{$that->Tables->userlevels}` AS ul ON uo.`userlevel_id` = ul.`ID`";
             $query = "SELECT ul.`level_id` as levelid, ul.`user_id` as uid, uo.`option_value` as option_value  FROM `{$that->Tables->userlevel_options}` AS uo {$qjoin} {$qwhere}";
             $trans = $wpdb->get_results($query);
             $istrans = array();
             foreach ($trans as $t) {
                 $txn_id = $t->option_value;
                 //format {marker}-{invoice#}-{subcriptionid}
                 list($marker, $tid) = explode('-', $txn_id, 2);
                 //seperate the marker from the others
                 // $istrans[$t->uid] = array("level"=>$t->levelid, "invid"=>$tid); //{invoice#}-{subcriptionid} left
                 $istrans[$tid] = array("level" => $t->levelid, "uid" => $t->uid);
             }
             $wlmlevels = $that->GetOption('wpm_levels');
             // $istrans = array_unique($istrans);
             $cnt = count($istrans);
             $log = "Syncing Infusionsoft Transactions with WLM<br />";
             $log .= "<i>You should see a message below saying that all records were processed.<br />If not some records might not been processed due to lack of computer resources or an error occured.</i>";
             if ($cnt > 0) {
                 $log .= "<br /><br />Found <strong>{$cnt}</strong> record/s:<br />";
                 $log .= "Processing please wait...<br />";
             } else {
                 $log .= "<br /><br />No Records to Sync.";
             }
             //loop through the txn_ids
             $rec = 1;
             $log_tbl = "";
             foreach ((array) $istrans as $invid => $data) {
                 list($iid, $sid) = explode('-', $invid, 2);
                 // retrieve Invoice id and Sub id
                 $uid = $data['uid'];
                 $invoice = getInvoice($iid, $con, $key);
                 $mstat = "Active";
                 // do we have a valid invoice? if so, retrieve the status
                 if ($invoice) {
                     $invoice["SubscriptionId"] = $sid;
                     //include the subscription id
                     $invoice = GetStatus($invoice, $con, $key);
                     //get invoice status
                     // update level status based on invoice status
                     $_POST['sctxnid'] = "{$invmarker}-" . $invid;
                     switch ($invoice['Status']) {
                         case 'active':
                             $that->ShoppingCartReactivate();
                             // Add hook for Shoppingcart reactivate so that other plugins can hook into this
                             $_POST['sc_type'] = 'Infusionsoft';
                             do_action('wlm_shoppingcart_rebill', $_POST);
                             break;
                         default:
                             //'inactive':
                             $that->ShoppingCartDeactivate();
                     }
                     $mstat = ucfirst($invoice['Status']);
                 }
                 $stat = $invoice ? "Processed" : "Invalid invoice";
                 $user_url = admin_url("user-edit.php?user_id={$uid}&wp_http_referer=wlm");
                 $lvlname = isset($wlmlevels[$data['level']]) ? $wlmlevels[$data['level']]['name'] : 'Unknown';
                 $log_tbl .= "<tr><td><a target='_blank' href='{$user_url}'>{$uid}</a></td><td>{$lvlname}</td><td>{$invmarker}-{$invid}</td><td>{$iid}</td><td>{$stat}</td><td>{$mstat}</td></tr>";
                 // $rec++ . ($invoice ? "(OK)" : "(Invalid)") . ", ";
                 $rec++;
             }
             $log .= "<table style='width:100%;' border='1'><tr><th>User ID</th><th>Level</th><th>Transaction Id</th><th>Invoice#</th><th>Result</th><th>Membership Status</th></tr>" . $log_tbl . "</table>";
             //lets end the cron job here
             $log .= "<br /><br /><b>FINISHED</b>.<i>All {$cnt} records were processed.</i>";
             //display logs for admin only
             $current_user = wp_get_current_user();
             if ($current_user->caps['administrator']) {
                 echo $log;
             } else {
                 echo "WLM Infusionsoft Integration syncing done. For more detailed output, login an admin account and refresh this page.";
             }
             exit;
             break;
         default:
             // catch the data from infusionsoft after payment
             //get the productid to be used for free trial subscriptions
             $SubscriptionPlanProductId = isset($_GET['SubscriptionPlanProductId']) ? $_GET['SubscriptionPlanProductId'] : false;
             //get the subscription id
             $SubscriptionId = isset($_GET['SubscriptionId']) ? $_GET['SubscriptionId'] : "00";
             //if its a free trial
             $isTrial = isset($_GET['SubscriptionPlanWait']) ? true : false;
             //debug
             $debug = isset($_GET['debug']) ? true : false;
             // retrieve Job using OrderID passed
             $job = getJob($_GET['orderId'], $con, $key);
             if (!$job) {
                 if ($debug) {
                     echo "Invalid OrderID passed.({$_GET['orderId']})<br />";
                     exit(0);
                 } else {
                     return false;
                     //if job(OrderID) does not exist, end
                 }
             }
             /*
              * fix for new order form
              * new order form does not pass the contactId
              */
             if (empty($_GET['contactId'])) {
                 //get the contact id from the job
                 $contactId = $job['ContactId'];
             } else {
                 //get the contact id from $_GET
                 $contactId = $_GET['contactId'];
             }
             //retrieve the user info
             $user = getContact($contactId, $con, $key);
             if (!$user) {
                 if ($debug) {
                     echo "Invalid Contact.({$contactId})<br />";
                     exit(0);
                 } else {
                     return false;
                     //if no user exist, end
                 }
             }
             //retrieve invoice using our job Id
             $invoice = getInvoiceByJobId($job['Id'], $con, $key);
             if (!$invoice) {
                 if ($debug) {
                     echo "No Invoice found for this order.({$job['Id']})<br />";
                     exit(0);
                 } else {
                     return false;
                     //if no invoice for that job, end
                 }
             }
             //if its a subscription plan with free trial
             //populate the ProductSold field of invoice
             if ($SubscriptionPlanProductId && $isTrial) {
                 $invoice['ProductSold'] = (int) $SubscriptionPlanProductId;
                 //set the product id to SubscriptionPlanProductId, they have the same value
             }
             //set the $invoice Subscription Id
             $invoice['SubscriptionId'] = $SubscriptionId;
             //process the invoice and get its status
             $invoice = GetStatus($invoice, $con, $key);
             // fetch Sku for the product of the invoice
             // product id is used to search for the sku
             // we loop through each product sold and break the loop if we find a sku that matches a WishList Member level ID
             $wpm_levels = $that->GetOption('wpm_levels');
             foreach (explode(',', $invoice['ProductSold']) as $psold) {
                 $product = getProductSku($psold, $con, $key);
                 $valid_sku = $that->IsPPPLevel($product['Sku']) || isset($wpm_levels[$product['Sku']]) ? true : false;
                 if ($product && $valid_sku) {
                     if (!$invoice['Sku']) {
                         $invoice['Sku'] = $product['Sku'];
                     } else {
                         $_POST['additional_levels'][] = $product['Sku'];
                     }
                 }
             }
             //if no product sku then lets end here
             if (!isset($invoice['Sku']) || $invoice['Sku'] == "" || empty($invoice['Sku'])) {
                 if ($debug) {
                     echo "Invalid Product SKU.<br />";
                     exit(0);
                 } else {
                     return false;
                 }
             }
             // if we're active, then good.
             if ($invoice['Status'] != 'active') {
                 if ($debug) {
                     echo "Inactive Invoice.({$invoice['Id']})<br />";
                     exit(0);
                 } else {
                     return false;
                 }
             }
             // prepare data
             $_POST['lastname'] = $user['LastName'];
             $_POST['firstname'] = $user['FirstName'];
             $_POST['action'] = 'wpm_register';
             $_POST['wpm_id'] = $invoice['Sku'];
             $_POST['username'] = $user['Email'];
             $_POST['email'] = $user['Email'];
             $_POST['password1'] = $_POST['password2'] = $that->PassGen();
             $_POST['sctxnid'] = "{$invmarker}-" . $invoice['Id'] . "-{$SubscriptionId}";
             //prepare the address fields using info from shopping cart
             $address['company'] = $user['Company'];
             $address['address1'] = $user['StreetAddress1'];
             $address['address2'] = $user['StreetAddress2'];
             $address['city'] = $user['City'];
             $address['state'] = $user['State'];
             $address['zip'] = $user['PostalCode'];
             $address['country'] = $user['Country'];
             $_POST['wpm_useraddress'] = $address;
             if ($debug) {
                 echo "Integration is working fine.<br />";
                 echo "<pre>";
                 var_dump($_POST);
                 echo "</pre>";
                 exit(0);
             }
             // do registration
             $that->ShoppingCartRegistration();
     }
     //END OF SWITCH CASE
 }
Пример #11
0
 function pingPublishPost()
 {
     require_once NaverBlogAPI_PLUGIN_PATH . '/lib/xmlrpc.inc';
     global $post;
     $NaverBlog_Options = get_option('HintsNaverBlogAPI');
     $UserName = $NaverBlog_Options['blogapi_id'];
     $PassWord = $NaverBlog_Options['blogapi_pw'];
     $blogid = $UserName;
     $c = new xmlrpc_client($this->XMLRPCURL);
     $c->setSSLVerifyPeer(false);
     $GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
     if ($_POST['excerpt_enable']) {
         $content = wpautop(strip_tags(iconv_substr(strip_shortcodes($post->post_content), 0, $_POST['excerpt_lenth'], 'utf-8')));
         $content .= ' ..... <br/>[ <a href=' . get_permalink() . '> 더보기 </a> ]';
     } else {
         $content = wpautop(iconv_substr(do_shortcode($post->post_content), 0, mb_strlen($post->post_content), 'utf-8'));
     }
     if ($_POST['origin_enable']) {
         if ($_POST['origin_posi']) {
             $content = '[출처 : <a href=' . get_permalink() . '> ' . get_option("blogname") . ' 원문 보기 </a> ] <br/>' . $content;
         } else {
             $content = $content . '<br/> [출처 : <a href=' . get_permalink() . '> ' . get_option("blogname") . ' 원문 보기 </a> ]';
         }
     }
     $newpost = new xmlrpcval(array('title' => new xmlrpcval($post->post_title, 'string'), 'description' => new xmlrpcval($content, 'string')), 'struct');
     $x = new xmlrpcmsg("metaWeblog.newPost");
     $x->addParam(new xmlrpcval($UserName, 'string'));
     $x->addParam(new xmlrpcval($blogid, 'string'));
     $x->addParam(new xmlrpcval($PassWord, 'string'));
     $x->addParam($newpost);
     $x->addParam(new xmlrpcval(true, 'boolean'));
     $x->request_charset_encoding = "UTF-8";
     $c->return_type = 'phpvals';
     $r = $c->send($x, 3, 'https');
 }
Пример #12
0
include "lib/xmlrpc_wrappers.inc";
$orderNumber = $_GET['orderNumber'];
$user = '******';
$password = '******';
$dbname = 'magento_dev';
$server_url = 'http://52.77.224.23:8069';
$client = new xmlrpc_client($server_url . "/xmlrpc/common");
$client->setSSLVerifyPeer(0);
$c_msg = new xmlrpcmsg('login');
$c_msg->addParam(new xmlrpcval($dbname, "string"));
$c_msg->addParam(new xmlrpcval($user, "string"));
$c_msg->addParam(new xmlrpcval($password, "string"));
$c_response = $client->send($c_msg);
$uid = $c_response->value()->scalarval();
$client = new xmlrpc_client($server_url . "/xmlrpc/object");
$client->setSSLVerifyPeer(0);
$key1 = array(new xmlrpcval($orderNumber, 'int'));
$key = array(new xmlrpcval(array(new xmlrpcval('origin', "string"), new xmlrpcval('in', "string"), new xmlrpcval($key1, "array")), "array"));
$msg_ser = new xmlrpcmsg('execute');
$msg_ser->addParam(new xmlrpcval($dbname, "string"));
$msg_ser->addParam(new xmlrpcval($uid, "int"));
$msg_ser->addParam(new xmlrpcval($password, "string"));
$msg_ser->addParam(new xmlrpcval("sale.order", "string"));
$msg_ser->addParam(new xmlrpcval("search", "string"));
$msg_ser->addParam(new xmlrpcval($key, "array"));
$resp0 = $client->send($msg_ser);
$value_array = $resp0->value()->me['array'];
// $value_array = $resp0->value()->scalarval();
$order_id = $value_array[0]->me['int'];
// echo"<pre>";print_r($order_id);die;
$key1 = array(new xmlrpcval($order_id, 'int'));
 function AutoResponderInfusionsoft($that, $ar, $wpm_id, $email, $unsub = false)
 {
     global $WishListMemberInstance;
     if (!class_exists('xmlrpcmsg') || !class_exists('xmlrpcval') || !class_exists('xmlrpc_client')) {
         include_once $x = $WishListMemberInstance->pluginDir . '/extlib/xmlrpc.php';
     }
     $iskey = $ar['iskey'];
     // get the Infusionsoft API
     $ismname = $ar['ismname'];
     // get the Infusionsoft API
     $cID = $ar['isCID'][$wpm_id];
     // get the campaign ID of the Membership Level
     $isUnsub = $ar['isUnsub'][$wpm_id] == 1 ? true : false;
     // check if we will unsubscribe or not
     if ($cID) {
         //$listID should not be empty
         list($fName, $lName) = explode(" ", $that->ARSender['name'], 2);
         //split the name into First and Last Name
         $emailAddress = $that->ARSender['email'];
         //create connection
         $url = 'https://' . $ismname . '.infusionsoft.com:443/api/xmlrpc';
         $con = new xmlrpc_client($url);
         $con->return_type = 'phpvals';
         $con->setSSLVerifyHost(0);
         $con->setSSLVerifyPeer(0);
         //check if the user is already in the database
         $returnFields = array('Id');
         $carray = array(php_xmlrpc_encode($iskey), php_xmlrpc_encode($emailAddress), php_xmlrpc_encode($returnFields));
         $call = new xmlrpcmsg('ContactService.findByEmail', $carray);
         $dups = $con->send($call);
         if (!$dups->faultCode()) {
             $dups = $dups->value();
             $personId = $dups[0]['Id'];
         }
         if ($unsub) {
             // if the Unsubscribe
             //if email is found, remove it from campaign and if it will be unsubscribe once remove from level
             if (!empty($personId) && $isUnsub) {
                 $msg = new xmlrpcmsg('ContactService.removeFromCampaign');
                 $msg->addParam(new xmlrpcval($iskey));
                 $msg->addParam(new xmlrpcval((int) $personId, 'int'));
                 $msg->addParam(new xmlrpcval((int) $cID, 'int'));
                 $res = $con->send($msg);
                 if (!$res->faultCode()) {
                     $res = $res->value();
                 }
             }
         } else {
             //else Subscribe
             //if email is existing, assign it to the campaign
             if (!empty($personId)) {
                 $msg = new xmlrpcmsg('APIEmailService.optIn');
                 $msg->addParam(new xmlrpcval($iskey));
                 $msg->addParam(new xmlrpcval($emailAddress));
                 $msg->addParam(new xmlrpcval("WishList Member Autoresponde Integration Optin"));
                 $res = $con->send($msg);
                 $msg = new xmlrpcmsg('ContactService.addToCampaign');
                 $msg->addParam(new xmlrpcval($iskey));
                 $msg->addParam(new xmlrpcval((int) $personId, 'int'));
                 $msg->addParam(new xmlrpcval((int) $cID, 'int'));
                 $res = $con->send($msg);
                 if (!$res->faultCode()) {
                     $res = $res->value();
                 }
             } else {
                 //if email is new, assign it to the add it to the database
                 $msg = new xmlrpcmsg('ContactService.add');
                 $msg->addParam(new xmlrpcval($iskey));
                 $msg->addParam(new xmlrpcval(array('Email' => new xmlrpcval($emailAddress), 'FirstName' => new xmlrpcval($fName), 'LastName' => new xmlrpcval($lName)), 'struct'));
                 $newId = $con->send($msg);
                 // if successfully addded, opt-in the contact
                 if (!$newId->faultCode()) {
                     $newId = $newId->value();
                     $msg = new xmlrpcmsg('APIEmailService.optIn');
                     $msg->addParam(new xmlrpcval($iskey));
                     $msg->addParam(new xmlrpcval($emailAddress));
                     $msg->addParam(new xmlrpcval("WishList Member Autoresponde Integration Optin"));
                     $res = $con->send($msg);
                     if (!$res->faultCode()) {
                         $res = $res->value();
                     }
                     //then assign it to the campaign
                     $msg = new xmlrpcmsg('ContactService.addToCampaign');
                     $msg->addParam(new xmlrpcval($iskey));
                     $msg->addParam(new xmlrpcval((int) $newId, 'int'));
                     $msg->addParam(new xmlrpcval((int) $cID, 'int'));
                     $res = $con->send($msg);
                     if (!$res->faultCode()) {
                         $res = $res->value();
                     }
                 }
             }
         }
     }
 }
 public function workflow($model, $method, $record_id)
 {
     $client = new xmlrpc_client($this->server . "object");
     $client->setSSLVerifyPeer(0);
     $client->return_type = 'phpvals';
     $msg = new xmlrpcmsg('exec_workflow');
     $msg->addParam(new xmlrpcval($this->database, "string"));
     //* database name */
     $msg->addParam(new xmlrpcval($this->uid, "int"));
     /* useid */
     $msg->addParam(new xmlrpcval($this->password, "string"));
     /** password */
     $msg->addParam(new xmlrpcval($model, "string"));
     /** model name where operation will held * */
     $msg->addParam(new xmlrpcval($method, "string"));
     /** method which u like to execute */
     $msg->addParam(new xmlrpcval($record_id, "int"));
     /** parameters of the methods with values....  */
     $resp = $client->send($msg);
     if ($resp->faultCode()) {
         return -1;
     } else {
         return $resp->value();
     }
     /* return new generated id of record */
 }
Пример #15
0
/**
 * @param $host
 * @param $msg
 * @return xmlrpcresp
 */
function xmlrpc_wrapper($host, $msg)
{
    $method = 'http';
    // Work out port
    if (defined('SSL_ONLY') && SSL_ONLY) {
        $port = 443;
        $method = 'https';
    } elseif (defined('RPC_PORT')) {
        $port = RPC_PORT;
        if (defined('RPC_SSL') && RPC_SSL) {
            $method = 'https';
            if (!defined('RPC_PORT')) {
                $port = 443;
            }
        }
    } else {
        $port = 80;
    }
    $client = new xmlrpc_client(constant('RPC_RELATIVE_PATH') . '/rpcserver.php', $host, $port);
    if (DEBUG) {
        $client->setDebug(1);
    }
    $client->setSSLVerifyPeer(0);
    $client->setSSLVerifyHost(0);
    $response = $client->send($msg, 0, $method);
    return $response;
}
Пример #16
0
    }
    $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);
    $c->setSSLVerifyPeer(0);
    $r = $c->send($f, 20, "https");
    $v = $r->value();
    $faultcode = $r->faultCode();
    $faultreason = $r->faultString();
    if ($faultcode) {
        echo "?FaultCode=" . $faultcode . "&FaultReason=" . $faultreason;
        return 1;
    }
    $result = $v->scalarval();
    $result2 = htmlentities($r->serialize());
    echo $result;
}
Пример #17
0
 function _get_infusionsoft_client()
 {
     if (!class_exists("xmlrpc_client")) {
         require_once "includes/apis/xmlrpc-2.0/lib/xmlrpc.inc";
     }
     $client = new xmlrpc_client(get_option('hc_infusionsoft_appurl'));
     $client->return_type = "phpvals";
     $client->setSSLVerifyPeer(FALSE);
     return $client;
 }