介绍及本地启动
介绍及本地启动
项目背景
12月18日,腾讯CEO马化腾在第二届深商大会“互联与时代”论坛上透露,微信小程序将会在2017年春节前推出。移动互联网繁荣发展的背景下,app产品在应用市场数量众多,且更新换代速度极快,这就带来了下载与卸载的烦恼。小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
全新服务体验
微信小程序是一种全新的连接用户与服务的方式, 它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
庞大用户量
微信2016年已突破9亿用户,月活用户已近7亿,现 在每天每人花费在微信上的时间占了所有程序的30%以上,其庞大用户 群体以及生态链条,是商家抢占流量入口的必争之地。
流量引导
微信小程序作为连接微信与APP之间的桥梁,可以起到流量引导作用。
项目描述
微同商城是一套极速开发微信小程序商城框架,主要包括用户管理、角色管理、部门管理、菜单管 理、定时任务、文件上传、数据权限、Redis缓存、前后台统一异常处理等系统通用功能,还拥有一套完整的商城后台管理系统、微信小程序源码、小程序接口服务、以及完善的支付流程,极大缩短项目的开发周期。
项目特点
- 微同商城采用
Spring
、MyBatis
、Mybatis-Plus
、Shiro
、Knife4j
框架开发。 - 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求。
- 完善的部门管理及数据权限,通过注解实现数据权限的控制。
- 支持
MySQL
、Oracle
等主流数据库。 - 多个团队协作开发,有效降低核心代码泄露。
- 推荐使用阿里云服务器部署本系统,免费试用阿里云产品,请点击【免费领取】
项目介绍
platform-admin
后台模块,也是系统的核心,用来开发后台管理系统。
platform-api
接口模块,是小程序商城的接口开发模块。实现了微信用户登录、接口权限认证、获取登录用户、商城首页、专题、分类、购物车、个人中心等功能,为小程序商城接口的安全调用,提供一套完整的解决方案。
platform-common
公共模块,其他模块以jar包的形式引入进去,主要提供些工具类,以及platform-admin
、platform-api
模块公共的entity
、mapper
、dao
、service
服务,有效减少一个功能重复多次编写代码。
platform-gen
代码生成器模块,只需在数据库里,创建好表结构,就可以生成增、删、改、查等操作的代码,包括entity
、mapper
、dao
、service
、controller
、页面等所有代码,项目开发神器。
platform-schedule
定时任务模块,使用开源框架quartz
实现分布式定时任务,动态添加、修改、删除、暂停、恢复、立即执行定时任务。
uni-mall
商城小程序端uniapp
开发源码
wx-mall
商城小程序端原始开发源码
开发使用到的软件和工具
(最后一章节提供下载地址)
Xshell6
Xftp6
Postman
Git
Tomcat8.0.33
jdk1.8
MySQL5.7
Navicat for MySQL
redis
IntelliJ IDEA、Eclipse
- 微信web开发者工具
本地部署
推荐软件环境
- jdk1.8
- maven3.3.3
- tomcat8
- mysql5.5+
- redis4.0.1
通过git下载源码
git clone https://gitee.com/fuyang_lipengjun/platform.git
本机启动redis服务、mysql数据库
初始化项目
- 创建数据库platform-shop,数据库编码为UTF-8,执行数据库脚本_sql/platform.sql、sys_region.sql
- 启动项目之前修改dev/platform.properties,修改数据库账号和密码,wx.appId、wx.secret、wx.mchId、wx.paySignKey
- 修改j2cache.propertie配置redis.hosts和redis.password
使用IDEA启动项目
- 配置tomcat
- 记得要设置
Application context
为/platform-framework
- 如上图所示,启动成功,访问 http://localhost:8080/platform-framework
项目访问路径
- http://localhost:8080/platform-framework
- 账号密码:admin/admin
接口文档路径
小程序接口路径
使用微信web开发者工具启动wx-mall
导入wx-mall到微信web开发者工具
填写微信公众平台申请的小程序APPID
和platform.properties里的wx.appId保持一致
修改APIJS配置
var API_BASE_URL = 'http://localhost:8080/platform-framework/api/';
开发模式设置
勾选不校验合法域名
关于发布到手机端测试
若想发布到手机端测试请求数据,后台项目必须发布到云服务器(使用内网穿透工具亦可),然后在微信开发工具点击预览,如下图
然后使用手机微信扫码,注意此时还是请求不到数据,需要打开调试模式才能正常访问接口数据,操作如下图
获取帮助
Git地址
https://gitee.com/fuyang_lipengjun/platform
官网
微信支付配置参数
商户在微信公众平台或开放平台提交微信支付申请,微信支付工作人员审核资料无误后开通相应的微信支付权限。微信支付申请审核通过后,商户在申请资料填写的邮箱中收取到由微信支付小助手发送的邮件,此邮件包含开发时需要使用的支付账户信息,见下图所示。
微信支付商户号 | mch_id | 商户申请微信支付后,由微信支付分配的商户收款账号。 |
---|---|---|
API密钥 | key | 交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。也可按一下路径设置:微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->密钥设置 |
微信支付接口中,涉及资金回滚的接口会使用到API证书,包括退款、撤销接口。商家在申请微信支付成功后,收到的相应邮件后,可以按照指引下载API证书,也可以按照以下路径下载:微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全 。
API证书安全
- 证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载;
- 建议将证书文件名改为复杂且不容易猜测的文件名;
- 商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。
商户回调API安全
在普通的网络环境下,HTTP请求存在DNS劫持、运营商插入广告、数据被窃取,正常数据被修改等安全风险。商户回调接口使用HTTPS协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付的各种回调采用HTTPS协议。
签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
- 参数名ASCII码从小到大排序(字典序);
- 如果参数的值为空不参与签名;
- 参数名区分大小写;
- 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
- 微信接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
- key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置