原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
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站點:把數據返回給小程序
url:https://www.https.com/api.php?app=zcml&action=post&cat=17&count=2&page=1
app:小程序縮寫
action:功能(獲取文章,獲取分類,獲取幻燈片數據等)
cat:文章分類ID
count:每次獲取數量
page:頁數
<?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;
?>
<?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;
}