原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处
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;
}