/** * Record sales on InfusionSoft */ private function _infusion_sales($product, $plan, $email, $first_name, $last_name, $affiliate_id, $paid_amount = NULL) { // Add or Get buyer from InfusionSoft require_once app_path() . "/libraries/infusionsoft/isdk.php"; // Add InfusionSoft Library $isapp = new iSDK(); // Create Connection if ($isapp->cfgCon("comissionTracker")) { // find contact by email $contacts = $isapp->findByEmail($email, array('Id', 'Email')); // If contact found if (!empty($contacts[0]['Id'])) { $contact_id = $contacts[0]['Id']; } else { // Create new contact $contactData = array('Email' => $email, 'FirstName' => $first_name, 'LastName' => $last_name); $contact_id = $isapp->addCon($contactData); } // Sets current date $currentDate = date("d-m-Y"); $oDate = $isapp->infuDate($currentDate); // Creates blank order $newOrder = $isapp->blankOrder($contact_id, "{$product->name} - {$plan->name} ({$contact_id})", $oDate, NULL, $affiliate_id); // Add Order Item - Product ID // type = 4 or 9 (Product or Subscription) $infusion_product_type = $product->type == 1 ? 4 : 9; if ($paid_amount === NULL or $paid_amount === '') { $paid_amount = $plan->price; } $orderPrice = $paid_amount; //$paid_amount ? $paid_amount : $plan->price; $orderPrice = floatval(round($orderPrice, 2)); $result = $isapp->addOrderItem($newOrder, $plan->infusion_id, $infusion_product_type, $orderPrice, 1, "Sales Made From DK Solution", "Generated Through API"); // Add Manual Payment - since CC charged with Stripe $payment = $isapp->manualPmt($newOrder, $orderPrice, $oDate, "Credit Card", "Payment via DK Solution", false); //credit // Add Affiliate in our database if ($affiliate_id) { // Get Affiliate $affiliate = Affiliate::find($affiliate_id); if (!$affiliate or empty($affiliate->email)) { $affData = $isapp->dsFind('Affiliate', 1, 0, 'Id', $affiliate_id, array('AffName', 'ContactId')); } if (!$affiliate) { $affName = !empty($affData[0]['AffName']) ? $affData[0]['AffName'] : NULL; // Save Affiliate name $affiliate = new Affiliate(); $affiliate->id = $affiliate_id; $affiliate->name = $affName; $affiliate->save(); } if ($affiliate and empty($affiliate->email)) { $affContactId = !empty($affData[0]['ContactId']) ? $affData[0]['ContactId'] : NULL; if ($affContactId) { $affContactData = $isapp->dsFind('Contact', 1, 0, 'Id', $affContactId, array('Email')); $affEmail = !empty($affContactData[0]['Email']) ? $affContactData[0]['Email'] : NULL; $affiliate->email = $affEmail; $affiliate->save(); } } // Send Commission Email to Affiliate if ($affiliate->email) { // Get earned commission $from = strtotime("midnight", time()); $to = strtotime("tomorrow", time()) - 1; $start = date('Ymd\\TH:i:s', $from); $finish = date('Ymd\\TH:i:s', $to); $commissions = $isapp->affCommissions($affiliate->id, $start, $finish); if (!empty($commissions) and is_array($commissions)) { foreach ($commissions as $commission) { if ($commission['InvoiceId'] == $newOrder) { $AffEarnedCommission = $commission['AmtEarned']; } } } // Send email to Affiliate if (!empty($AffEarnedCommission)) { $this->_send_email_commission($product->name, $plan->name, $affiliate->email, $affiliate->name, $AffEarnedCommission); } } } return $newOrder; } else { // Error // echo "Connection Failed"; return FALSE; } }
public function getTest() { //require_once app_path() . DIRECTORY_SEPARATOR . ""; require_once app_path() . "/libraries/infusionsoft/isdk.php"; $isapp = new iSDK(); // Get Affiliate ID from Cookie $affiliate_id = Cookie::get('_dks_isa'); // Create Connection if ($isapp->cfgCon("comissionTracker")) { // find contact by email $contacts = $isapp->findByEmail('*****@*****.**', array('Id', 'Email')); // If contact found if (!empty($contacts[0]['Id'])) { $contact_id = $contacts[0]['Id']; } else { // Create new contact $contactData = array('Email' => '*****@*****.**'); $contact_id = $isapp->addCon($contactData); } echo $contact_id; echo "<br><br>"; // Testing Order Through Invoice //Sets current date $currentDate = date("d-m-Y"); $oDate = $isapp->infuDate($currentDate); echo "date set<br/>"; //Creates blank order $newOrder = $isapp->blankOrder($contact_id, "New Order for Contact {$contact_id}", $oDate, NULL, $affiliate_id); echo "newOrder=" . $newOrder . "<br/>"; //$newOrder = 710; // Add Order Item - Product ID // type = 4 or 9 (Product or Subscription) $result = $isapp->addOrderItem($newOrder, 24, 4, 50.0, 1, "Sale Made From API", "Generated Through API"); echo "item added<br/>"; //print_r($result); // Add Manual Payment - since CC charged with Stripe $payment = $isapp->manualPmt($newOrder, 50.0, $oDate, "credit", "Order done through API / Stripe", false); print_r($payment); } else { echo "Connection Failed"; } //$affiliate_id = Cookie::get('_dks_isa'); //echo "hi " . app_path(); }
public function shoppingcart() { if (isset($_POST['first_name'])) { $app = new \iSDK(); if ($app->cfgCon("connectionName")) { $qry = array('Email' => $_POST['emailAddress']); $ret = array("Id"); $dups = $app->dsQuery("Contact", 1, 0, $qry, $ret); if (empty($dups)) { $contact = array("FirstName" => $_POST['first_name'], "LastName" => $_POST['last_name'], "State" => $_POST['state'], "Phone1" => $_POST['phoneNumber'], "City" => $_POST['city'], "Email" => $_POST['emailAddress'], "Address1Type" => $_POST['addressLine1'], "ZipFour1" => $_POST['last_name'], "Country" => $_POST['last_name'], "Company" => $_POST['company']); $date = date('d/m/y'); $cid = $app->addCon($contact); } else { $cid = $dups[0]['Id']; $contact = array("FirstName" => $_POST['first_name'], "LastName" => $_POST['last_name'], "State" => $_POST['state'], "Phone1" => $_POST['phoneNumber'], "City" => $_POST['city'], "Email" => $_POST['emailAddress'], "Address1Type" => $_POST['addressLine1'], "ZipFour1" => $_POST['last_name'], "Country" => $_POST['last_name'], "Company" => $_POST['company']); $contact_ID = $app->updateCon($cid, $contact); } $fullname = explode(" ", $_POST['nameoncard']); $card['FirstName'] = $fullname[0]; $card['LastName'] = $fullname[1]; $card['CardNumber'] = $_POST['cnumber']; $card['ExpirationMonth'] = $_POST['cardmonth']; $card['ExpirationYear'] = $_POST['cardyear']; $card['CVV2'] = $_POST['CVV']; $result = $app->validateCard($card); if ($result['Valid'] == 'false') { $msg = "Order cancel due to credit card"; return view('licenses.shoppingcart', compact('msg')); } else { $ccid = $app->dsAdd("CreditCard", $card); //$timezone = new DateTimeZone( "America/New_York" ); //$date = new DateTime(); //$date->setTimezone( $timezone ); $currentDate = date('Y-m-d H:i:s'); $oDate = $app->infuDate($currentDate); try { $invID = $app->blankOrder($cid, "Order for Licenses" . $cid, $oDate, 0, 0); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } $ord = $app->getOrderId($invID); $Quantity = $_POST['Quantity']; $subID = array(); for ($i = 1; $i <= $Quantity; $i++) { $app->addOrderItem((int) $invID, (int) 50, (int) 4, (double) 0.1, (int) 1, 'Licenses Item' . $i, ''); $_intproductid = $app->addRecurringAdv((int) $cid, true, (int) 34, (int) 1, (double) 0.1, false, (int) 2, (int) $ccid, (int) 0, (int) 30); $_nextBillDate = date("d-m-Y", strtotime("1 Months + 1 day")); $subID[$i] = $_intproductid; $thedate = $app->infuDate($_nextBillDate); $app->updateSubscriptionNextBillDate($_intproductid, $thedate); $service["Frequency"] = 1; $service["BillingCycle"] = 2; $app->dsUpdate("RecurringOrder", $_intproductid, $service); } $payStat = $app->chargeInvoice((int) $invID, "Payment Via API", (int) $ccid, (int) 2, false); if (substr($payStat['Message'], 0, 2) == "91") { $payStat = $app->chargeInvoice((int) $invID, "Payment Via API", (int) $ccid, (int) 2, false); } if ($payStat['RefNum'] != "E" && $payStat['Code'] == "APPROVED") { $msg = "Thanks For Order"; $user_id = Auth::user()->id; $users = User::findOrFail($user_id); for ($i = 1; $i <= $Quantity; $i++) { $date = new \DateTime(); $license = new License(); $license->life = 1; $license->license_key = $subID[$i]; $license->company_id = $users->company_id; $license->user_id = 0; $license->status = 'ACTIVE'; $license->created_by = Auth::user()->id; $license->created_at = $date; $license->updated_at = $date; $license->save(); } return view('licenses.shoppingcart', compact('msg')); } else { $msg = "Order cancel due payment"; return view('licenses.shoppingcart', compact('msg')); } } } } $msg = ""; return view('licenses.shoppingcart', compact('msg')); }
$city = $order[26]; $state = $order[27]; $country = $order[28]; $zip = $order[29]; } $invoice = $thisapp->blankOrder($con[0]['Id'], 'EKM imported order.', date('Ymd'), 0, 0); //$invoice=$thisapp->dsAdd('Job',array('ContactId'=>$con[0]['Id'],'JobTitle'=>'EKM imported order for order number ('.$order[2].')','ShipCity'=>$city,'ShipCompany'=>$company,'ShipCountry'=>$country,'ShipFirstName'=>$fname,'ShipLastName'=>$lname,'ShipPhone'=>$phone,'ShipState'=>$state,'ShipStreet1'=>$add1,'ShipStreet2'=>$add2,'ShipZip'=>$zip)); //echo 'Adding order for contact id : '.$data[0]['Id'].'<br>'; } else { //if this is not a new order then add order items to the existing order /**** These are the indexes for product information **** * 39=ProductId * 40=ProductName * 41=ProductCode (mapped to ShortDescription in IS) * 42=ProductOptions * 43=ProductPrice * 44=ProductDiscount * 45=ProductDelivery * 46=ProductQuantity (this would go on an invoice rather than in a product definition) * 47=ProductRRP (Recommended Retail Price)*/ $prod = $thisapp->dsQuery('Product', 1, 0, array('ShortDescription' => $order[39]), array('Id')); $dat = $thisapp->addOrderItem($invoice, $prod[0]['Id'], 4, $prod[43], $order[46], $order[40], 'EKM imported invoice item'); echo 'Adding produce (' . $prod[0]['Id'] . ') for order number ' . $invoice . '<br />'; } } $orderDate = substr($order[3], 1, 8); $pDate = $app->infuDate($orderDate); $dat = $thisapp->addOrderItem($invoice, 0, 4, -$discount, 1, 'Total Discount', 'EKM imported invoice item'); $dat = $thisapp->addOrderItem($invoice, 0, 1, $shipping, 1, 'Total Shipping Cost', 'EKM imported invoice item'); $dat = $thisapp->manualPmt($invoice, $total, $pDate, 'Manual Credit Card Payment', 'EKM imported payment', true); fclose($file);
<?php require_once "../src/isdk.php"; $app = new iSDK(); if ($app->cfgCon("connectionName")) { echo "connected<br/>"; echo "app connected<br/>"; $currentDate = date("d-m-Y"); $oDate = $app->infuDate($currentDate); echo "date set<br/>"; $cid = 36; $newOrder = $app->blankOrder($cid, "New Order for Contact " . $cid, $oDate, 0, 0); echo "New order created=" . $newOrder . "<br/>"; $result = $app->addOrderItem($newOrder, 0, 4, 66.66, 1, "Infusionsoft Stuff", "new stuff!"); echo "item added<br/>"; $operation = $app->manualPmt($newOrder, 66.66, $oDate, "Cash", "fakemoney", false); if ($operation) { echo "payment has been added for invoiceId-" . $newOrder; } else { echo "Manual Payment Failed<br />"; } } else { echo "Connection Failed"; }
require_once "../src/isdk.php"; $app = new iSDK(); if ($app->cfgCon("connectionName")) { echo "connected<br/>"; echo "app connected<br/>"; $cid = 36; //Sets current date $currentDate = date("d-m-Y"); $oDate = $app->infuDate($currentDate); echo "date set<br/>"; //Creates blank order $newOrder = $app->blankOrder($cid, "New Order for Contact 123", $oDate, 0, 0); echo "newOrder=" . $newOrder . "<br/>"; $newOrder = (int) $newOrder; //Adds item to order $result = $app->addOrderItem($newOrder, 53, 4, 66.66, 1, "JustinsStuff", "new stuff!"); echo "item added<br/>"; //Finds the newest credit card $qry = array('ContactId' => $cid); $rets = array('Id'); $cards = $app->dsQuery("CreditCard", 99, 0, $qry, $rets); echo "<pre>"; print_r($cards); echo "</pre>"; $newCard = 0; $counter = 0; foreach ($cards as $card) { if ($cards[$counter]['Id'] > $newCard) { $newCard = (int) $cards[$counter]['Id']; } $counter++;
$ccid = $app->dsAdd("CreditCard", $card); //$timezone = new DateTimeZone( "America/New_York" ); //$date = new DateTime(); //$date->setTimezone( $timezone ); $currentDate = date('Y-m-d H:i:s'); $oDate = $app->infuDate($currentDate); try { $invID = $app->blankOrder($cid, "Order for Licenses" . $cid, $oDate, 0, 0); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } $ord = $app->getOrderId($invID); $Quantity = $_POST['Quantity']; $subID = array(); for ($i = 1; $i <= $Quantity; $i++) { $app->addOrderItem((int) $invID, (int) 50, (int) 4, (double) 0.1, (int) 1, 'Licenses Item' . $i, ''); $_intproductid = $app->addRecurringAdv((int) $cid, true, (int) 34, (int) 1, (double) 0.1, false, (int) 2, (int) $ccid, (int) 0, (int) 30); $_nextBillDate = date("d-m-Y", strtotime("1 Months + 1 day")); $subID[$i] = $_intproductid; $thedate = $app->infuDate($_nextBillDate); $app->updateSubscriptionNextBillDate($_intproductid, $thedate); $service["Frequency"] = 1; $service["BillingCycle"] = 2; $app->dsUpdate("RecurringOrder", $_intproductid, $service); } $payStat = $app->chargeInvoice((int) $invID, "Payment Via API", (int) $ccid, (int) 2, false); if (substr($payStat['Message'], 0, 2) == "91") { $payStat = $app->chargeInvoice((int) $invID, "Payment Via API", (int) $ccid, (int) 2, false); } if ($payStat['RefNum'] != "E" && $payStat['Code'] == "APPROVED") { $email = $_POST['emailAddress'];