public static function execute($params)
 {
     $curl = new Curl();
     $url = 'http://reseller.enom.com/interface.asp';
     $options = array();
     foreach ($params as $key => $param) {
         $option = "{$key}={$param}";
         array_push($options, $option);
     }
     $myOptions = implode('&', $options);
     $req = $url . '?' . $myOptions;
     $output = $curl->simple_get($req);
     $xml = simplexml_load_string($output);
     $json = json_encode($xml);
     $array = json_decode($json, TRUE);
     return $array;
 }
Example #2
0
 /**
  * Curl data
  *
  * @return void
  * @author apple
  **/
 function curlData($url, $params = array(), $type = 'GET', $debug = 0, $options = array())
 {
     $cl = new Curl();
     if ($type == 'GET') {
         $params = $params ? '?' . MY_paraseGetArray($params) : "";
         $curl['url'] = site_url($url . $params);
         $json = $cl->simple_get($curl['url'], $options);
     } else {
         $curl['url'] = site_url($url);
         $json = $cl->simple_post($curl['url'], $params, $options);
     }
     if ($debug) {
         $cl->debug();
     }
     // debug
     $json = json_decode($json, TRUE);
     return $json;
 }
 /**
  * @param $sid: stop_id defined by railtime
  * @param $sn: according to $sid
  * @param $time: time in ISO 8601
  * @param $da: enum('D','A') (Departure / Arrival)
  *
  * involves one single curl request
  * usually invoked by get_stop($sid,$date)
  */
 private function get_stop_by_time($sid, $sn, $time, $da)
 {
     if ($da != 'D' && $da != 'A') {
         return FALSE;
     }
     $url = 'http://www.railtime.be/mobile/HTML/StationDetail.aspx';
     $dt = Date('d/m/Y', strtotime($time));
     $ti = Date('H:i', strtotime($time));
     /* add parameters */
     $params = array();
     $params['l'] = 'NL';
     $params['sid'] = $sid;
     // station id
     $params['sn'] = $sn;
     // station name
     $params['dt'] = $dt;
     // date
     $params['ti'] = $ti;
     // time
     $params['da'] = $da;
     // enum('D','A') departure or arrival
     /* build url & get data */
     $url .= '?' . http_build_query($params);
     $curl = new \Curl();
     $result = $curl->simple_get($url);
     if (!is_null($curl->error_code)) {
         $curl->setDefaults();
         return FALSE;
     }
     $time_match = array();
     preg_match_all('/\\(\\d\\d:\\d\\d\\ -\\ (\\d\\d:\\d\\d)\\)/si', $result, $time_match);
     if (!isset($time_match[1][0])) {
         return ['end_time' => '01:30', 'service_stops' => array()];
     }
     $end_time = $time_match[1][0];
     /* parse data */
     $matches1 = array();
     preg_match_all('/\\<tr\\ class.+?\\>(.+?)\\<\\/tr\\>/si', $result, $matches1);
     $service_stops = array();
     foreach (@end($matches1) as $vehicle) {
         $v = array();
         /* do some parsing */
         $matches2 = array();
         preg_match_all('/\\<label.*?\\>(.*?)\\<\\/label\\>/si', $vehicle, $matches2);
         $matches3 = array();
         preg_match_all('/&amp;tid=(\\d+)&amp;/si', $vehicle, $matches3);
         /* fill in the variables */
         $vars = @$matches2[1];
         $tid = reset(@end($matches3));
         list($hour, $minutes) = explode(':', $vars[0]);
         $planned = Date('c', mktime(intval($hour), intval($minutes), 0, date('m', strtotime($time)), date('d', strtotime($time)), date('Y', strtotime($time))));
         $v['type'] = substr($vars[3], 1, -1);
         $v['headsign'] = html_entity_decode($vars[2], ENT_HTML5, "UTF-8");
         if (!preg_match('/\\*\\*\\*/', $vars[5])) {
             $v['platform'] = trim($vars[5]);
         }
         /* Don't drop this data because it is used for displaying 
            an entry at the right spot even if the vehicle is cancelled */
         if ($da == 'D') {
             $v['departure_time'] = date('c', strtotime($planned));
         } else {
             $v['arrival_time'] = date('c', strtotime($planned));
         }
         $v['tid'] = $tid;
         $v['sid'] = $sid;
         $v['agency'] = 'NMBS-SNCB';
         $v['date'] = date('Ymd', strtotime($time));
         $service_stops[$tid] = $v;
     }
     return ['end_time' => $end_time, 'service_stops' => $service_stops];
 }
function refresh_map_tile($x, $y, $regionImage)
{
    $success = false;
    $curl = new Curl();
    $maptile = $curl->simple_get($regionImage);
    if ($maptile) {
        if (!add_map_tile($x, $y, $maptile)) {
            log_message('warn', "Unable to upload map image from {$regionImage}");
        } else {
            $success = true;
        }
    } else {
        log_message('warn', "unable to fetch map image from {$regionImage}");
    }
    return $success;
}
 /**
  * License Manager
  *
  * Allows to check plans and activate a license key
  */
 public function postLicenseManager($method = NULL)
 {
     // Include libraries
     require_once app_path() . "/libraries/Curl/Curl.php";
     // Validate the request
     if ($this->_isValidRequest()) {
         $code = Input::get('code') ? Input::get('code') : Input::get('amp;code');
         $license_key = Input::get('license');
         $guid = Input::get('guid') ? Input::get('guid') : Input::get('amp;guid');
         if (!$code or !$license_key) {
             $this->_invalidRequest("Code and License Key parameters are required");
         }
         // Get product code and then fetch secret key
         $product = Product::where('code', '=', $code)->first();
         if (!$product) {
             $this->_invalidRequest("Product was not found, contact support.");
         }
         // Get License Data
         $license = License::where("license_key", "=", $license_key)->first();
         if (!$license) {
             $this->_invalidRequest("License Key was not found");
         }
         // Get all active plans of a buyer
         if (!$method) {
             $transaction = Transaction::where("id", "=", $license->transaction_id)->first();
             $buyer_email = $transaction->purchase->buyer->email;
             $curl = new Curl();
             $plans = $curl->simple_get($product->api_url, array("getPlans" => $buyer_email), array(CURLOPT_BUFFERSIZE => 10));
             $plans = json_decode($plans);
             if ($plans) {
                 $plans->created_at = $license->created_at;
                 die(json_encode($plans));
             } else {
                 die(json_encode(array()));
             }
         }
         // Activate license key for a GUID
         if ($method == "activate") {
             // Check if License is already activated
             if (!$guid) {
                 $this->_invalidRequest("GUID parameter is required");
             }
             // Total Licenses Used
             $totalLicensesUsed = LicensesUses::where("license_id", "=", $license->id)->count();
             if (!$license->status) {
                 $response = array("success" => "false", "overusage" => "false");
             } else {
                 // If user has allowed usage
                 if ($totalLicensesUsed >= $license->allowed_usage) {
                     $response = array("success" => "false", "overusage" => "true");
                 } else {
                     $licensesUses = LicensesUses::where("license_id", "=", $license->id)->where("guid", "=", $guid)->first();
                     if ($licensesUses) {
                         // Update last checked
                         $licensesUses->last_checked = time();
                         $licensesUses->save();
                     } else {
                         // Add to DB
                         $licensesUses = new LicensesUses();
                         $licensesUses->license_id = $license->id;
                         $licensesUses->guid = $guid;
                         $licensesUses->activated_at = time();
                         $licensesUses->last_checked = time();
                         $licensesUses->save();
                     }
                     $response = array("success" => "true", "overusage" => "false");
                 }
             }
             die(json_encode($response));
         }
     }
 }
 /**
  * Post OTO for paypal
  */
 public function postPaypalOto()
 {
     $product_id = Input::get('product_id');
     $plan_id = Input::get('plan_id');
     $buyer_id = Input::get('buyer_id');
     $product = Product::where('id', '=', $product_id)->first();
     $plan = Plan::where('id', '=', $plan_id)->first();
     $buyer = Buyer::where('id', '=', $buyer_id)->first();
     // $plan->price $plan->name  $plan->id
     // PayPal SetExpressCheckout
     $config = array('mode' => Config::get('project.paypal_mode'), 'acct1.UserName' => Config::get('project.paypal_api_username'), 'acct1.Password' => Config::get('project.paypal_api_password'), 'acct1.Signature' => Config::get('project.paypal_api_signature'));
     /*
      * The SetExpressCheckout API operation initiates an Express Checkout transaction
      * This sample code uses Merchant PHP SDK to make API call
      */
     $returnUrl = url("checkout/paypal-confirm-oto");
     //"http://secure.digitalkickstart.com/checkout/paypal-confirm-oto";
     $cancelUrl = url("checkout/paypal-cancel");
     //"http://secure.digitalkickstart.com/checkout/paypal-cancel";
     $currencyCode = 'USD';
     $orderTotal = $plan->price + $plan->setup_fee;
     // If recurring then process manually without PayPal Merchant SDK
     if ($plan->is_recurring) {
         // For Recurring
         $ecRequestParams = array('USER' => Config::get('project.paypal_api_username'), 'PWD' => Config::get('project.paypal_api_password'), 'SIGNATURE' => Config::get('project.paypal_api_signature'), 'VERSION' => '109.0', 'METHOD' => 'SetExpressCheckout', 'RETURNURL' => $returnUrl, 'CANCELURL' => $cancelUrl, 'PAYMENTREQUEST_0_AMT' => $orderTotal, 'PAYMENTREQUEST_0_CURRENCYCODE' => 'USD', 'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale', 'REQCONFIRMSHIPPING' => 0, 'NOSHIPPING' => 1, 'PROFILESTARTDATE' => date(DATE_ATOM, time() + 86400 * 30 * $plan->recurring_freq), 'L_BILLINGTYPE0' => 'RecurringPayments', 'L_BILLINGAGREEMENTDESCRIPTION0' => $product->name . " - " . $plan->name, 'PAYMENTREQUEST_0_CUSTOM' => 'RecurringPayment');
         $ecRequestParams = http_build_query($ecRequestParams);
         $curl = new Curl();
         $api_url = "https://api-3t.paypal.com/nvp?";
         if (Config::get('project.paypal_mode') == 'sandbox') {
             $api_url = "https://api-3t.sandbox.paypal.com/nvp?";
         }
         $api_url = $api_url . $ecRequestParams;
         $curl->ssl(false);
         $response = $curl->simple_get($api_url);
         $data = array();
         $key = explode('&', $response);
         if (is_array($key)) {
             foreach ($key as $temp) {
                 $keyval = explode('=', $temp);
                 if (isset($keyval[1])) {
                     $data[$keyval[0]] = $keyval[1];
                 }
             }
         }
         if (!empty($data['TOKEN'])) {
             $token = $data['TOKEN'];
             $payPalURL = Config::get('project.paypal_api_url') . "webscr?cmd=_express-checkout&token={$token}&useraction=commit";
             // Store Data in session
             Session::put('_product', $product_id);
             Session::put('_plan', $plan_id);
             Session::put('_buyer', $buyer_id);
             return Response::make(json_encode(array("success" => true, "url" => $payPalURL)));
         }
         Session::flash('error', "Payment processing error");
         return json_encode(array("error" => true, "message" => "Payment processing error"));
     }
     // details about payment
     $paymentDetails = new PayPal\EBLBaseComponents\PaymentDetailsType();
     // total order amount
     $paymentDetails->OrderTotal = new PayPal\CoreComponentTypes\BasicAmountType($currencyCode, $orderTotal);
     $paymentDetails->PaymentAction = 'Sale';
     $paymentDetails->Custom = $plan->id;
     $paymentDetails->OrderDescription = $product->name . " - " . $plan->name;
     $itemDetails = new PayPal\EBLBaseComponents\PaymentDetailsItemType();
     $itemDetails->Name = $product->name . " - " . $plan->name;
     $itemDetails->Amount = $orderTotal;
     $paymentDetails->PaymentDetailsItem[0] = $itemDetails;
     $setECReqDetails = new PayPal\EBLBaseComponents\SetExpressCheckoutRequestDetailsType();
     $setECReqDetails->PaymentDetails[0] = $paymentDetails;
     /*
      * (Required) URL to which the buyer is returned if the buyer does not approve the use of PayPal to pay you. For digital goods, you must add JavaScript to this page to close the in-context experience.
      */
     $setECReqDetails->CancelURL = $cancelUrl;
     /*
      * (Required) URL to which the buyer's browser is returned after choosing to pay with PayPal. For digital goods, you must add JavaScript to this page to close the in-context experience.
      */
     $setECReqDetails->ReturnURL = $returnUrl;
     $setECReqDetails->NoShipping = TRUE;
     $setECReqType = new PayPal\PayPalAPI\SetExpressCheckoutRequestType();
     $setECReqType->SetExpressCheckoutRequestDetails = $setECReqDetails;
     $setECReq = new PayPal\PayPalAPI\SetExpressCheckoutReq();
     $setECReq->SetExpressCheckoutRequest = $setECReqType;
     $paypalService = new PayPal\Service\PayPalAPIInterfaceServiceService($config);
     try {
         /* wrap API method calls on the service object with a try catch */
         $setECResponse = $paypalService->SetExpressCheckout($setECReq);
     } catch (Exception $ex) {
         return Response::make(json_encode(array("error" => true, "message" => "Payment processing error")));
     }
     if (isset($setECResponse)) {
         if ($setECResponse->Ack == 'Success') {
             $token = $setECResponse->Token;
             // Redirect to paypal.com here
             $payPalURL = Config::get('project.paypal_api_url') . "webscr?cmd=_express-checkout&token={$token}&useraction=commit";
             // Store Data in session
             Session::put('_product', $product_id);
             Session::put('_plan', $plan_id);
             Session::put('_buyer', $buyer_id);
             return Response::make(json_encode(array("success" => true, "url" => $payPalURL)));
         }
     }
 }