B2C商城
使用手册
设置模块
模板设置
数据库管理
插件管理
积分管理
小程序直播
第三方账号注册流程
网站模块
商品模块
订单管理模块
供应商模块
数据模块
微商城模块
小程序&APP模块
常见问题
其他
API接口
用户中心接口
商品相关接口
开发手册
开发教程
基础教程
视频教程
TP视频教程
签名方式
0. TPshop1.2.8版本起,登录后的所有操作加了token参数验证,并且可以在BaseController设置token超时时间
1.TPshop APP 所有接口必须统一签名,签名不通过所有接口不能调用。(除 获取服务器时间, 缩略图 等不关紧要接口...)
2.APP端签名写在所有接口请求统一口, 写一遍供所有接口调用。
3.签名秘钥必须保证不被泄露
所有api 接口必须通过签名验证, 签名验证不通过, 所有事情都不能做, 首先跟服务器端程序员双方协定一个秘钥, 这个秘钥两边一致
签名方式看如下例子:
例如调用用户登录接口需要签名才能用
http://www.tpshop.com/index.php?m=Api&c=User&a=login
参数列表
参数 | 是否必须 | 说明 |
username | 必须 | 用户名 |
password | 必须 | 密码 |
unique_id | 必选 | 手机端唯一标识 类似web pc端sessionid |
time | 必须 | 当前时间戳 |
sign | 必须 | 签名秘钥 |
/** 看这个登录接口有三个参数, username,password,unique_id 假设有个用户登录, 用户名: zhangsan 密码:123456 unique_id:abc 那么先讲三个参数名进行升序排序, 排序后结果[0] => password [1] => unique_id [2] => username 然后对这三个参数的值进去加密 得到一个签名,加密方式 md5(参数值1+参数值2+参数值N… +时间戳+秘钥) 假设你们双方协定的秘钥为 soubao 那么签名方式为 sing = md5('123456'+'abc'+'zhangsan'+'当前时间戳'+'soubao'); //其实就是md5(密码+unique_id+用户名+'当前时间戳'+秘钥) md5 里面的先后顺序根据键名排序来得到这个签名后, 本身这个登录接口只需传递 username,password,unique_id 三个参数的, 这个时候需要多传递两个参数把 sing 和 time 时间戳也传给服务器, 而时间错需要通过服务器时间戳接口获取, 详细参见获取服务器时间戳 api 接口 */
如果看了不懂 请看 《TPshop 万能签名原理机制视频教程》详细讲解
视频地址 http://www.99soubao.com/tpshop_video/video.html