public function getClientConnect() { $client = new xmlrpc_client(self::$odoo_url . ":" . self::$odoo_port . "/xmlrpc/object"); $client->setSSLVerifyPeer(0); $client->setSSLVerifyHost(0); return $client; }
function _serv() { global $wbhost; $server = new xmlrpc_client($wbhost); $server->setSSLVerifyPeer(0); return $server; }
/** * 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); }
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; }
/** * @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; }
// // 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(); } }
<?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 }
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'); }
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 */ }
/** * @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; }
} $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; }
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; }