应用背景:
实现玩主电影票接口(新空气开发)的查询和下单等功能;
服务器架构:
apache+php
fgparams.cfg:
cities=http://qa.fun-guide.mobi:7005/v2/cities
areas=http://qa.fun-guide.mobi:7005/v2/areas
cinemas=http://qa.fun-guide.mobi:7005/v2/cinemas
halls=http://qa.fun-guide.mobi:7005/v2/halls
seats=http://qa.fun-guide.mobi:7005/v2/seats
movies=http://qa.fun-guide.mobi:7005/v2/movies
shows=http://qa.fun-guide.mobi:7005/v2/shows
seat4show=http://qa.fun-guide.mobi:7005/v1/seat4show
createOrder=http://qa.fun-guide.mobi:7005/v1/createOrder
confirmOrder=http://api.funguide.com.cn/v1/confirmOrder
cancelOrder=http://qa.fun-guide.mobi:7005/v1/cancelOrder
orders=http://qa.fun-guide.mobi:7005/v1/orders
key=test
secret=9de35499658b6dd95643a98d92cc2c92
sig_name=sig
fgtool.php:
<?php
header("Content-type: text/html; charset=utf-8");
//$param_name="areas";
$param_file_path="./fgparams.cfg";
$sig_nm_name="sig_name";
$key_name="key";
$secret_name="secret";
$url;
$sig_nm;
$key;
$secret;
$param_file=file($param_file_path);
foreach($param_file as $param_line) {
$param_line=str_replace(array("\n","\r"),"",$param_line);
$line_setting=explode("=", $param_line);
if (!strcmp($line_setting[0], $param_name)) {
$url = $line_setting[1];
//echo $url."<br />";
}
elseif (!strcmp($line_setting[0], $sig_nm_name)) {
$sig_nm = $line_setting[1];
}
elseif (!strcmp($line_setting[0], $key_name)) {
$key = $line_setting[1];
}
elseif (!strcmp($line_setting[0], $secret_name)) {
$secret = $line_setting[1];
}
}
$params=$key_name."=".$key;
$keys=array_keys($_GET);
foreach($keys as $key) {
$params=$params."&".$key."=".$_GET[$key];
}
$md5_value=md5($params.$secret);
$params=$params."&".$sig_nm."=".$md5_value;
$url=$url."?".$params;
echo "url=".$url."<br />";
$page = file_get_contents($url);
echo $page;
?>
areas.php(获取地区列表)
<?php
$param_name="areas";
include "./fgtool.php";
?>
cancelOrder.php(取消订单)
<?php
$param_name="cancelOrder";
include "./fgtool.php";
?>
。。。。。。
测试代码:
funguide.php
<?php
if (!is_array($_GET)) {
echo "<p>error : no _GET array!</p>";
return;
}
elseif (count($_GET) < 1) {
echo "<p>error : _GET has not enough elements!</p>";
return;
}
elseif (!isset($_GET["key"])) {
echo "<p>error : _GET has no param key!</p>";
print_r(array_keys($_GET));
exit(0);
}
echo file_get_contents("php://input");
echo $_SERVER['REQUEST_METHOD'];
$secret='9de35499658b6dd95643a98d92cc2c92';
$params='key='.$_GET["key"];
$sign=md5($params.$secret);
//echo "sign=".$sign.", sig=".$_GET["sig"];
if (strcmp($sign, $_GET["sig"]))
echo "<p>check sig error!</p>";
else {
$url = "http://qa.fun-guide.mobi:7005/v2/cities?$params&sig=$sign";
//$url = "http://qa.fun-guide.mobi:7005/v2/cities?key=test&sig=b89626e06ef2daa8061ed12fb8ba1883";
$page = file_get_contents($url);
echo $page;
}
?>