更新记录

1.0.1(2024-04-22)

描述

1.0.0(2024-04-20)

源码发布


平台兼容性

阿里云 腾讯云 支付宝云
Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


zt-stackingAdmin

  • 基于 uni-admin 基础框架开发

项目阐述

  • 这个项目并没有什么技术难点,难的我也不会~,主要是各种组件的搭配使用和项目思路,起因是看大厂的商城店铺,拖来拖去就把自己的商城店铺装修好了,于是萌发了想要自己写一个,既可以是商城又可以做信息展示型的,可通过组件自由搭建的小程序。但是,像大厂做的拖拽形式搭建的技术不会~~~,于是就有了现在这套程序。
  • 还有一点,这个项目其实是两年前做的,只不过现在重新用了比较新的 uni-admin 版本框架和新版本的 uniCloud 。使用文档有些地方没写清楚,主要是‘前端库栏目’里面搭建的内容,使用的时候注意搭建好后进行‘全局保存’就好,不然你搭建半天没有保存就白费劲了。
  • 起初是想要做收费的,可以增加点个人收入,但是想了想,这项目也没有什么特别的技术,就取消了收费,看个视频广告就可以下载用这个不过分吧,赚钱难啊~

项目特点

  • 内含多种自建插件:
  • 顶部导航栏、轮播图、标题栏、分类栏、填充区、左右滑动栏、图文模块、普通列表模块、商品模块、自建富文本模块、我的模块(包含用户微信登录、订单、购物车、客服、收货地址等等)
  • 多种组件自由搭配,每个组件都配有多种样式、参数,可以根据自己喜好调控。
  • 可配置微信小程序为:单商户商城。(其他小程序也可配置,不过现在不支持支付、退款等商城功能。其实不是不支持,是我没有对接。支付模块用的是 uniCloud 官方提供的uni-pay插件,下面使用说明会详细说明一下。)
  • 后台管理项目里面建了一个素材库,分别建了 1:1 4:3 3:4 16:9 9:16 其他视频文件夹,用来存放图片和视频。创建商品或者其他信息内容的时候,图片和视频都从素材库里面选。这么做的目的相信很多小伙伴说到这里应该就明白是什么用意了,就是为了不会重复上传素材,虽然犹豫习惯问题,有的小伙伴用起来别扭~~,习惯习惯就好了,实在不行你就自己改了就行了,源码以在这,怎么用看你自己了。

zt-stackingAdmin 后台管理演示站点 (账号:admin5182,密码:admin5182)

  • 配合zt-stackingXcx移动端使用传送门
  • 点击下面图片打开 zt-stackingAdmin 后台管理演示站点 演示图片

使用说明

云函数 说明
source 主要是对除订单以外的业务逻辑处理
zt-order 订单及物流配送的业务逻辑处理
zt-timer 定时执行云函数,关闭超 7 天未确认收货的订单业务(在 uniCloud WEB控制台,找到此云函数,在定时器触发位置编辑["55 55 10,18 * * *"]阿里云,如果你用的是其他云空间,那么就多加一个*号)
zt-timerClose 定时执行云函数,关闭两小时内未支付订单业务(在 uniCloud WEB控制台,找到此云函数,在定时器触发位置编辑["55 55 * * * *"]阿里云,如果你用的是其他云空间,那么就多加一个*号)
  • 公共云函数 common -> uni-config-center -> uni-id -> config.json 文件内配置:小程序的 appid 和密钥 appsecret
{
  "passwordSecret": "passwordSecret-demo", // 这里最好改一下,不改也行,不过要记住如果要改,最好在初始化云空间之前,创建超级管理员账号前改,不然之前的超级管理员账号就不能用了
  "tokenSecret": "tokenSecret-demo", // 这里最好改一下,不改也行,不过要记住如果要改,最好在初始化云空间之前,创建超级管理员账号前改,不然之前的超级管理员账号就不能用了
  "tokenExpiresIn": 864000,
  "tokenExpiresThreshold": 3600,
  "passwordErrorLimit": 6,
  "bindTokenToDevice": false,
  "passwordErrorRetryTime": 3600,
  "autoSetInviteCode": false,
  "forceInviteCode": false,
  "mp-weixin": {
        "tokenExpiresIn": 2592000,
        "tokenExpiresThreshold": 864000,
    "oauth": {
      "weixin": {
        "appid": "你的微信小程序 appid",
        "appsecret": " 你的微信小程序密钥"
      }
    }
  }
}
  • 公共云函数 common -> uni-config-center -> uni-pay -> config.json 文件内配置:(这个很重要,很多小伙伴在用 uni-pay 支付示例的时候成功的调起了支付,但是到了自己的实际项目确失败了,很多时候就是这个文件没有配置正确。)
const fs = require('fs');
const path = require('path')
module.exports = {
    // 统一 - 支付回调地址,格式为 "服务空间ID":"URL化地址"
    "notifyUrl": {
        // 测试环境服务空间-支付回调地址
        "云空间的SpaceID": "https://   云空间的SpaceID   .next.bspapp.com/uni-pay-co",
        // 线上环境服务空间-支付回调地址(如果只有一个服务空间,则只需要配置线上环境服务空间即可)
        "云空间的SpaceID": "https://   云空间的SpaceID   .next.bspapp.com/uni-pay-co",
    },
    "notifyKey": "5FB2CD73C7B53918728417C50762E6D4", // 跨云函数通信时的加密密钥,建议手动改下,不要使用默认的密钥,长度保持在32位即可
    // 微信支付相关
    "wxpay": {
        "enable": true, // 是否启用微信支付
        // 微信 - 小程序支付
        "mp": {
            "appId": "微信小程序 appid", // 小程序的appid
            "secret": "微信小程序密钥", // 小程序的secret
            "mchId": " 微信支付商户号", // 商户id
            "key": "微信支付商户的 v2 key", // v2的api key
            "pfx": fs.readFileSync(__dirname + '/wxpay/apiclient_cert.p12'), // v2需要用到的证书
            "v3Key": "", // v3的api key
            "appCertPath": path.join(__dirname, 'wxpay/apiclient_cert.pem'), // v3需要用到的证书
            "appPrivateKeyPath": path.join(__dirname, 'wxpay/apiclient_key.pem'), // v3需要用到的证书
            "version": 2, // 启用支付的版本 2代表v2版本 3 代表v3版本
        }
    }
}
  • 退款: 公共云函数 common -> uni-config-center -> uni-pay -> wxpay文件夹内的三个证书请到微信支付商户下载,然后替换,否则无法进行退款操作。获取微信支付商户API证书
  • 配合小程序端即可完成支付。zt-stackingXcx移动端传送门
  • 物流模块功能:
  • 一:在云空间数据库express-cool表,导入物流列表数据下载地址,导入后,后台管理-物流管理页面就能使用了。
  • 二:配置第三方物流服务,我用的是阿里云,云市场的第三方物流服务,说明一下,我跟这个商家没有任何利益关系,仅仅是我使用了他家的服务。跳转地址
if (event.action == 'getExpress') { // 查询物流信息
    let url = 'https://wuliu.market.alicloudapi.com/kdi'
    res = await uniCloud.httpclient.request(url, {
        method: 'GET',
        headers: {
          "Authorization": "APPCODE *******************" // 这里填写你购买的套餐 appCode
        },
        data:{
            type: event.type,
            no: event.no
        },
        contentType: 'json', // 指定以application/json发送data内的数据
        dataType: 'json' // 指定返回值为json格式,自动进行parse
    })
}
  • 系统管理-菜单管理,可以参照上面 后台管理演示站点对应配置。

示例图演示

演示图片 演示图片 演示图片 演示图片 演示图片 演示图片 演示图片

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT License

Copyright (c) 2020 DCloud

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问