# 模板消息

系统/系统管理/系统配置/微信配置

# 公众号

配置 模板名称 类别
msgNotify 访客来咨询通知 IT软件与服务
askNotify 提问结果通知 IT软件与服务
orderNotify 发货通知 IT软件与服务

# 小程序

配置 模板名称 字段
msgNotify 聊天消息回复通知 回复时间、客服编号、备注
orderNotify 订单发货通知 商品名称、订单号、发货时间、备注

# socket配置

# Nginx

upstream socket {
    server 127.0.0.1:7006;
} 
server
{
    listen 80;
	listen 443 ssl http2;
    server_name mall.cool-js.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /home/mall/cool-mall-front/dist;
 
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/mall.cool-js.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/mall.cool-js.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    #SSL-END
 
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
 
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
 
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/mall.cool-js.com.conf;
    #REWRITE-END
 
    location / {
      try_files $uri $uri/ /index.html;
    }
 
    location /api/ 
    {
        proxy_pass http://127.0.0.1:7006/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
     
        proxy_cache_bypass no_cache;
     
        #缓存相关配置
        #proxy_cache cache_one;
        #proxy_cache_key $host$request_uri$is_args$args;
        #proxy_cache_valid 200 304 301 302 1h;
     
        #持久化连接相关配置
        proxy_connect_timeout 3000s;
        proxy_read_timeout 86400s;
        proxy_send_timeout 3000s;
        #proxy_http_version 1.1;
        #proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection "upgrade";
     
        add_header X-Cache $upstream_cache_status;
     
        #expires 12h;
    }
 
    location /socket {  
        proxy_pass http://socket/socket;   
        proxy_connect_timeout 3600s; #配置点1 
        proxy_read_timeout 3600s; #配置点2,如果没效,可以考虑这个时间配置长一点 
        proxy_send_timeout 3600s; #配置点3 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        #proxy_bind $remote_addr transparent;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        rewrite /socket/(.*) /$1 break;
        proxy_redirect off;
     
    } 
    access_log  /dev/null;
    error_log  /www/wwwlogs/mall.cool-js.com.error.log;
}

# 物流接口

阿里云云市场接口 (opens new window)

获得appcode->系统/系统管理/系统配置/物流管理

# OSS跨域配置

oss跨域配置

WARNING

authorization 这一项不可省略,严格按照截图所示配置,替换成自己的域名即可

# start无法运行

版本太高

解决方法:

  • 降低node版本,建议使用12.x版本;
  • 删除node_modules重新安装依赖,建议使用yarn安装;
  • 重新yarn buildyarn start
  • yarn start前记得先停止程序yarn stop,否则会报端口被占用, 也可以直接npm restart

# 不使用微信unionId

修改 src/service/app/user/login.ts文件

  /**
     * 微信登录后的通用操作
     * @param wxUser
     * @param source 来源
     */
    async wxLogin(wxUser, source = 0) {
        const openid = wxUser.openid;
        delete wxUser.openid;
        // 加这里 unionid 是必填的 随便赋个值
        wxUser.unionid = '';
        // 修改 小程序查询 wxMiniOpenid 公众号查询 wxMpOpenid app查询 wxAppOpenid
        const check = await this.ctx.repo.app.user.Wechat.findOne({ wxMiniOpenid: openid });
        if (!check) {
            const { url } = await this.service.comm.file.uploadWithPic(wxUser.headimgurl); // 自己保持头像, 不然链接会过期
            wxUser.headimgurl = url;
            await this.ctx.repo.app.user.Wechat.insert(wxUser); // 保存
            await this.ctx.repo.app.user.Info.insert({
                headimgurl: wxUser.headimgurl,
                nickname: wxUser.nickname,
                sex: wxUser.sex,
                unionid: wxUser.unionid,
                source,
            });
        } else {
            if (source == 0) {
                check.wxMiniOpenid = openid;
            }
            if (source == 1) {
                check.wxMpOpenid = openid;
            }
            if (source == 1) {
                check.wxAppOpenid = openid;
            }
            await this.ctx.repo.app.user.Wechat.update(check.id, check);
        }
        const userInfo = await this.ctx.repo.app.user.Info.findOne({ unionid: wxUser.unionid });
        // @ts-ignore
        return await this.token(userInfo);
    }