调用api进行线下应用开发流程中构造签名分为哪些步骤?

调用api进行线下应用开发流程中构造签名分为哪些步骤?,第1张

在调用API进行线下应用开发流程中,构造签名一般分为以下几个步骤:

获取API接口参数:首先需要获取API接口所需的参数,包括API请求的URL、请求方法、请求参数、请求头等。

参数排序:将所有请求参数按照参数名的ASCII码从小到大排序(字典序),如果遇到相同的参数名,则按照参数值的ASCII码从小到大排序。

拼接参数:将排序后的参数按照“参数名=参数值”的格式用“&”符号拼接成一个字符串。

添加密钥:在拼接后的字符串末尾添加上应用密钥(App Secret)。

进行签名:对拼接后的字符串进行加密生成签名(通常使用MD5或SHA1等加密算法),得到签名字符串。

将签名加入请求参数中:将生成的签名字符串加入请求参数中,作为请求的一个参数。

发送请求:使用>

需要注意的是,不同的API接口可能有不同的签名算法和参数要求,因此在构造签名时需要仔细查阅API文档,并根据实际情况进行调整。

接口使用方法:
1接口调用者先申请分配一个clientid,clientsecret,并提供给接口提供者(服务器)一个可访问的callbackURL(用于接口access_token)。
2接口调用者使用clientid, clientsecret作为参数,向接口提供者发送请求。
接口提供者访问callbackURL发送access_token(有时间限制,超时后重新获取)。
3接口调用者使用access_token作为参数,调用其他接口获取相关信息。
4接口调用者在access_token超时后重新获取access_token。

有个疑问:
仅为了防止非法用户随意使用接口,需要这个复杂的机制吗?
接口使用>方法/步骤
1
首先
1如果想快速开发,没有自己的服务器,还是推荐使用云API的数据云。 2不使用云API的数据云,可能是因为有web版且已经有商用数据。 3不使用云API的数据云,需自己写数据接口,即客户端发送请求接收处理与生成json数据给客户端进行交互。 4感谢APICloud提供新的APP开发方式。 其实也不难,使用apiajax进行请求即可。PHPer,以下使用演示使用PHP,数据库使用Mysql,JAVA党或者NET党请自行coding
2
连接到数据库(文件放在服务器上),服务器端输出JSON
<php
/
配置连接数据库信息
/
$host='localhost';//主机
$user='root';//数据库账号
$password='';//数据库密码
$database='test';//数据库名
//打开数据库连接
$db=mysqli_connect($host,$user,$password,$database);
//判断连接是否成功
if($db){
$db->query("set names utf8");//设置UTF-8编码(JSON的唯一编码)
}else{
echo 'DATABASE_CONNECTION_DIE';//数据库连接失败
exit;
}
//sql查询语句
$sql="select id,name,sex,age from person";
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
$person_info[]=$row;//将取得的所有数据赋值给person_info数组
}
echo json_encode($person_info);//输出JSON
>
复制代码
输出的JSON示例:
[{"id":"1","name":"\u54c8\u5c3c","sex":"\u7537","age":"22"},{"id":"2","name":"\u5c0f\u9648","sex":"\u5973","age":"21"},{"id":"3","name":"\u5c0f\u767d","sex":"\u672a\u77e5","age":"1"}]
复制代码
3
测试用的数据库SQL语句
--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- 表的结构 `person`
--

CREATE TABLE IF NOT EXISTS `person` (
`id` int(11) NOT NULL,
`name` varchar(5) NOT NULL,
`sex` varchar(2) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `person`
--

INSERT INTO `person` (`id`, `name`, `sex`, `age`) VALUES
(1, '哈尼', '男', 22),
(2, '小陈', '女', 21),
(3, '小白', '未知', 1);

复制代码

搞定服务器端输出JSON后,重点来了
4
端API使用apiajax读取接口数据
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="maximum-scale=10,minimum-scale=10,user-scalable=0,width=device-width,initial-scale=10"/>
<title>test</title>
</head>
<body>
<button onclick="showPersonInfo()">点我获取数据</button>
</body>
<script type="text/javascript" src="/script/apijs"></script>
<script>
function showPersonInfo(){
apishowProgress();//显示加载进度框
//使用apiajax请求数据,具体使用方法和参数请看官方文档,这里使用get方法演示
apiajax({
url:'>简单来说,你使用的api接口会把参数消息传到给api服务器,然后api服务器返回一个处理好消息给你。想象成函数过程的话,就是你使用了这个函数(就是传参),知道返回类型,能得到返回值,具体函数体(也就是api服务器)是怎么做到的你不需要知道。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13499884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-19
下一篇 2023-08-19

发表评论

登录后才能评论

评论列表(0条)

保存