×

Bwsaas微信SAAS公众号小程序等多端管理系统

消耗积分:2 | 格式:zip | 大小:49.24 MB | 2022-06-29

刘桂英

分享资料个

授权协议 GPL-3.0
开发语言 PHP JavaScript HTML/CSS
操作系统 跨平台
软件类型 开源软件

软件简介

“bwsaas多端SAAS平台运营系统”接入微信开放平台(第三方服务商),微信公众号管理及微信小程序一键授权发布,具备多租户管理、多应用上架购买、多终端(公众号,H5,小程序,PC,APP)可接入、强大的权限节点控制(管理员权限,租户及租户应用权限)、 强大的一键CRUD生成代码(页面JS,控制器controller,模型及关联模型model)、基于ThinkPHP6及layui快速布局扩展等等特性、详细的二次开发及系统使用说明文档!让您不管是自己学习使用还是公司运营,轻松快速完成二次的开发集成

软件架构

  • 技术:Thinkphp6+Layui2.5+easywechat(微信开发框架)
  • 后台:租户管理后台(域名+/manage/member/login)和平台管理后台(域名+/manage/admin/login)
  • 环境(建议使用宝塔面板一键搭建lnmp):
  • 系统:Windows,Linux(推荐)
  • PHP > 7.2(推荐7.4)
  • Mysql >=5.7
  • Redis >=5.0
  • Nginx >=1.14或者apache >=2.4

已经开源

Bwsaas框架【全部开源】

  saas多租户管理系统:租户管理系统和总平台管理系统;
  微信公众号,微信小程序,H5,APP,PC等都能完美对接及管理;

Bwsaas框架下的bwmall模块应用【后端全部开源】

  bwmall模块是bwsaas框架系统里的一个电商行业单商户b2c应用;
  包括【后端:bwmall模块全部源码;前端:微信原生小程序源码(兼容性高),uniapp多端源码需要收费】;
  开源版本也具备非常多的功能:优惠券,拼团,三级分销,秒杀,已经集成bwwechat模块应用的全部功能;
  详情看下面的小程序演示。

Bwsaas框架下的bwwechat模块应用【全部开源(此模块只有后端管理)】

   微信公众号管理:素材管理,关键词回复管理(文字、图片、图文、视频、音乐、网址、转客服),关注自动回复等;
   小程序:关键词回复管理(文字、图片、小程序卡片、网址、转客服)

站点地址

代码仓库

项目特性

  • 接入微信开放平台(第三方服务商),SaaS应用(微信小程序)一键授权发布;
  • 完善的微信公众号、小程序帐号授权体系;不管你的公众号是前后端分离开发,还是SSR形式开发模式,都能在继承相关Base基类的情况下轻松快速完成授权;小程序完美支持基于第三方服务商模式的一键授权上架,可轻松实现多用户多版本的SAAS平台运营需求;
  • 具备租户应用的购买、授权、充值、消费账单管理;
  • 每个租户可对每个购买授权的应用进行会员独立管理;
  • 一个租户同时购买授权无数个产品应用,但是同一个应用只能一个租户购买一次,如果您有多个公众号或者小程序需要对接,只需要再注册个租户帐号就可以实现;
  • 目前已经接入微信支付(租户的扫码充值,小程序用户充值及订单支付,公众号及H5用户充值及订单支付);
  • 阿里云API市场接口的高度封装集成,实现API接口的二次销售盈利;已经整合完整的短信、IP定位、经纬度定位等接口,每个服务具备多套餐管理,且支持用户调用接口的充值扣费(按次扣费)
  • 支持bwsaas框架中应用一键安装、卸载、升级(可基于TP6的多应用模式开发自己的独立应用,降低学习成本);
  • 支持开发APP(安卓,IOS)、公众号、小程序、H5、PC等独立应用;
  • 快速一键CRUD命令行支持
    • 一键生成控制器、模型、视图、JS文件(require.js模块化管理)
    • 支持关联模型查询、显示字段设置等等
  • 基于auth的权限管理系统
    • 通过后台统一管理来实现auth权限节点添加管理及认证
    • 系统开启强制路由控制,来保证系统的安全节点访问
    • 系统通过统一的权限控制中间件Auth.php文件实现路由结合权限的详细权限控制
    • 完善的后端权限验证以及前面页面按钮显示、隐藏控制
  • 完善的菜单管理
    • 分模块管理
    • 无限极菜单
    • 菜单节点的显示与隐藏一键控制
  • 完善的上传组件功能
    • 本地存储
    • 阿里云OSS建议使用
    • 腾讯云COS
    • 七牛云OSS
  • 完善的前端组件功能
    • 对layui的form表单重新封装,无需手动拼接数据请求,支持表单提交数据的前置回调处理表单数据
    • 封装好的自动监听form表单,封装完善的ajax请求,支持post get等请求方式
    • 简单好用的图片、文件上传组件
    • 简单好用的富文本编辑器ckeditor
    • 对弹出层进行再次封装,以极简的方式使用
    • 对table表格再次封装,在使用上更加舒服
    • 根据table的cols参数再次进行封装,提供接口实现imageswitchlist等功能,再次基础上可以自己再次扩展
    • 根据table参数一键生成搜索表单,自由控制隐藏显示项,无需自己编写
  • 记录完善的后台操作日志
    • 记录用户的详细操作信息(操作节点记录,IP,时间)
  • 一键部署静态资源到OSS上
    • 所有在public\static目录下的文件都可以一键部署
    • 一个配置项切换静态资源(oss/本地)
  • 上传文件记录管理
  • poYBAGK5rKqAADhhAADf_FPa_U0092.png

特别感谢

以下项目排名不分先后

版权说明

  • 请保留版权,而无任何其他的限制.也就是说,您必须在您的发行版里包含原许可协议的声明,无论您是以二进制发布的还是以源代码发布的
  • 开源版遵循GPL-3.0开源协议发布,并提供免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售!

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'Bwsaas微信SAAS公众号小程序等多端管理系统',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);