打通应用系统商接口要求
[TOC]
应用说明
- 1: 此应用中心思想是 通过认证后,免登录跳转
- 2: 此文件展示系统商系统需要返回的接口数据示例
- 3: 认证(检查已有账户), 注册, 登录逻辑需要系统商根据自身系统编辑逻辑; 认证,注册需要返回值, 数据格式,参考返回值; 登录则是有框架重定向到 系统商编辑登录方法
配置
双方系统需共同绑定key,key默认 0KRJ04auDJJof3fNv, 上线之后需更换(建议后台做上配置,用户可随时更换)
框架请求
说明: 框架应用请求共三个方法, 认证(检查已有账户), 注册, 登录 框架执行逻辑: 1: 认证->登录 2:注册->登录 下面是访问系统商接口的路由:
http://xx.com/路由? 加密字符串
注: 加密字符串,框架通过 双方系统共同的 key,通过加密获得的加密字符串,加密字符串解密之后,参数为数组格式, 具体参考参数, 解密方法参考代码示例, 对于加解密方式, 可以和平台方沟通, 用不同的加密方式
请求方式
- GET
参数
解密之后的参数: check: ["username"=>"ddad","pasword"=>"dada","method"=>"check"] register: ["username"=>"ddad","pasword"=>"dada","method"=>"register"] login: ["username"=>"ddad","method"=>"login"]
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
username | 是 | string | 用户名, 此参数在三个方法中必存在 |
pasword | 否 | string | 密码, 此参数在 认证,注册 中必存在 |
method | 是 | string | 方式: check: 认证, register: 注册, login:登录 |
系统商系统代码示例
<?php
/*
* 注意:
* 1: 此文件展示 接口示例,
* 2: 此应用中心思想是 通过认证后,免登录跳转
*/
//可根据自身系统编辑逻辑
class ktadmin
{
protected $key = "0KRJ04auDJJof3fNv"; //建议总后台做个配置,可以直接修改此处key(修改此key,需要和框架配置统一),也可以不做
private $data; //解密后的参数
public function __construct()
{
$this->data = $this->getParam(); //获取传的参数,数组
}
//已有账户认证, 根据自身系统编写
public function check(){
$data = $this->data; //["username"=>"ddad","pasword"=>"dada","method"=>"check"]
//认证逻辑
//根据账户和密码查询账户, 存在即返回值 success, 失败为 error,
// $msg 即为状态描述
$code = "success";
return json(['code'=>$code,"msg"=>$msg]);
}
//注册账户, 根据自身系统编写
public function register(){
$data = $this->data; //["username"=>"ddad","pasword"=>"dada","method"=>"register"]
//注册逻辑
//根据账户,密码注册账户, 如果还需其它字段,可与平台沟通, 注册即返回值 success, 失败为 error,
// $msg 即为状态描述,
$code = "success";
return json(['code'=>$code,"msg"=>$msg]); //返回值结构
}
//登录账户, 根据自身系统编写
public function login(){
$data = $this->data; //["username"=>"ddad","method"=>"login"]
//登录逻辑,注意,此时参数只有账户
//认证通过之后, 框架会通过header跳转系统商系统,
//登录跳转逻辑
$url = "https://www.baidu.com";
header($url);
}
//获取参数
private function getParam()
{
$data = $this->decrypt(); //执行解密获取参数
if (!$data || !isset($data['username']) || !$data['username'] || !isset($data['method']) || !$data['method']) {
exit('参数错误');
}
return $data;
}
//解密
private function decrypt()
{
$str = $_SERVER['QUERY_STRING']; //确保此参数为加密后的字符串, 不同框架获取参数方式不一样, 可与平台方沟通调整参数传递方式,
if(!$str) return [];
$str = str_replace(array('-','_'),array('+','/'),$str);
$str = base64_decode($str);
$key = md5($this->key);
$lenKey = strlen($key);
$sign = substr($str,0,$lenKey);
if($sign != $key) exit('参数错误');
$paramStr = substr($str,$lenKey);
$param = json_decode(base64_decode($paramStr),true);
return $param;
}
}
系统商需要返回的结果
注: 认证, 注册, 需要有返回值, 登录 则会有框架 重定向到系统商系统login方法 注: 返回值需要按一定规则 返回值示例, {"code":"success","mgs":"认证成功"}