简单的API接口请求与返回

请求的 api.php页面

 $time,
 				'rand' => $rand,
 				'sign' => $sign,
 				'msg'  => $msg,
 			); 
 		# cURL方式最常用的请求接口数据,还有用http请求接口
 		$ch = curl_init ();
		curl_setopt ( $ch, CURLOPT_URL, $url);
		curl_setopt ( $ch, CURLOPT_POST, 1 );//post请求方式
		curl_setopt ( $ch, CURLOPT_HEADER, 0 );
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );//以文件流的形式返回,而不是直接输出
		curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );//post提交data数据
		# curl_exec 请求并返回结果
		$return = curl_exec ( $ch );
		curl_close ( $ch );

		if($return === $msg){
			exit('验签成功');
		}
		exit('验签失败!');

 	}
 }
 $API = new Api();
 $API->Sign();


验签的 valida.php页面
valida();
}

class ValidaApi
{
	/**
	 * 验签,并返回结果
	 */
	public function valida(){
		$msg = $_POST['msg'];
		if($this->checkSign()){
			echo $msg;exit;//返回提交过来的随机文字
		}
	}

	/**
	 * 生成签名
	 */
	private function checkSign(){
		# 接受参数 重新的变量名为了区分和api.php页面传过来的变量名
		$signature = $_POST['sign'];
		$timestamp = $_POST['time'];
		$random    = $_POST['rand'];

		# 按照生成规则'A'
		$token  = TOKEN;
		$tmpArr = array($token, $timestamp, $random);
		sort($tmpArr, SORT_STRING);
		$tmpStr = implode($tmpArr); 
		$tmpStr = sha1($tmpStr);// 进行sha1加密

		# 对比两个签名是否一致
		if($tmpStr == $signature){
			return true;
		}else{
			return false;
		}
	}
}

你可能感兴趣的:(API)