ECShop 小程序「weeshop 」- 基于 ECShop 为后台系统开发的非官方微信商城小程序

当前位置: 首页 » 文章 » ECShop 小程序「weeshop 」- 基于 ECShop 为后台系统开发的非官方微信商城小程序

分类: 文章 29989阅读阅读模式

ECShop 小程序「weeshop 」- 基于 ECShop 为后台系统开发的非官方微信商城小程序

基于 ECShop 3.6+ 版本开发的非官方微信小程序,将之命名为 weeshop 。

该小程序所有接口均来自原生的 ECShop 3.6+ 版本的 appserver 。

已适配 ECShop 4.0+ 版本。

 

项目基本完善,如需商用 weeshop ,请在下方留言。

小程序功能

  • 首页:轮播图、滚动公告、精品推荐、新品上市、销量排行
  • 分类:分类目录、商品搜索
  • 我的:退出登录、用户信息显示、订单统计、列表入口
  • 列表:商品排序、商品列表
  • 搜索:商品搜索、热门搜索
  • 商品详情:商品详情、规格选择、加入购物车、立即购买、评价详情、收藏功能
  • 登录:用户登录、用户注册、找回密码
  • 购物车:数量修改、商品删除、发票支持、优惠券支持、智能匹配收货地址、智能匹配配送方式、检查订单、提交支付
  • 订单中心:订单列表、详单详情、物流信息、取消订单、订单付款、确认收货、评价订单
  • 收货:地址列表、地址详情、地址编辑、地址添加、快递选择、智能导入微信地址
  • 余额:余额支付、余额详情、余额记录、余额提现、余额提现记录
  • 文章:公告列表、公告详情、帮助中心、站内资讯
  • 收藏:收藏列表、删除收藏、添加收藏
  • 评价:评价列表、评价提交
  • 用户信息:用户信息、等级详情、折扣详情、修改密码、修改资料
  • 红包/优惠券:红包列表、使用红包
  • 优惠:优惠活动、优惠商品
  • 积分:积分记录列表、使用积分
  • 微信:微信登陆、微信支付
  • 推广:推广分佣、返佣记录

 

 

小程序配置

简单版:

您只需要修改 weeshop 目录下的 weeshop.config.js 文件中的 shopUrl 为您的商城地址即可。

流程版:

0、注意并且必须设定小程序基础库版本为 2.2.3 以上。如何设置小程序基础库版本?请 Google !

1、安装 ecshop 3.6 以上版本商城 安装目录指向到项目目录下的 ecshop 目录

2、安装 ecshop 3.6 以上版本 appserver 即后台接口 安装目录指向到项目目录下的 appserver 目录的 public 文件夹

3、构建小程序,选择 weeshop 目录

4、打开 weeshop 目录下的 weeshop.config.js

5、修改商城 shopUrl 地址。

6、修改API接口 apiUrl 地址,为空则默认为商城地址的二级 api 域名。【如您的商城shopUrl地址为 darlang.com,如果apiUrl地址不填写,则apiUrl地址默认为 api.darlang.com】

7、注意:上述「5、6」需为完整的地址,包含 http/https

 

 

 

 

讨论与反馈

如有疑问,或发现使用过程中发现 bug ,请在下方参与讨论,谢谢。

QQ 群讨论:

本群讨论的是 weeshop ,其他的请勿讨论。

Github 开源地址:https://github.com/crlang/weeshop

下载地址:点击下载

 

 

项目已有线上案例,如提示出错,请注意你的 ECShop 的配置是否正确。

 

 

使用疑惑

1、关于 ecshop 版本问题

该小程序所有接口均来自原生的 ECShop 3.6 版本的 appserver 。

如果出现接口错误,请保证配置正确,能正常访问 ecshop.xxx 及能正常访问 api.ecshop.xxx 。「注:ecshop.xxx 为版本 3.6 的 ecshop 商城的地址」

 

2、关于能访问 api.ecshop.xxx 但没有 Hi 问题

检查 api 地址是否为 PHP 5.6 及以上版本

 

并保证appserver中存在 .env 文件,配置如下:

  1. APP_ENV=local
  2. APP_LOCALE=zh-CN
  3. APP_TIMEZONE=PRC
  4. APP_NAME=ECAPI
  5. #显示调试信息
  6. APP_DEBUG=true
  7. #商城url
  8. SHOP_URL=http://xxx.xxx.com#ecshop地址
  9. #分享url
  10. SHARE_URL=http://xxx.xxx.com
  11. HOSTS=http://xxx.xxx.com#ecshop地址
  12. #H5商城
  13. SHOP_H5=http://xxx.xxx.com/h5#H5地址
  14. #注册协议地址
  15. TERMS_URL=http://ecshop.crlang.com/article.php?cat_id=-1
  16. ABOUT_URL=http://ecshop.crlang.com/article.php?cat_id=-2
  17. DB_CONNECTION=shop
  18. DB_TIMEZONE=+08:00
  19. #商城数据库
  20. SHOP_DB_HOST=localhost
  21. SHOP_DB_PORT=3306#数据库端口,默认3306
  22. SHOP_DB_DATABASE=ecshop#数据库名称
  23. SHOP_DB_USERNAME=ecshop#数据库用户账号
  24. SHOP_DB_PASSWORD=password#数据库用户密码
  25. SHOP_DB_PREFIX=ecs_#表前缀
  26. #Token授权加密key
  27. TOKEN_SECRET= d7qe2zds1lt8fij1f0jfsplrr20f5eo3#随机32为数字、字母
  28. TOKEN_ALG=HS256
  29. TOKEN_TTL=43200
  30. TOKEN_REFRESH=false
  31. TOKEN_REFRESH_TTL=1440
  32. TOKEN_VER=1.0.0
  33. #短信验证信息模版
  34. SMS_TEMPLATE=#CODE#,短信验证码有效期30分钟,请尽快进行验证。
  35. #缓存 支持 file memcached redis
  36. CACHE_DRIVER=file
  37. #队列处理
  38. QUEUE_DRIVER=sync
  39. #邮件发送配置
  40. MAIL_DRIVER=smtp
  41. MAIL_HOST=
  42. MAIL_PORT=
  43. MAIL_USERNAME=
  44. MAIL_PASSWORD=
  45. MAIL_FROM_ADDRESS=
  46. MAIL_FROM_NAME=ECMobile

3、关于 H5 访问显示 网络错误

查看你的 ecshop目录下的 h5/config/config.app.js 是否存在该文件,没有则创建一个,配置修改如下

  1. var GLOBAL_CONFIG = {
  2.     'API_HOST': 'http://api.xxx.xxx',// ecshop 的 api 地址
  3.     'APP_NAME': 'Demo',
  4.     'APP_DESC': 'This is a demo',
  5.     'APP_KEYWORDS': 'Demo, Shop',
  6.     'DEBUG': true,
  7.     'ENCRYPTED':false,
  8.      //如果公众号没有配置,将for_weixin置为false,才能在微信中使用
  9.     'FOR_WEIXIN':true
  10. };

 

4、关于访问能得到 Hi 前提下,但无法获取内容,或是内容提示 500 错误。

那么问这个问题一般都是 nginx 服务器的了。

 

4.1、尝试访问 api.ecshop.xxx/v2/ecapi.config.get ,是否提示 404?如果是:

访问情况参考下方 图1、图2 。

不正常的显示如下图1:

正常的显示如下图2:

 

Nginx 解决办法

在 api.ecshop.xxx.conf 的 nginx  配置中添加如下内容,即可

  1. location / {
  2.   if (!-d $request_filename){
  3.     set $rule_0 1$rule_0;
  4.   }
  5.   if ($rule_0 = "1"){
  6.     rewrite ^/(.*)/$ /$1 permanent;
  7.   }
  8.   if (!-d $request_filename){
  9.     set $rule_1 1$rule_1;
  10.   }
  11.   if (!-f $request_filename){
  12.     set $rule_1 2$rule_1;
  13.   }
  14.   if ($rule_1 = "21"){
  15.     rewrite ^/ /index.php last;
  16.   }
  17. }

重启 nginx 即可。

 

Apache 解决办法

在 api 域名的 appserver 的文件入口文件 public 中新建一个文件 .htaccess 文件

注意:文件没有名字,只有后缀名

在 .htaccess 文件中添加如下内容,即可

  1. <IfModule mod_rewrite.c>
  2.     <IfModule mod_negotiation.c>
  3.         Options -MultiViews
  4.     </IfModule>
  5.     RewriteEngine On
  6.     # 如果不是文件夹,则重定向尾随斜杠
  7.     RewriteCond %{REQUEST_FILENAME} !-d
  8.     RewriteRule ^(.*)/$ /$1 [L,R=301]
  9.     # 处理前控制器
  10.     RewriteCond %{REQUEST_FILENAME} !-d
  11.     RewriteCond %{REQUEST_FILENAME} !-f
  12.     RewriteRule ^ index.php [L]
  13. </IfModule>

 

 

4.2、获取内容时返回 405 状态码,提示跨域:No 'Access-Control-Allow-Origin' header

如访问 h5 ,控制台输出如图提示

解决参考 4.1

 

4.3 关于访问 api.ecshop.xxx.com/v2/ecapi.product.list 能正常提示,提示如上图2

请注意 ecshop 和 api 的协议是否一致,不允许出现一个为 https 另一个为 http

如下错误示范:

  1. 商城:https://ecshop.xxx.com
  2. api 地址:http://api.ecshop.xxx.com

正确示范:

  1. 商城:https://ecshop.xxx.com
  2. api 地址:https://api.ecshop.xxx.com

 

4.4 关于配置正确,访问 H5 提示网络错误,api 请求出现 blocked:mix-content

解决参考4.3

 

5、关于小程序登录失败,提示未授权

由于微信更新后,授权机制更改了,原有的授权登录与新的略有不同,修改为新的授权方式即可,新版本已经更新为新的授权方式。

 

6、提示未开启小程序

请在商城后台开启小程序,如下图

 

7、关于提示 "不在以下 request 合法域名列表中,请参考…"

如下图:

请参考这篇文章:微信小程序提示 https://xxx.com 不在以下 request 合法域名列表中,请参考…

 

x、关于提示:“您尚未获取旗舰版商业授权!”

请前往ecshop官方网站购买授权。

如果个人开发测试,可参考下方操作,暂时的去授权验证。

隐藏密码请加群,查看群公告获取。

 

 

 

 

相关文章

评论已关闭。