老司机三级_天天干天天操天天爽_女人被爽到娇喘呻吟视频_久久国产精品99久久久大便 - 亚洲日本系列

實現:多個小程序用一個https站點

  • • 發表于 9年前
  • • 作者 Roluce
  • • 4127 人瀏覽
  • • 1 條評論
  • • 最后編輯時間 9年前
  • • 來自 [技 術]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

背景:

1:win2008+IIS7環境只能搭建一個https站點
2:小程序后臺必須用https搭建

ps:win2008+IIS有搭建多個https的偏方,不過得IIS修改配置文件,一重啟IIS得重新配置,很不方便`


正常來說:
一個win2008+IIS服務器只能讓一個小程序用


問題解決:

解決方法:讓這個唯一的https站點做路由

1:https站點:接收小程序發來的請求參數,根據參數重新組織請求url
2:https站點:模擬http向真正的小程序后臺發送請求
3:http站點:小程序后臺接收參數、返回請求的數據
4:https站點:接收返回的數據
5:https站點:把數據返回給小程序


原理圖:

實現源碼

1:小程序請求接口

url:https://www.https.com/api.php?app=zcml&action=post&cat=17&count=2&page=1

app:小程序縮寫
action:功能(獲取文章,獲取分類,獲取幻燈片數據等)
cat:文章分類ID
count:每次獲取數量
page:頁數


2:https站點php代碼(路由)
<?php

//每次請求必有參數(小程序名、功能)
$app = $_GET['app'];        //應用名稱縮寫
$action = $_GET['action'];  //功能

/********************
 * 1:拼裝url
 ********************/
 switch($app){

    //《軸承名錄》小程序
    case "zcml":

        //功能
        switch($action){

            //獲取文章數據
            case "post":
            $cat=$_GET['cat'];      //分類id
            $count=$_GET['count'];  //每頁數據量
            $page=$_GET['page'];    //頁數
            $url = "http://www.http.com/xcxapi.php?action={$action}&cat={$cat}&count={$count}&page={$page}";
            break;

            //獲取xx數據
            case "index":
            break;
        }

    break;

    //其他小程序(待)
    case "other":
    break;     

}


/********************
 * 2:模擬http獲取數據
 ********************/

$timeout = 5; 
$ch = curl_init();                              //初始化curl   
curl_setopt($ch, CURLOPT_URL, $url);            //設置訪問的url地址   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //參數為1表示傳輸數據,為0表示直接輸出顯示。 
curl_setopt($ch, CURLOPT_HEADER, 0);            //參數為0表示不帶頭文件,為1表示帶頭文件  

/*curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);   //獲取https需要加上此
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);   //獲取https需要加上此*/

$output = curl_exec($ch);   //執行命令并把獲取的數據賦值給$output
curl_close($ch);            //關閉URL請求

echo $output;

?>
3:http站點php代碼(小程序后臺)
<?php

/***wp框架************/ 
if ( !isset($wp_did_header) ) {
    $wp_did_header = true;
    // Load the WordPress library.
    require_once( dirname(__FILE__) . '/wp-load.php' );   
    // Set up the WordPress query.
    wp();
}
/***wp框架************/ 




//獲取功能
$action = $_GET['action'];


switch($action){

    //獲取文章數據
    case "post":

    //接收傳參
    $cat=$_GET['cat'];
    $count=$_GET['count'];
    $page=$_GET['page'];


    //拼裝篩選參數
    $args = array(    
        'posts_per_page' => $count,  //每頁數量 
        'paged' => $page,            //第幾頁   
        'post_type' => 'dealer',      //自定義文章類型名稱(可省略自動識別)
        'tax_query' => array(         //自定義分類(指定)
            array(
                'taxonomy' => 'cdealer',//自定義分類法名稱
                'terms' =>$cat //id為64的分類。也可是多個分類array(12,64)
                ),
            )
        );

    //執行時篩選
    query_posts($args);  //本頁不要這句,自定義分類才用

    $arr=[];
    //對文章數據進行重新封裝
    while(have_posts()){
        the_post();
        $title = get_the_title();
        $sale = get_field("sale");
        $tel = get_field("tel");
        $addr = get_field("addr");

        $arr[] = ["title"=>$title,"sale"=>$sale,"tel"=>$tel,"addr"=>$addr];  
    }  

    echo json_encode($arr);


    break;




    //其他
    case "other":
    break;
}
分享到:
1條評論
Ctrl+Enter
作者

Roluce

Roluce

APP:0 帖子:50 回復:112 積分:3610

已加入社區[3218]天

山東_聊城_qq:635068

作者詳情》
Top