进云平台-专注实现‘互联网+’服务

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1333|回复: 2

第三方应用兼容升级教程

[复制链接]
发表于 2018-5-16 12:23:33 | 显示全部楼层 |阅读模式
第三方(下面全部简称:第三方)应用插件升级兼容教程:

1、第三方的:`uni_account` 这张表进云程序没有。可以参考以下方法调整:如果相关代码无关业务或者后面没有用到,则直接删除;该表在第三方应用中是保存公众号数据,
在进云程序中如需获取公众号数据,可以从表:`core_account_wechat`中获取;如需用户站点信息,可以从表`core_accounts`中获取;

2、第三方的`users`、操作员相关这张表进云程序没有。原第三方应用程序中分别保存的是用户数据。进云程序中类似表有:`core_users`保存用户数据。关于插件操作员问题,系统已添加`uni_account_users`表方便插件兼容,另外添加用户的时候采用user_register($user,'plugin_name')函数(在原第三方中有这个函数,不过没有第二项参数,做插件兼容时请加上插件标识作为第二项参数),成功创建操作员后,系统将会给操作员增加访问该插件的权限,其他具体权限有插件自行设置。

3、第三方的`mc_members` 这张表进云程序没有。可以参考以下方法调整。将表名改为`core_members` 字段uid改成id,其他字段基本一致,可以对比数据库结构处理;

4、第三方的:web/resource目录下的资源文件已调整至api/resource。需要修改相应目录。

5、插件支付建议调用系统支付接口,如果使用插件支付接口且获取支付参数来自系统支付参数设置。可以将系统支付参数打印出来查看结构相应的获取设置设置支付。另外接收异步回调结果的文件也需要做兼容处理。可已粘贴以下代码至于文件头部,此步骤比较难,此外,uniacid参数获取到之后,要赋值给$_SESSION['uniacid'],以免调用系统功能时出错。
require '../core/core.php';//此处的系统核心控制文件请根据回调文件目录整理。
相对目录:
require ROOT_D.'/api/open_we7/function.php';
require ROOT_D.'/api/open_we7/to_wqz.php';
require ROOT_D.'/api/open_we7/account.php';

6、插件URL生成函数,如果调用系统URL生成函数可以不用改。用插件自带URL生成函数的需要做相应调整:
用户端地址的域名用get_account_url()函数获取:
(例如:get_account_url().'custom/index.php?plugin=core&action=module&m=ewei_shopv2&...');管理端地址示例:SITEROOT.'manage/index.php?plugin=core&action=module&m=ewei_shopv2&...'。
7、第三方的管理端主要在web目录下,进云程序管理端业务代码在manage目录下,因此代码中所有涉及web目录的都需要改为manage;

8、第三方的用户端主要在app目录下,进云程序管理端业务代码在custom目录下,因此代码中所有涉及app目录的都需要改为custom;

9、第三方的`mc_members`数据表进云系统没有。在第三方框架中,这张表主要保存会员数据。可以参考以下方法调整:
批量搜索 mc_members 。进云系统保存会员数据的表为core_members,字段大同小异,具体参考相应表数据结构调整。

10、进云系统默认已启用会话,无需再调用WeSession创建会话。可以批量搜索WeSession找到有这个的地方去掉,进云系统没有WeSession这个类。

11、第三方的'qrcode'这个表没有,进云程序增加了一个兼容数据表'core_qrcode',将表名替换下即可。

12、第三方的framework这个文件夹没有,批量搜索插件中有用到这个文件夹的地方进行调整:framework下面的library目录里面的文件在进云系统的core/library目录中,如果是加载里面的库文件,可以直接吧framework改为core。

13、第三方的`mc_mapping_fans` 在进云系统中没有。可批量将这张表改为`core_fans`,然后对比这两张表的字段。进云core_fans表中没有的调整下即可。

14、进云系统支付日志表和第三方一致:`core_paylog`,但是字段不一致,如需使用请调整字段。另外,系统增加了一张表`core_pay_log`,里面的字段和原第三方`core_paylog`字段一致,需要时也可以用这张表。

15、进云系统中,附件目录是随机的,插件需要存放附件时,需要调整附件目录。可批量搜索'/attachment/',进行整理。例如: IA_ROOT.'/attachment/'替换成ROOT_AT。另外,系统将附件文件夹名称存放在RESOURCE常量中,可利用此常量灵活拼接目录。

16、关于插件管理页面。如果插件使用了第三方的框架头部底部文件,请把相关文件包含代码去除,然后设置插件类型为:`需要系统菜单`。如果插件使用的是自己的头部底部文件,则请设置插件类型为:`无需系统菜单`。

17、关于插件表单提交,如果插件页面提交表单地址是自定义的后台地址,请注意增加action=module这一项get参数。

18、使用系统菜单的插件,与后端进行ajax通信时,记得带上submit=1和action=module这两个参数,第一个参数的作用为将请求直接交给插件处理,第二项告知系统请求来自兼容插件。

(最后温馨提示:进云带有错误日志功能,仅创始人可见,所有浏览产生的错误,都会被记录下来。可以多参考错误日志,准确找出问题点)
【相关链接】:
【相关笔记】:
1、使用开发中心--第三方插件--代码替换工具
注意不能多次替换,否则然后出错!
[常用替换细节]:
(读取表里粉丝信息)mc_oauth_userinfo() --> cfc('core')->get_fans()获取会员信息:mc_fetch  --> cfc('core')->get_member($uid)获取粉丝信息fans_search --> cfc('core')->get_fans($openid)WeSession:expire = $_W['system']['session_expire'] --> cfc('session',$_AR['system']['session_expire']);getAccessToken() --> cfc('account')->getAccessToken();(获取微信粉丝信息)getOauthInfo   --> cfc('account')->getfans()类似:getOauthInfo,getOauthCodeUrl获取回调信息的都可以不用,系统已经自动判断获取2、粉丝相关细节兼容处理:
1、头像$_SESSION['fans']['avatar'],昵称  $_SESSION['fans']['nicename']
2、uid openid uniacid 都在$_SESSION 里面获取,比如:
$_SESSION['uniacid'];$_SESSION['openid'];$_SESSION['uid'];
3、操作权限(可以管理员多个站点):
创始人权限: $_SESSION['isfounder'];操作员权限: $_SESSION['user']['type'] == 1;公众号管理员权限: $_SESSION['user']['type'] == 3;
4、判断会员登陆,注册信息:原来checklogin()方法改成 cfc('core')->checklogin();
方法中自带判断,没有登陆自动跳转到登陆界面;
6、会员,粉丝信息获取函数:
cfc('core')->get_member()类似mc_fetchcfc('core')->get_fans()类似fans_search
7、手机端链接404  $_AR['siteroot'] .'app/'替换成$_AR['siteroot'] .'custom/'
8、获取AccessToken方法:$AccessToken       = cfc('account')->getAccessToken();
9、会员信息修改(类似:mc_credit_update,mc_update):
类函数cfc('core')->member_credit($mid,$field,$value,$is_add,$from_plugin,$remark); 参数依次为会员ID、修改字段(credit1或者credit2)、修改值、增加还是减少、操作插件、说明$is_add1为增,0为减第三方兼容独有全局函数:member_change($data,$mid);(修改当前会员信息member_member表:手机,昵称,地址,QQ等,mid可以留空)例子:$data= array(                'realname' => $_RQ['realname']      ); member_change($data);
10、account类(类似:WeAccount,舍去create获取)cfc('account')-
11、支付日志:core_paylog是进云系统,corepay_log是兼容第三方插件的
12、插件表:core_plugins(类似modules),菜单,入口等都在一张表里面;
13、回复规则添加,更新,获取规则数据:
添加,更新:cfc('core')->save_back_news($parameter,$id='');//参数说明: $parameter=array('keyword'=>'触发关键词','status'=>'是否启用','title'=>'封面标题','description'=>'封面简介','picurl'=>'封面图片地址','url'=>'图文链接','plugin'=>'链接页面所属插件','action'=>'链接页面action','aid'=>'链接页面AID(可不填,用于唯一区分,比如小区ID,分店的ID)');//参数说明: $id:回复规则ID,用于更新回复规则获取数据:cfc('core')->get_back_news($parameter,$id='');//参数说明: $parameter=array('plugin'=>'链接页面所属插件','action'=>'链接页面action','aid'=>'链接页面AID(可不填,用于唯一区分,比如小区ID,分店的ID)');//参数说明: $id:回复规则ID,用于查询回复规则
14、常用全局函数(进云全部以站点为单元,相当于每个后台普通会员,控制一个集团站点,站点下面多个应用端,比如:微信公众号,小程序,app等):
获取粉丝uid:$_SESSION['uid'];集团站点:$_SESSION['uniacid'];公众号openid:$_SESSION['openid'];粉丝余额:$_SESSION['member']['credit2']粉丝积分:$_SESSION['member']['credit1']
回复

使用道具 举报

发表于 2018-6-9 02:58:25 | 显示全部楼层
这个兼容微擎、微赞有点太麻烦了!看好进云的全网方向,可是这个转换成本太大了。
回复

使用道具 举报

 楼主| 发表于 2018-6-13 11:32:34 | 显示全部楼层
chinarobin 发表于 2018-6-9 02:58
这个兼容微擎、微赞有点太麻烦了!看好进云的全网方向,可是这个转换成本太大了。 ...

我们将加大应用快速开发工具的优化力度,这样应用开发这块就简单,快速的很多。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|进云平台

GMT+8, 2024-4-27 17:59 , Processed in 0.062003 second(s), 7 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表