Files
litemall/doc/FAQ.md

210 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 常见问题
## 1 小商城
这里主要是指litemall-wx-api、litemall-wx和renard-wx三个模块的相关问题。
### 1.1 小程序微信登录失败
现象:
小程序微信登录失败
原因:
目前账号的appid是本人申请同时小程序未上线因此开发者如果微信登录肯定会失败。
解决:
1. 如果只是体验商品购买流程,开发者可以采用账号注册登录方式。
2. 开发者在litemall-wx和litemall-wx-api模块的appid等信息设置成自己申请的信息。
### 1.2 appid已经修改微信登陆仍然失败
现象:
微信开发者工具修改了开发者自己申请的appid后端也更新了相应信息但是微信登录仍然报错。
原因:
这里可能是缓存问题虽然修改了appid但是微信开发者工具未及时更新。
解决:
微信开发者工具中修改appid以后请关闭litemall-wx项目或者微信开发者工具重新启动导入litemall-wx。
### 1.3 手机真机测试不正常
现象:
微信开发者工具打开正常,但是手机真机扫描加载小商场以后,只有页面结构,没有数据和图片。
原因:
数据或者图片不可访问。
解决:
1. 确保小商场后端服务可以访问,可以通过手机浏览器访问后端服务地址测试
* 小商场的后端服务地址是localhost则手机不可访问
* 小商场的后端服务地址是局域网地址而手机不在局域网中例如不是相同wifi或者手机是移动网络
* 小商场的后端服务未启动
2. 手机小商场的**调试功能**开启
### 1.4 第三方手机测试不正常
现象:
本人手机测试正常,而第三者手机测试不正常。
解决:
1. 确保小商场后端服务可以访问,可以通过第三者手机浏览器访问后端服务地址测试
2. 第三者手机小商场的**调试功能**开启
3. 在微信小程序平台设置第三者的微信账号是**体验者**
### 1.5 微信支付失败
现象:
小商场不能支付,或者点击支付总是报错
原因:
开发者必须拥有商户支付权限,然后设置好以下信息:
```
litemall.wx.app-id=
litemall.wx.app-secret=
litemall.wx.mch-id=
litemall.wx.mch-key=
litemall.wx.notify-url=
```
解决:
参考`3.0 小商场环境`,设置相应支付配置信息
### 1.6 支付成功,但商品仍未付款
现象:
在微信开发者工具中已经成功支付,但是返回订单页面时商品订单仍然显示`未付款`状态。
原因是:
微信平台支付成功以后,会把支付结果推送到`wx.notify-url`所指定的地址。
因此,开发者必须确定`wx.notify-url`所指向的访问链接是可以成功访问,同时
能够返回正常的响应结果。
解决:
1. 如果开发者是在微信开发者工具中测试支付,那么需要采用一些内网穿透工具,
`WxOrderController.payNotify`所代表的本地地址,例如`http://localhots/wx/order/pay-notify`,
转换成外网可以访问的地址,例如`http://xxx.com/wx/order/pay-notify`,最后
设置`wx.notify-url`指向该地址。
2. 如果开发者已经上线服务,请确认`wx.notify-url`所指向的访问链接可以正常工作。
## 2. 管理后台
这里主要是指litemall-admin-api和litemall-admin两个模块的相关问题。
### 2.1 登录连接超时,联系管理员
现象:
管理后台登录时,出现报错信息:登录连接超时
原因:
1. 首先,需要明白这是前后端分离项目,前端会向后端发送请求;
2. 其次需要明白报错的地方是litemall-admin/src/utils/request.js文件中;
3. 最后,连接超时是说发送给后端的请求长时间未反应。这里存在两个可能性:
* 真连接超时目前request.js文件中设置请求超时时间是5s因此真的可能5s后端
未及时返回数据;
* 假连接超时,例如向一个不存在的地址请求数据,那自然是返回连接失败。
解决:
通常是开发者设置不正确引起的假连接超时。
1. 首先用chrome的开发者工具查看登录页面向后端请求的具体地址
2. 然后,测试后端的服务是否已启动,请求地址是否可以访问。
3. 最后如果设置正确用chrome的开发者工具查看登录页面向后端请求返回数据信息
如果设置不正确,请启动相应的后端服务。
## 3. 基础系统
这里主要是指litemall-db、litemall-core和litemall-all模块三个模块的相关问题。
### 3.1 Invalid bound statement
现象:
有时特别是采用mybatis generator重新生成代码后端服务报错
```
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): org.linlinjava.litemall.db.dao.XXXX
```
原因:
应该是自动生成的新的XML文件没有及时更新到编译文件夹target中造成了target中mybatis的Java代码和XML文件不对应。
解决:
采用maven命令或者插件先清理项目再重新编译打包例如
```bash
mvn clean
mvn package
```
### 3.2 Unknown Column
现象:
```
Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'add_time' in 'field list'
The error may exist in org/linlinjava/litemall/db/dao/LitemallSystemMapper.xml
The error may involve org.linlinjava.litemall.db.dao.LitemallSystemMapper.selectByExample-Inline
The error occurred while setting parameters
SQL: select id, key_name, key_value, add_time, update_time, deleted from litemall_system
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'add_time' in 'field list'
```
原因是:
系统处在开发中,所以数据库表根据业务会不断调整,因此如果开发者更新代码以后直接运行,有可能导致当前代码
操作数据库失败,因为开发者当前的数据库表已经过时。
解决:
如果出现数据库方面的报错,建议开发者重新导入数据库。
## 4. 项目
这里主要是指其他项目开发相关问题。
### 4.1 项目导入IDEA时卡顿
现象:
IDEA导入项目时非常耗时间或者卡断或者一直疯狂运行。
原因:
应该是litemall-admin模块的node_modules文件夹导致的。
node_modules是litemall-admin所依赖的项目库可能有近200M的文件。
而IDEA如果没有设置则可能尝试对该文件夹进行解析索引从而导致卡断。
解决方案:
先关闭IDEA然后删除node_modules文件夹然后重新打开IDEA设置node_modules文件夹Excluded状态。
![](./pic/excluded.png)
### 4.2 项目war打包
目前不支持,请开发者自行实践。