コード例 #1
0
ファイル: class.api.php プロジェクト: GStepOne/CI
 /**
  * dts请求入口
  * @param 请求体 $request 格式为xml
  */
 public function exec($request, $token)
 {
     //file_put_contents('/tmp/x1',date('m-d H:i:s')." ".print_r($request,true)."\n",FILE_APPEND);
     //初始化 json格式
     $this->init($request, $token);
     //分解request xml 为数组
     $request_arr = $this->decompose($request);
     //记录请求日志
     $log_id = $this->write_log($request);
     //账号验证 + token码检验
     $check_result = $this->check($request);
     unset($request);
     /**
      * code msg data
      */
     if ($check_result['code'] == 0) {
         //获取具体处理对象
         core::Singleton('api.api_class');
         $obj = api_class::getInstance(str_replace('.', '_', $this->service_name));
         if (!$obj) {
             $check_result['code'] = 4;
             $check_result['msg'] = '接口不存在';
         } else {
             $obj->request_arr = $request_arr;
             $obj->comm_user_infor = $this->comm_user_infor;
             $obj->comm_wduser_infor = $this->comm_wduser_infor;
             $application_result = $obj->run();
             //获取处理结果 code ,msg , data
             unset($obj);
         }
         unset($request_arr);
         if ($application_result['code'] != 0) {
             //成功的情况
             $check_result['code'] = $application_result['code'];
             $check_result['msg'] = $application_result['msg'];
         }
         $check_result['data'] = $application_result['data'];
         unset($application_result);
     }
     //file_put_contents('/tmp/debug',date('m-d H:i:s')." ".print_r($check_result,true)."\n",FILE_APPEND);
     //格式化响应数据
     $response = $this->format($check_result);
     unset($check_result);
     //记录响应
     $this->update_log($log_id, $response);
     return $response;
 }
コード例 #2
0
ファイル: api.php プロジェクト: anush-cr/campusbookie
 public function __construct($request, $origin)
 {
     parent::__construct($request);
     //echo $_SERVER['HTTP_ORIGIN'];
     //if($origin != 'campusbookie')
     //throw new Exception("not authorised");
     try {
         $user_id = $this->authenticate_user($this->args);
     } catch (Exception $e) {
         if ($this->action == 'user_post' || $this->controller == 'search' || $this->controller == 'books') {
             $user_id = null;
         } else {
             $error = $e->getMessage();
             if ($error == "no token sent" && $this->controller == 'cart') {
                 $user_id = null;
             } else {
                 $data = array("status" => "error", "message" => $error, "data" => null);
                 $this->response($data, $e->getCode());
                 exit;
             }
         }
     }
     $this->args['user_id'] = $user_id;
 }
コード例 #3
0
function sendMessages($result)
{
    $start_time = date(TIME_FORMAT);
    $api_class = new api_class();
    $api_class->mobile = $_REQUEST['mobile'];
    $api_class->username = $_REQUEST['username'];
    $api_class->password = $_REQUEST['password'];
    $api_class->api_id = $_REQUEST['api_id'];
    $api_class->text = $_REQUEST['text'];
    //先根据短信内容计算credit.
    if ($api_class->text != "") {
        //根据短信内容计算花费的credit.
        $api_class->cost = countCharacters($api_class->text);
        if (preg_match('/[\\x80-\\xff]./', $api_class->text)) {
            //中文,全部专程unicode码
            $api_class->text = getUnicode($api_class->text);
            $unicode = 1;
        } else {
            //是英文的话再把空格转换下.
            $api_class->text = str_replace(' ', '%20', $_REQUEST['text']);
            $message->message_content = ereg_replace(Chr(10), '%0A', $message->message_content);
            $message->message_content = ereg_replace(Chr(13), '', $message->message_content);
        }
    }
    $api = $api_class->checkAPI();
    if (!$api) {
        $result["status"] = "fail";
        $result["message"] = "params error";
    } else {
        $mobile_arr = explode(",", $api_class->mobile);
        //print_r($mobile_arr);
        if ($api->balance < count($mobile_arr) * $api_class->cost) {
            $result["status"] = "fail";
            $result["message"] = "no enough bulance";
        } else {
            $success_list = "";
            //成功列表
            $fail_list = "";
            //失败列表
            $success_count = 0;
            //成功发送次数
            $fail_count = 0;
            //失败发送次数
            //循环发送短信
            for ($i = 0; $i < count($mobile_arr); $i++) {
                if ($mobile_arr[$i] == "") {
                    continue;
                }
                $mobile_arr[$i] = formatMobile($mobile_arr[$i]);
                $url = "http://api.clickatell.com/http/sendmsg?user="******"&password="******"&api_id=" . $api->api_id . "&to=" . $mobile_arr[$i] . "&text=" . $api_class->text . "&concat=" . $api_class->cost;
                if ($api->api_type == 1) {
                    $url .= "&from=" . $api->sender_name;
                }
                //如果短信内容包含中文,需要加unicode=1
                if ($unicode == 1) {
                    $url .= "&unicode=1";
                }
                //echo $url . "<br />";
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                $content = curl_exec($ch);
                curl_close($ch);
                //判断返回的内容是否包含ID
                if (strpos($content, "ID:") !== false) {
                    //发送成功
                    if ($success_count == 0) {
                        $success_list = "[" . $mobile_arr[$i] . "]";
                    } else {
                        $success_list .= ",[" . $mobile_arr[$i] . "]";
                    }
                    $success_count++;
                } else {
                    //发送失败
                    $message->sms_record_remark = $content;
                    if ($fail_count == 0) {
                        $fail_list = "[" . $mobile_arr[$i] . "]";
                    } else {
                        $fail_list .= ",[" . $mobile_arr[$i] . "]";
                    }
                    $fail_count++;
                }
            }
            $message = new message();
            $message->api_id = $api->api_id;
            $message->sms_record_time = date(TIME_FORMAT);
            $message->sms_success_list = $success_list;
            $message->sms_fail_list = $fail_list;
            $message->sms_success_count = $success_count;
            $message->sms_fail_count = $fail_count;
            $message->sms_content = $api_class->text;
            $message->user_id = $api->user_id;
            $message->company_id = $api->company_id;
            $message->department_id = $api->department_id;
            $end_time = date(TIME_FORMAT);
            $message->sms_record_remark .= "start at " . $start_time . "; end at " . $end_time;
            $company = new company();
            $company->company_id = $api->company_id;
            $company->deductBalance($message->sms_success_count * $api_class->cost);
            $message->sendMessage();
            $result["status"] = "success";
            $result["message"] = "success:" . $success_count . ",fail:" . $fail_count;
        }
    }
    return $result;
}
コード例 #4
0
ファイル: redirect.php プロジェクト: novichkovv/dashboard
<?php

/**
 * Created by PhpStorm.
 * User: asus1
 * Date: 16.03.2016
 * Time: 14:03
 */
session_start();
require_once 'config.php';
require_once CORE_DIR . 'registry.php';
require_once CORE_DIR . 'autoload.php';
if (!empty($_GET['code'])) {
    $api = new api_class();
    $api->getAuthCode($_GET['code']);
}
//$token = $_GET['access_token'];
//$params = array(
//    "grant_type" => "refresh_token",
//    "code" => $_GET['code'],
//    "redirect_uri" => REDIRECT_URL,
//    "scope" => self::$scopes,
//    "client_id" => APP_ID,
//    "client_secret" => APP_SECRET,
//    "refresh_token" => $refresh_token
//);
//$curl = curl_init(EXCHANGE_TOKEN_URL);
//curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
//$response = curl_exec($curl);