提交 f107554e 编写于 作者: G gongfuxiang

小程序与H5互通

上级 aadfb652
......@@ -11,6 +11,32 @@
// 应用公共文件
/**
* 判断当前是否小程序环境中
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-06-29T22:21:44+0800
*/
function MiniAppEnv()
{
if(!empty($_SERVER['HTTP_USER_AGENT']))
{
// 微信小程序 miniProgram
if(stripos($_SERVER['HTTP_USER_AGENT'], 'miniProgram') !== false)
{
return 'weixin';
}
// 支付宝客户端 AlipayClient
if(stripos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient') !== false)
{
return 'alipay';
}
}
return null;
}
/**
* RGB 转 十六进制
* @author Devil
......
......@@ -160,47 +160,44 @@ class Common extends Controller
}
/**
* [IsLogin 登录校验]
* [CommonInit 公共数据初始化]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-09T11:43:48+0800
*/
protected function IsLogin()
private function CommonInit()
{
if(empty($this->user))
// 用户数据
$this->user = UserService::LoginUserInfo();
// 公共参数
$this->params = input();
// 推荐人
if(!empty($this->params['referrer']))
{
if(IS_AJAX)
{
exit(json_encode(DataReturn('登录失效,请重新登录', -400)));
} else {
return $this->redirect('index/user/logininfo');
}
session('share_referrer_id', $this->params['referrer']);
}
}
/**
* [CommonInit 公共数据初始化]
* [IsLogin 登录校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-09T11:43:48+0800
*/
private function CommonInit()
protected function IsLogin()
{
// 用户数据
if(session('user') !== null)
{
$this->user = UserService::LoginUserInfo();
}
// 公共参数
$this->params = input();
// 推荐人
if(!empty($this->params['referrer']))
if(empty($this->user))
{
session('share_referrer_id', $this->params['referrer']);
if(IS_AJAX)
{
exit(json_encode(DataReturn('登录失效,请重新登录', -400)));
} else {
return $this->redirect('index/user/logininfo');
}
}
}
......
......@@ -35,13 +35,32 @@ class UserService
*/
public static function LoginUserInfo()
{
// 参数
$params = input();
// 用户数据处理
$user = null;
if(APPLICATION == 'web')
{
return session('user');
// token仅小程序浏览器环境和api接口环境中有效
if(!empty($params['token']) && in_array(MiniAppEnv(), ['weixin', 'alipay', 'baidu']))
{
$user = cache(config('shopxo.cache_user_info').$params['token']);
if(isset($user['id']))
{
self::UserLoginRecord($user['id']);
}
} else {
$user = session('user');
}
} else {
$params = input();
return empty($params['token']) ? null : cache(config('shopxo.cache_user_info').$params['token']);
if(!empty($params['token']))
{
$user = cache(config('shopxo.cache_user_info').$params['token']);
}
}
return $user;
}
/**
......
......@@ -172,7 +172,7 @@ App({
params = "&" + params;
}
var user = this.get_user_cache_info();
var token = (user == false) ? 0 : user.token;
var token = (user == false) ? '' : user.token || '';
return (
this.data.request_url +
"index.php?s=/" + m + "/" + c + "/" + a +
......@@ -553,7 +553,7 @@ App({
switch(type) {
// web
case 0 :
my.navigateTo({url: '/pages/web-view/web-view?url='+value});
my.navigateTo({url: '/pages/web-view/web-view?url='+encodeURIComponent(value)});
break;
// 内部页面
......
......@@ -4,8 +4,24 @@ Page({
web_url: null,
},
onLoad(option) {
// url处理
var url = decodeURIComponent(option.url) || null;
if (url != null)
{
// token处理
if (url.indexOf('{token}') >= 0)
{
var user = app.get_user_cache_info();
var token = (user == false) ? null : user.token || null;
if (token != null)
{
url = url.replace(/{token}/ig, token);
}
}
}
this.setData({
web_url: option.url || null,
})
web_url: url,
});
}
});
\ No newline at end of file
......@@ -61,7 +61,7 @@ App({
// 请求地址
// request_url: "{{request_url}}",
request_url: 'http://tp5-dev.com/',
request_url: 'https://test.shopxo.net/',
//request_url: 'https://test.shopxo.net/',
// 基础信息
application_title: "{{application_title}}",
......@@ -432,7 +432,7 @@ App({
switch (type) {
// web
case 0:
wx.navigateTo({ url: '/pages/web-view/web-view?url=' + value });
wx.navigateTo({ url: '/pages/web-view/web-view?url=' + encodeURIComponent(value) });
break;
// 内部页面
......
......@@ -4,8 +4,24 @@ Page({
web_url: null,
},
onLoad(option) {
// url处理
var url = decodeURIComponent(option.url) || null;
if (url != null)
{
// token处理
if (url.indexOf('{token}') >= 0)
{
var user = app.get_user_cache_info();
var token = (user == false) ? null : user.token || null;
if (token != null)
{
url = url.replace(/{token}/ig, token);
}
}
}
this.setData({
web_url: option.url || null,
})
web_url: url,
});
}
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册