ShopNC中使用QQ互联遇到的坑

在ShopNC中启动QQ互联,遇到不少坑,小记一下:

1. 在QQ互联中填写回调地址

按照shop/api.php中的代码:

elseif ($_GET['act'] == 'toqq'){
   define('SHOP_SITE_URL',$site_url);
   if ($_GET['op'] == 'g'){
      include 'api/qq/oauth/qq_callback.php';
   }else{
      include 'api/qq/oauth/qq_login.php';
   }
}

回调地址应该是/api.php?act=toqq&op=g,但是这样的带hash的地址QQ不允许使用。

因此只好在新建一个shop/api_qq.php,在最后

include 'api/qq/oauth/qq_callback.php';

2. 在跳转到QQ登陆页面后,回调时出错

QQ返回的出错信息是

error:
100007
msg :
param access token is wrong or lost 

经过反复查找原因后发现,原来是session引起的。

因为shopnc采用单一入口方式,默认在index.php下会调用core\framework\core\base.php中的Base::run()

后者调用self::init(),后者再调用self::start_session(),在start_session的最后:

//默认以文件形式存储session信息
session_save_path(BASE_DATA_PATH.'/session');
session_start();
将session的保存地址修改为了data/session。

而QQ的回调地址未经过这个单一入口,也就没有修改session的保存地址,经查看phpinfo可知在:

session.save_path /var/lib/php/session
这样就导致了QQ互联回调后无法读取session中的token(防csrf),从而出错。


解决方案:

1. 修改start_session,不让其修改session_path。

2. 使用memcache、Redis等代替文件来保存session。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 1 平台管理 - 1 - 1.1 登录 - 1 - 1.2 平台导航 - 1 - 1.3 设置 - 3 - 1.3.1 站点设置 - 3 - 1.3.2 账号同步 - 4 - 1.3.3 上传设置 - 6 - 1.3.4 SEO设置 - 9 - 1.3.5 邮箱短信 - 9 - 1.3.6 支付方式 - 11 - 1.3.7 权限设置 - 12 - 1.3.8 快递公司 - 13 - 1.3.9 运单模板 - 14 - 1.3.10 地区管理 - 15 - 1.3.11 配送区域 - 16 - 1.3.12 清理缓存 - 16 - 1.4 商品 - 17 - 1.4.1 商品分类 - 17 - 1.4.2 品牌管理 - 18 - 1.4.3 商品管理 - 19 - 1.4.4 类型管理 - 21 - 1.4.5 规格管理 - 23 - 1.4.6 图片空间 - 25 - 1.5 店铺 - 25 - 1.5.1 店铺管理 - 25 - 1.5.2 店铺等级 - 27 - 1.5.3 店铺分类 - 28 - 1.5.4 二级域名 - 28 - 1.5.5 店铺动态 - 29 - 1.5.6 店铺帮助 - 30 - 1.5.7 开店首页 - 32 - 1.5.8 自营店铺 - 33 - 1.6 会员 - 34 - 1.6.1 会员管理 - 34 - 1.6.2 会员级别 - 35 - 1.6.3 经验值管理 - 36 - 1.6.4 积分管理 - 37 - 1.6.5 预存款管理 - 37 - 1.6.6 分享绑定 - 38 - 1.6.7 会员相册 - 39 - 1.6.8 买家动态 - 39 - 1.6.9 聊天记录 - 41 - 1.7 交易 - 41 - 1.7.1 实物订单 - 41 - 1.7.2 虚拟订单 - 42 - 1.7.3 退款管理 - 43 - 1.7.4 退货管理 - 43 - 1.7.5 虚拟订单退款 - 44 - 1.7.6 咨询管理 - 44 - 1.7.7 举报管理 - 45 - 1.7.8 评价管理 - 47 - 1.7.9 投诉管理 - 47 - 1.8 网站 - 50 - 1.8.1 文章分类 - 50 - 1.8.2 文章管理 - 50 - 1.8.3 会员协议 - 52 - 1.8.4 页面导航 - 52 - 1.8.5 广告管理 - 53 - 1.8.6 首页管理 - 55 - 1.8.7 推荐位 - 59 - 1.8.8 友情连接 - 60 - 1.9 运营 - 60 - 1.9.1 基本设置 - 60 - 1.9.2 抢购管理 - 61 - 1.9.3 虚拟抢购设置 - 61 - 1.9.4 限时折扣 - 62 - 1.9.5 满即送 - 63 - 1.9.6 优惠套装 - 65 - 1.9.7 推荐展位 - 66 - 1.9.8 代金券 - 67 - 1.9.9 结算管理 - 70 - 1.9.10 虚拟订单结算 - 70 - 1.9.11 活动管理 - 70 - 1.9.12 兑换礼品 - 72 - 1.9.13 平台客服 - 75 - 1.9.14 平台充值卡 - 75 - 1.10 统计 - 76 - 1.10.1 概述及设置 - 76 - 1.10.2 行业分析 - 78 - 1.10.3 会员统计 - 81 - 1.10.4 店铺统计 - 82 - 1.10.5 销量分析 - 83 - 1.10.6 商品分析 - 85 - 1.10.7 营销分析 - 87 - 1.10.8 售后分析 - 89 - 1.11 手机端 - 89 - 1.11.1 首页编辑 - 89 - 1.11.2 分类图片设置 - 91 - 1.11.3 下载设置 - 92 - 1.11.4 意见反馈 - 92 - 1.11.5 手机支付 - 93 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值