文档最后更新时间:2021-06-17 19:24:40
### 爬坑说明
> 商城配置过程中,有很多的细节,文档已经尽量把所有细节给列出来,但是还是无法避免会遗漏,或者看文档时候疏忽没注意,这里再把所有容易忽略的细节罗列一下
### 关于命令执行
**所有命令请都务必在项目根目录下执行,否则命令执行没报错也是无效的,如果是宝塔,查看网站可以找到根目录形如`/www/wwwroot/项目目录`**
### 公众号相关
#### 公众号配置
* 打开`公众平台->设置与开发->公众号设置->功能设置``业务域名:`填写前端h5域名,`JS接口安全域名:`填写前端域名,`网页授权域名:`填写后台接口域名
* 打开`公众平台->开发 基本配置->公众号开发->IP 白名单`,将服务器 ip 地址配置一下
* 如果要使用商城自带的微信管理,设置自定义菜单,粉丝,或者自动回复等功能,请配置并启用`公众平台->开发 基本配置->公众号开发->服务器配置`,服务器地址以及token 请在`商城配置->平台配置->公众号配置`处查看;**如果不使用商城微信管理等功能,请忽略**
### 小程序相关
#### 服务器域名配置
在开发工具模式下,不校验域名合法性是自动开启的,但是到了体验版或者正式版会出现小程序打开直接显示网络错误,这时候请检查服务器域名是否配置了
* 登录小程序平台,`开发->开发管理->开发设置`,找到`服务器域名`,将域名填入,具体配置方式请看这里有详细说明[服务器域名配置](https://doc.fastadmin.net/shopro/337.html)
### 支付相关
#### 订单不存在问题
* 因为系统默认订单十五分钟不支付自动关闭订单,使用的是延迟队列功能,这里订单立马就被关闭是因为`application/extra/queue.php`配置文件队列驱动没有修改,请按照队列文档进行配置[队列配置](https://doc.fastadmin.net/shopro/239.html)
#### 安装 微信支付宝整合插件
* 为了兼容插件市场的 微信支付宝整合插件,shopro 商城隐藏了自己的 yansongda 包,所以这个包目前必须要安装
* fastadmin 后台插件管理,找到微信支付宝整合插件,然后直接安装,不需要在这里进行配置,只需要在`商城配置->支付配置`里面配置微信支付参数即可
#### 公众号微信支付
* 首先在`商城配置->支付配置`配置微信支付参数,再配置`商城配置->平台配置`,配置微信公众号参数
* 请在`微信商户平台`配置微信支付授权目录,**history 模式**:域名 + /pages/order/payment/,**hash模式:**域名 + /#/pages/order/payment/
#### h5 微信支付(也就是微信浏览器之外的普通浏览器支付)
* 商户号必须申请微信h5支付
* `商城配置->平台配置->h5`,请配置绑定了同一个商户号的 公众号的或者小程序的 appid 和 secret
* 必须要在手机上测试,并且手机上必须要有微信客户端才行,因为 微信 h5 支付是通过浏览器调起的微信客户端进行付款
### 跨域相关
* 默认前端接口都是使用fastadmin 自带跨域的,只需要在 application/config.php 配置好要跨域的域名,但是这个跨域只能解决接口跨域,并不能解决前端h5生成海报时候的图片跨域问题,需要在nginx 中单独配置图片的跨域
* 如果是 apache,或者想看更详细的跨域文档, 请点击这里[跨域配置](https://doc.fastadmin.net/shopro/352.html)
* 如果使用了对象存储,并且前端部署的有 h5, 请在对象存储中配置跨域,否则h5端海报将无法生成
### 海报生成相关
> 如果使用fastadmin 自带的用户测试生成海报,请一定要给这个用户重新上传一下头像,否则无法生成海报
#### h5 生成海报
h5 端海报无法生成, 一般都是跨域问题所致,可以按照如下方式解决一下
* 如果未配置对象存储,请配置服务器的图片跨域
* 如果是配置了对象存储,请在对象存储,bucket 处配置跨域,允许前端域名跨域
#### 小程序端生成海报
* 小程序必须至少发布一版才可正常生成小程序码
* 检查小程序服务器域名 downloadFile 域名配置,涉及到的所有图片地址都需要配置,如果使用了对象存储包括对象存储的域名也必须要配置
### 客服相关
* 如果shopro版本大于等于 1.3.0 建议使用反向代理方式配置,配置简单,也不需要放行端口
* 如果不是反向代理方式,请将客服端口放行,宝塔上放行防火墙端口,并且放行服务器安全组(云服务器)或者防火墙端口
* 配置好之后,一定要在调试模式下运行,错误会直接输出在命令行,这样就可以解决 90% 以上的问题,否则可能卡几个小时都解决不了