本篇文章给大家谈谈ecshop接口开发,以及ecshop开发手册对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享ecshop接口开发的知识,其中也会对ecshop开发手册进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何制作Ecshop可用的移动app的api标准接口
标题上加了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();
如何开发ecshop支付插件
目标一:搞懂ecshop的支付流程
选完商品,进入购物车页面,点击“结算中心”,页面跳转到flow.php?step=checkout,这个是订单确认操作。
在订单确认页面确定了支付方式,配送方式等可选择的信息之后,点击“提交订单”按钮,提交表单到flow.php?step=done生成订单。
flow.php?step=done这个操作中,跟支付有关的操作是生成支付代码。如下所示:
/* 取得支付信息,生成支付代码,在线支付代码*/
if ($order['order_amount'] 0)
{
$payment = payment_info($order['pay_id']);
//print_r($payment);exit;
include_once('includes/modules/payment/' . $payment['pay_code'] . '.php');
$pay_obj = new $payment['pay_code'];
$pay_online=$pay_obj-get_code($order,unserialize_config($payment['pay_config']));
//print_r(unserialize_config($payment['pay_config']));exit;
$order['pay_desc'] = $payment['pay_desc'];
$smarty-assign('pay_online', $pay_online);
}
通过支付方式的id通过函数payment_info()获取到支付方式的信息,在通过支付方式的pay_code包含对应的支付模块。
Ecshop把每一种支付方式都封装成一个类,比如支付宝支付方式,对应的文件是
includes\modules\payment\alipay.php,这个文件里面封装了类是alipay,这个类有两个方法,一个是生成支付代码的get_code(),根据不同支付接口所需的参数进行配置,然后生成一个字符串,这个字符串就是支付代码;另外一个是响应操作respond()。其中,接收响应的页面都是通过return_url(basename(__FILE__, '.php'))函数指定的,生成的链接是respond.php?code=,其中code后面的参数就是根据不同的支付方式而不同。Respond.php则根据不同的第三方支付返回的信息进行处理。
目标二:开发支付插件(为了便于讲解,再次开发ecshop自带的支付宝接口alipay,我们改名为alipay_test)
搞清楚支付的基本流程,尝试开发支付插件。假如要开发一个alipay_test.php插件。
首先,在语言包里面languages\zh_cn\payment新建一个alipay_test.php文件(这里复制alipay.php),然后修改里面的$LANG的下标,都加上_test,$_LANG['pay_button']可以不修改;
然后,在支付模块includes\modules\payment里面新建一个alipay_test.php,修改模块的基本信息跟语言包,封装一个类alipay_test,并且实现两个方法get_code()和respond();
最后登录后台查看支付方式。
ecshop接口缺陷
存在SQL注入漏洞。
攻击者可利用该漏洞获取数据库敏感信息。该漏洞影响ECShop2.x和3.x版本
ecshop接口开发,是一个典型的二次漏洞,通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞。
ecshop和微信对接的基础接口,就是只是包含简单的消息推送接口,以及操作界面的界面定义接口,其
ecshop接口开发他相关关注接口。
php 如何写一个webservice ecshop的一个登录接口,第一次写,希望讲的祥细点,能给贴上源码更加感谢。
可以根据这个改啊
ecshop接口开发!!
1:首先
ecshop接口开发我们必须配置好qq联合登陆
ecshop接口开发的配置文件。还有公共函数
ecshop接口开发,我们将
ecshop接口开发他放到ecshop的qq目录下面。
include_once(ROOT_PATH . 'qq/comm/config.php');
include_once(ROOT_PATH . 'qq/comm/utils.php');
include_once(ROOT_PATH . 'qq/oauth/get_request_token.php');
其次我们要验证下签名的合法性。
if (!is_valid_openid($_REQUEST["openid"], $_REQUEST["timestamp"], $_REQUEST["oauth_signature"]))
{
//demo对错误简单处理
echo "###invalid openid\n";
echo "sig:".$_REQUEST["oauth_signature"]."\n";
exit;
}
2:获取ecshop联合登陆qq的授权信息
$access_str = get_access_token($_SESSION["appid"], $_SESSION["appkey"], $_REQUEST["oauth_token"], $_SESSION["secret"], $_REQUEST["oauth_vericode"]);
//echo "access_str:$access_str\n";
$result = array();
parse_str($access_str, $result);
3:我们通过处理,得到qq联合登陆返回的数据进行json还原
$info = get_qq_user_info($_SESSION["appid"], $_SESSION["appkey"], $_SESSION["token"], $_SESSION["secret"], $_SESSION["openid"]);
4:分解参数,然后通过以下函数,完成qq联合登陆的ecshop注册和登陆
if(register($qqname, $qqname, $email, array()))
if($user-login($qqname, $qqname,isset($_POST['remember'])))
可以根据这个改啊!!
关于ecshop接口开发和ecshop开发手册的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
ecshop接口开发的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ecshop开发手册、ecshop接口开发的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~