/**
  * 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'));
 }
Esempio n. 4
0
            $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'];