如何制作Ecshop可用的移动app的api标准接口

如何制作Ecshop可用的移动app的api标准接口,第1张

标题上加了Ecshop,其实也只是个噱头,增加搜索量而已,本文写的内容并不局限于Ecshop上。API接口,通咐乱常是供移动APP端调用的,制作api的前提是必须对业务逻辑和代码逻辑十分熟悉了,不然可能会事倍功半,甚至是中途夭折。

首先制作的语言仍旧是PHP,API的返回数据用的是JSON,没有用XML,为什么要用JSON而不用XML,这个问题,懂的人自然懂。先来创建JSON的model。

// 描述:内部使用API JSON类

// 名称:json

// 作者:tiandi

// 版本:0.0.1

// 生成时间:2015.4.23

// 修订时间:2015.4.23

class json {

// status : string : 状态码

// msg : string : 说明

// content: array : 内容

var $status

var $msg

var $content

function json(){

}

function set_status($status) {

$this->status = $status

}

function set_msg($msg) {

$this->msg = $msg

}

function set_content($content) {

$this->content = $content

}

function create_json() {

$arr = array()

$arr['api_status'] = $this->status

$arr['api_msg'] = $this->msg

if($arr['api_status'] == '0') {

array_unshift($this->content,$arr)

echo urldecode(json_encode($this->content))

}

else

{

echo urldecode(json_encode($arr))

}

}

function check_env($request){

//check appid

if(!isset($request['appid'])) {

$this->set_status("99")

$this->set_msg("Need appid.")

echo $this->create_json()

exit

}

elseif(!$this->compare($request['appid'],MY_APPID)) {

$this->set_status("98")

$this->set_msg("Appid is invalid.")

echo $this->create_json()

exit

}

//check timestamp

elseif(!isset($request['timestamp'])) {

$this->set_status("97")

$this->set_msg("Need timestamp.")

echo $this->create_json()

exit

}

//check sign

elseif(!isset($request['sign'])) {

$this->set_status("96")

$this->set_msg("Need sign.")

echo $this->create_json()

exit

}

elseif(!$this->compare($request['sign'],$this->饥碧create_sign($request))) {

$this->set_status("95")

$this->set_msg("Sign is invalid.")

echo $this->create_json()

exit

}

}

function compare($str1,$str2) {

if($str1 == "'".$str2."'" || $str1 == $str2 || "'".$str1."'" == $str2)

return true

else

return false

}

/************************** 生成签名 ***************************/

function create_sign($request) {

//签名方法衡肢档

}

然后用下面方法生成json接口数据,$arr为数据库查询返回的数组。

$json->set_status("0")

$json->set_msg("success")

$json->set_content($arr)

$json->create_json()

存在SQL注入漏渗培洞。

攻击者可利用该漏洞获取数据库敏感信息。该漏洞影旅喊纳响ECShop2.x和3.x版本,是一个典型的二次漏洞,通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞。

ecshop和微信对接的基础接口,就是只是包含简单的消息推送接口,以及 *** 作界面的界面定义接拆没口,其他相关关注接口。

1:tiny shop 免费开源

2:dbshop 全开源,随便改

第一个已经支持PHP7,官方是2个月一个版本,跟得上时岩稿代。蔽明

第二个是作者爱好粗并孝,ZF2框架,作者也和勤快更新,功能基本稳定


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

原文地址: http://outofmemory.cn/yw/12566190.html

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

发表评论

登录后才能评论

评论列表(0条)

保存