广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > ecshop整合登陆之返回接口写法

二次开发Ecshop二次开发

二次开发Ecshop二次开发

ecshop整合登陆之返回接口写法

其实整合登陆问题核心是对方是否提供相关的登录接口供你使用,比如支付宝所有接口的费用必须是3600+的合作商家,TX应该不会比这个少,至于其他的人人网不太清楚但是原理都是一样的。

这里我只写了返回的接口,正向接口,对方会给出demo的我就不累述

以支付宝为例:

<?
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
include_once(ROOT_PATH . 'includes/lib_transaction.php');
include_once(ROOT_PATH . 'includes/lib_passport.php');
$ip = real_ip();
if($ip!=="121.0.26.11"){//判断数据来源
header("Location: index.php\n");
exit;
}
function check_user($username){//检查用户是否存在
$sql = "SELECT user_id, password, salt " .
                   " FROM " . $GLOBALS['ecs']->table("users").
                   " WHERE user_name='$username'";
            $row = $GLOBALS['db']->getRow($sql);
            if (!empty($row)){
    return true;
   }else{
    return false;
    }
}
if($_REQUEST['user_id']!==""){//获取返回值 支付宝只返回了一个ID 其他的 可以参考接口说明获取 其实只要一个参数就够了
  $username="al".$_REQUEST['user_id'];//为返回的ID加一个 al 作为用户的用户名 TX接口好像有返回QQ号码 所以你可以使用返回的号码作为用户名
  $password=time();//随便弄个密码 反正没有用
  $email=$username.'@163.com';//支付宝没有返回邮箱 所以随便弄个 其他的可以根据返回情况而定
  $back_act ="user.php";
        /* 检测用户名 */
        if (check_user($username)!==false){//账号存在直接完成登录
   $GLOBALS['user']->set_session($username);
         $GLOBALS['user']->set_cookie($username);
            header("Location: user.php\n");
   exit;
        }else{//账号不存在就完成注册并自动登录
   $reg_date = time();
      $password =md5($password);
       $GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$email', '$username', '$password', '$reg_date', '$reg_date', '$ip')");//账号不存在 就写入数据库 并登陆
   $GLOBALS['user']->set_session($username);
         $GLOBALS['user']->set_cookie($username);
   header("Location: user.php\n");
   exit;
   }
}else{
  echo 'fail';
  exit;
  }
?>