本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:该项目是一个完整的电商应用解决方案,包括微信小程序前端、后台管理系统以及数据库配置。它提供了一个可运行的电商系统实例,包含购物模块如商品浏览、购物车、结算及订单管理等。旨在帮助开发者快速掌握微信小程序开发流程和后台管理系统构建,适用于学习和实际应用。
微信小程序

1. 微信小程序开发流程概述

微信小程序作为一种新型的应用形式,其开发流程包含了从需求分析到产品上线的多个步骤。 #1.1 微信小程序的开发准备 是整个流程的基础,涉及到对微信小程序开发文档的研究、开发环境的搭建、微信开发者工具的熟悉以及了解小程序的框架结构。开发者需要注册成为微信小程序开发者,获取AppID,这是接入微信开放能力的唯一凭证。

#1.2 小程序的设计与规划阶段 ,要明确产品定位、目标用户群体、核心功能以及界面布局。设计阶段的成功与否直接关系到产品的用户体验和市场接受度。这需要UI/UX设计师参与,制定界面风格、颜色方案、用户流程和交互动效。

接着进入 #1.3 开发实现阶段 ,包括前端界面的编写和后端数据接口的开发。微信小程序支持使用WXML、WXSS、JavaScript语言开发界面,并通过API与微信服务器进行交互。后端开发通常使用服务器语言如Node.js、Python等,构建RESTful API供小程序前端调用。

以下是示例代码块,展示小程序如何获取用户信息:

// 在小程序的前端页面中调用API获取用户信息
wx.getUserProfile({
  desc: '用于完善会员资料',
  success: function(res) {
    console.log(res.userInfo);
  }
});

整个开发流程需要遵循微信官方的规范和接口调用限制,确保开发的小程序能够顺利通过微信的审核并上线。在开发过程中,不断的测试和优化是保证小程序高质量上线的关键。

2. 后台管理系统构建与架构设计

2.1 后台系统的功能需求分析

2.1.1 用户管理模块设计

用户管理模块是后台管理系统的基础组件之一,负责处理用户注册、登录、信息修改以及权限分配等功能。在设计用户管理模块时,需要考虑到以下几个方面:

  • 安全性 :用户密码需要加密存储,同时还要提供忘记密码、两步验证等安全特性。
  • 性能 :对于登录和用户信息的查询要优化以保证快速响应。
  • 用户体验 :界面设计要简洁直观,操作流程要符合用户的直觉。

基于以上考虑,我们可以采用如下的设计方案:

flowchart LR
    A[用户管理模块] --> B[用户注册]
    A --> C[用户登录]
    A --> D[信息修改]
    A --> E[权限分配]

2.1.2 商品管理模块设计

商品管理模块涉及到商品的增加、删除、修改和查询等功能。对于电商平台来说,这个模块的设计尤其重要,需要考虑以下几个关键点:

  • 商品信息结构设计 :应该包含商品名称、描述、价格、库存、图片、分类等信息。
  • 搜索和筛选功能 :允许管理员和用户通过关键词、分类、价格区间等多种条件进行商品搜索和筛选。
  • 库存管理 :实时更新库存信息,防止超卖现象。

商品管理模块的逻辑流程图可以表示为:

flowchart LR
    A[商品管理模块] --> B[商品增加]
    A --> C[商品删除]
    A --> D[商品修改]
    A --> E[商品查询]

2.1.3 订单处理与物流跟踪

订单处理模块是后台系统中直接与收益相关的模块,需要处理订单的创建、修改、取消和查询等功能。同时,物流跟踪系统需要与第三方物流服务进行集成,以提供给用户准确的物流信息。

订单模块的设计要点包括:

  • 订单状态管理 :实时更新订单状态,包括待支付、已支付、发货中、已送达等。
  • 退款和售后处理 :建立完善的退款机制和售后服务流程。
  • 异常订单处理 :对于异常订单要及时发现并提供解决方案。
flowchart LR
    A[订单处理与物流跟踪] --> B[订单创建]
    A --> C[订单修改]
    A --> D[订单取消]
    A --> E[订单查询]
    A --> F[物流信息更新]

2.2 后台系统的数据库设计

2.2.1 数据库表结构设计

数据库设计是后台管理系统开发的基石。一个好的数据库设计可以大大提高数据操作的效率和系统整体的性能。在设计数据库表结构时,要遵循如下的原则:

  • 合理性 :表结构应符合实际业务需求,既不过于复杂也不过于简陋。
  • 可扩展性 :预留扩展字段,以适应未来可能的业务变更。
  • 规范化 :根据数据库规范化理论,最小化数据冗余。

以用户信息表为例,基本结构设计可能如下:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100),
    phone VARCHAR(20),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

2.2.2 关系模型与数据一致性

关系数据库依靠表之间的关联来表达数据之间的联系。设计时要确保数据之间关系的正确性,避免产生数据不一致的情况。例如,当商品从库存中被删除时,相关的订单信息也应该得到相应的处理。

数据一致性的保障通常依赖于数据库事务的ACID属性(原子性、一致性、隔离性、持久性),确保所有的操作要么完全执行,要么完全不执行。这可以通过SQL事务来实现:

START TRANSACTION;
UPDATE products SET stock = stock - 1 WHERE id = 10;
UPDATE orders SET status = 'Shipped' WHERE product_id = 10;
COMMIT;

在上述示例中,只有当两个操作都成功执行时,事务才会提交。如果有任何错误发生,事务会被回滚,以保持数据的一致性。

2.3 后台系统的开发技术选型

2.3.1 选择合适的开发框架

选择合适的开发框架是提高开发效率和系统性能的关键。对于现代的后台系统来说,主流的开发框架有Spring Boot、Django、Express.js等。这些框架都提供了高效的开发模式、丰富的组件库以及完善的安全机制。

例如,使用Spring Boot进行后台开发,可以快速启动项目并利用Spring强大的生态构建RESTful服务。通过Spring Initializr(https://start.spring.io/)可以方便地生成项目的基础结构。

2.3.2 搭建开发环境与配置

搭建一个合适的开发环境对于项目的顺利进行至关重要。环境配置包括数据库、开发框架、版本控制工具(如Git)以及一些必要的开发工具(如IDE、构建工具等)。

这里以Java开发环境为例,需要安装JDK、IDE(如IntelliJ IDEA或Eclipse),并且配置好数据库环境(如MySQL、PostgreSQL等)。对于代码的版本管理,则可以使用Git,并将代码托管到GitHub、GitLab或Bitbucket等平台上。

2.3.3 编写后台API接口

编写后台API接口是后台系统构建过程中的核心工作。API接口需要符合RESTful设计原则,以提供清晰、简洁的资源访问路径。

以Spring Boot为例,可以利用Spring MVC来快速创建RESTful接口。以下是一个简单的用户管理模块的用户注册接口实现:

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public ResponseEntity<?> registerUser(@RequestBody User user) {
        userService.registerUser(user);
        return new ResponseEntity<>("User registered successfully", HttpStatus.CREATED);
    }
}

在这个例子中, UserController 类定义了一个接收用户信息的注册方法。使用 @PostMapping 注解来表示这个方法响应HTTP POST请求, @RequestBody 用于接收请求体中的用户信息。然后,方法中调用 UserService 进行业务处理,并返回注册结果。

3. 数据库设计与SQL应用精讲

3.1 数据库设计原则与规范化

数据库设计是软件开发过程中的核心环节之一。良好的数据库设计不仅可以确保数据的准确性、完整性和一致性,还能提高数据操作的效率。规范化理论是数据库设计的基石,而实际应用中的设计案例则展示了这些理论在现实世界中的具体应用。

3.1.1 数据库规范化理论基础

规范化是指通过消除数据冗余,确保数据依赖符合特定的范式,以达到减少数据异常的目的。范式是衡量数据库结构的标准,按照级别的不同,分为第一范式(1NF)、第二范式(2NF)、第三范式(3NF),以及更高阶的范式,如BCNF、第四范式(4NF)和第五范式(5NF)。

  • 第一范式(1NF) 要求表中的每个字段都是原子性的,不可再分。
  • 第二范式(2NF) 在1NF的基础上,要求表中的所有非主属性完全依赖于主键。
  • 第三范式(3NF) 在2NF的基础上,要求表中的所有非主属性对主键没有传递依赖,即消除传递依赖。

3.1.2 实际应用中的数据库设计案例

在实践中,数据库设计通常需要考虑业务场景。以一个电商平台为例,我们需要设计用于存储用户信息、商品信息、订单信息和物流信息的数据库。

以用户信息表的设计为例,一个非规范化的用户表可能包含用户的所有信息,如:

CREATE TABLE Users (
    UserID INT PRIMARY KEY,
    UserName VARCHAR(50),
    Password VARCHAR(50),
    ContactInfo VARCHAR(100)
);

但这样的设计存在数据冗余,如果用户有多个联系方式,则需要在表中重复存储。规范化的做法是将用户信息表分为两个表:用户基本信息表和联系信息表。每个表仅包含必要的信息,并通过外键关联。

CREATE TABLE Users (
    UserID INT PRIMARY KEY,
    UserName VARCHAR(50),
    Password VARCHAR(50)
);

CREATE TABLE Contacts (
    ContactID INT PRIMARY KEY,
    UserID INT,
    ContactInfo VARCHAR(100),
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

这种设计避免了数据冗余,并且提高了数据的一致性。

3.2 SQL语句的编写与优化

结构化查询语言(SQL)是访问和处理数据库的标准编程语言。编写有效的SQL语句对于优化数据库性能至关重要。优化包括提高查询速度和减少资源消耗。

3.2.1 基本的CRUD操作

CRUD指的是数据库中的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。一个良好的SQL实践是尽量减少事务的大小,避免不必要的数据传输和处理。

以MySQL为例,基本的CRUD操作如下:

-- Create
INSERT INTO Users (UserID, UserName, Password) VALUES (1, 'Alice', 'secret');

-- Read
SELECT * FROM Users WHERE UserName = 'Alice';

-- Update
UPDATE Users SET Password = 'newpass' WHERE UserID = 1;

-- Delete
DELETE FROM Users WHERE UserID = 1;

3.2.2 SQL查询性能优化技巧

优化查询性能通常包括使用索引、减少联结操作、选择合适的查询方式、优化子查询等策略。例如,对于查询操作,可以使用 EXPLAIN 命令查看查询的执行计划:

EXPLAIN SELECT * FROM Users WHERE UserName LIKE '%Alice%';

这有助于识别可能存在的性能问题,例如全表扫描。创建索引可以显著提升查询性能,尤其是在大型数据集上。

3.2.3 防范SQL注入的安全措施

SQL注入是一种常见的网络攻击手段,攻击者通过在SQL语句中注入恶意SQL代码,达到非法获取数据的目的。防范SQL注入的最佳实践包括使用预处理语句和参数化查询。

以Python的 sqlite3 模块为例:

import sqlite3

# 使用参数化查询
conn = sqlite3.connect('database.db')
c = conn.cursor()

# 假设我们不知道用户名,我们需要检查它是否存在
username = 'admin'
query = "SELECT * FROM Users WHERE UserName = ?"

c.execute(query, (username,))
user = c.fetchone()

if user:
    print("User exists")
else:
    print("User does not exist")

这种方式可以确保用户输入被正确地处理,避免了SQL注入的风险。

3.3 数据库的备份与恢复策略

数据库备份与恢复是确保数据安全的重要措施。良好的备份策略可以帮助我们在数据丢失或损坏时迅速恢复。

3.3.1 数据备份的方法与实践

数据库备份通常包括全备份、增量备份和差异备份。全备份是指备份数据库的所有数据,增量备份只备份自上次备份以来发生变化的数据,差异备份则备份自上次全备份以来发生变化的数据。

使用命令行工具进行全备份的一个简单示例:

mysqldump -u root -p --all-databases > full_backup.sql

3.3.2 数据恢复流程及注意事项

数据恢复是备份的逆过程。在执行恢复操作之前,应确保数据源与目标环境相匹配,并测试备份的有效性。在数据丢失后,应立即停止所有写操作,防止数据的进一步损坏。

以MySQL为例,数据恢复过程可能如下:

mysql -u root -p < full_backup.sql

在恢复数据之前,还需要考虑时区问题、字符集问题以及可能的版本兼容性问题。正确的备份和恢复流程是保障企业数据安全的必要手段。

通过以上章节内容,我们可以看到数据库设计与SQL应用不仅涉及理论知识,还包括实际应用技巧。这些内容对于IT行业的专业人士而言,是提升数据库操作和维护能力的宝贵资料。

4. 前后端交互实现与最佳实践

4.1 前后端分离模式的优势分析

4.1.1 解耦前后端的必要性

随着软件开发领域的不断进步,前后端分离已成为一种流行且高效的应用开发模式。在传统的全栈开发模式中,前端和后端紧密耦合,这导致了诸多问题,如开发效率低下、技术选型受限、维护困难等。解耦前后端,实现前后端分离势在必行。

首先,前后端分离能够提高开发效率。前端开发者可以专注于用户界面的设计与实现,而无需关注后端的业务逻辑。后端开发者则可以专注于数据处理和业务逻辑的实现,二者可以并行开发,极大地提高了项目的开发速度。此外,前后端分离后,前后端团队可以采用不同的开发语言和框架,各取所长,更加灵活。

其次,解耦前后端还有利于资源的复用和应用的扩展。前端页面可以作为一个独立的应用部署,通过API接口与后端交互,不仅可以复用在不同的设备和平台上,还能支持多种客户端的接入,如Web、移动端等。

4.1.2 前后端分离的架构设计

前后端分离架构的核心在于定义清晰的API接口,作为前后端交互的契约。为了实现这种架构,我们需要合理设计前端的单页面应用(SPA)和后端的API服务。

在前端,SPA模式下的单页应用可以使用现代前端框架如React、Vue或Angular来构建。这些框架提供了丰富的交互式UI组件,使得开发复杂的单页应用更加容易。SPA通过JavaScript动态地从后端API获取数据,并在用户交互时更新页面内容,而不是重新加载整个页面。

后端则需要提供一套RESTful API,这些API遵循统一的接口设计原则,使得前端能够以一种统一的方式与之交互。通常,RESTful API使用HTTP方法来表示操作,例如GET用于获取资源,POST用于创建资源,PUT用于更新资源,以及DELETE用于删除资源。REST架构的另一个特点是使用URI来标识资源,使得前端可以直观地通过这些URI来访问后端的数据。

在设计API时,还要考虑到版本控制。随着应用的不断迭代和更新,API也需要进行变更。为了避免破坏现有的前端应用,通常会为不同的API版本创建不同的端点,例如 /api/v1/ /api/v2/

4.2 接口设计与契约制定

4.2.1 RESTful API设计原则

RESTful API是基于REST架构风格的一种Web服务API设计理念。其核心原则是将应用程序划分为客户端和服务端两部分,其中服务端提供资源,客户端通过网络请求这些资源。

设计RESTful API时,需要遵循以下原则:

  • 无状态通信 :每个请求都包含了处理请求所需的所有信息,服务端不需要保存客户端的状态信息。这样有利于服务端的扩展,因为请求可以由任何服务器处理。
  • 客户端-服务器分离 :通过分离用户界面处理和数据处理,简化整体的复杂性,并允许服务器和客户端独立地发展。
  • 统一接口 :RESTful API使用统一的接口来减少复杂性,提高可预测性。典型的做法是使用HTTP协议的动词(GET、POST、PUT、DELETE等)来表示操作,使用URI来表示资源。
  • 可缓存性 :为了提高性能,响应中需要包含是否可缓存的信息。如果响应可以被缓存,那么客户端或中间件可以重用之前的响应,减少了不必要的网络通信。

4.2.2 使用Swagger定义接口契约

Swagger是一个流行的API开发工具集,它允许开发人员设计、构建、记录和使用RESTful Web服务。Swagger定义了一个API的规范(OpenAPI),它能够自动生成接口文档和客户端库代码。

使用Swagger定义接口契约的步骤如下:

  1. 定义OpenAPI规范 :编写YAML或JSON格式的规范文件,描述API的路径、方法、输入输出格式以及其它元数据。这个文件定义了API契约。

  2. 编写API的控制器逻辑 :根据OpenAPI规范来编写后端的API控制器逻辑。Swagger提供注解,可以将控制器与规范关联,确保实现与定义一致。

  3. 生成文档和客户端代码 :Swagger工具可以解析OpenAPI规范,自动生成API文档和客户端代码。文档可以供前端开发者查阅,而客户端代码可以方便前端开发者调用API。

  4. 测试和验证 :开发者可以使用Swagger UI界面进行API测试,也可以编写自动化测试脚本,确保API按照OpenAPI规范正确执行。

4.3 前端调用后台API的实现技术

4.3.1 Ajax和Fetch API的使用

Ajax(Asynchronous JavaScript and XML)是JavaScript编程中用于创建异步网络请求的技术。而Fetch API是现代浏览器提供的一个新的替代传统XMLHttpRequest的方法,它提供了更为强大和灵活的方式来处理网络请求。

Ajax的基本实现方法

function fetchData(url) {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState == XMLHttpRequest.DONE) {
                if (xhr.status == 200) {
                    resolve(xhr.responseText);
                } else {
                    reject("Error fetching data");
                }
            }
        };
        xhr.open("GET", url, true);
        xhr.send();
    });
}

fetchData('https://api.example.com/data')
    .then(response => {
        console.log('Success:', response);
    })
    .catch(error => {
        console.error('Error:', error);
    });

Fetch API的使用

fetch('https://api.example.com/data')
    .then(response => response.json())
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error('Error:', error);
    });

Fetch API较之于Ajax,其优势在于返回的Promise对象提供了更清晰的异步处理流程,并且支持现代的Promise链式调用。

4.3.2 处理跨域问题的策略

在前后端分离的架构中,前端与后端API服务器可能部署在不同的域名下,这就涉及到了跨源资源共享(CORS)问题。CORS是一种安全机制,允许一个域下的Web应用访问另一个域的资源。

处理跨域问题可以采用以下几种策略:

  1. 后端设置CORS响应头 :后端服务需要在响应头中包含 Access-Control-Allow-Origin 字段来指定哪些域可以访问资源。例如,如果你的API服务器允许来自 https://example.com 域的请求,那么相应的HTTP响应应该包含如下头:

    http Access-Control-Allow-Origin: https://example.com

    为了允许任何域访问,可以使用 * 作为通配符:

    http Access-Control-Allow-Origin: *

    注意,使用 * 可能不适合生产环境,因为它降低了安全性,允许任何域发起的请求。

  2. 使用代理服务器 :在前端服务器上设置一个代理,将前端请求转发到实际的API服务器。这样,前端应用看起来是在同一个源下发出请求,从而绕过了浏览器的跨域限制。

  3. JSONP :JSON with Padding(JSONP)是一种老旧的技术,主要用于解决老版本浏览器的跨域问题。然而,由于其安全性较低,不推荐使用。

处理跨域问题时,还需要注意预检请求和带凭证的请求。预检请求会先发送一个OPTIONS请求来询问服务器是否允许跨域请求,而带凭证的请求则会包含cookies和HTTP认证信息。

在实际开发中,建议前端开发者与后端开发者密切合作,按照应用安全最佳实践来设置CORS,以保证应用既能正常工作,又不会引入安全漏洞。

5. 用户认证与安全性强化

5.1 用户认证机制详解

用户认证是保护应用程序安全性的首要步骤,它确保只有合法用户才能访问系统资源。在微信小程序开发中,用户认证机制尤为重要,因为它们通常涉及敏感的用户数据。

5.1.1 OAuth2.0和JWT认证流程

OAuth2.0协议为用户、应用和服务器之间的安全认证提供了一套标准流程。在微信小程序中,一般会使用微信提供的登录API,这其实是一个简化版的OAuth2.0流程。

具体步骤如下:
1. 小程序发起登录请求,携带appid和scope等参数,请求微信服务器。
2. 用户同意授权后,微信服务器会返回一个授权码给小程序。
3. 小程序携带授权码,请求服务器的后台API,并获取access_token。
4. 使用access_token获取用户信息,并进行业务处理。

在用户认证过程中,JSON Web Tokens(JWT)通常被用于传输由服务器签发的包含用户身份信息的令牌。JWT流程大致如下:
1. 用户登录成功后,服务器生成一个JWT返回给小程序。
2. 小程序将JWT存储在本地(例如本地缓存)。
3. 每次发起请求时,小程序都会将JWT附加到HTTP请求头中。
4. 服务器接收到请求后,对JWT进行解析和验证。
5. 根据验证结果,服务器决定是否允许请求访问受保护的资源。

5.1.2 单点登录(SSO)的实现

单点登录(SSO)是用户认证的一种高级形式,允许用户在多个应用程序之间共享一个登录状态。在微信小程序中实现SSO,可以使用微信提供的统一登录授权服务。

实现步骤:
1. 用户通过微信登录一次,得到一个授权码。
2. 使用授权码,向微信的SSO服务请求access_token。
3. 得到access_token后,向SSO服务注册一个回调地址,用于接收后续的登录状态变更通知。
4. 当用户需要访问其他微信小程序或服务时,用户不需要再次登录,直接使用已有的access_token。

5.2 后台安全防护措施

后台系统作为服务器端,存储和处理着大量用户数据和业务逻辑,因此需要格外重视安全性。

5.2.1 防护XSS和CSRF攻击

跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是后台系统常见的安全威胁。

XSS防护措施:
- 输入验证:对所有用户提交的数据进行验证,拒绝不符合预期格式的输入。
- 输出编码:对输出到HTML页面的变量进行编码,避免恶意脚本执行。

CSRF防护措施:
- 使用Anti-CSRF令牌:在表单或API请求中加入一个随机的令牌,每次请求都需要验证该令牌。
- 检查Referer头部:检查HTTP请求的Referer头部,确保请求是来自合法页面。

5.2.2 HTTPS和SSL/TLS的配置

为了确保数据传输的安全性,后台系统应支持HTTPS协议,并通过SSL/TLS加密数据传输。

配置步骤:
1. 为服务器申请SSL/TLS证书。
2. 配置服务器,使其支持HTTPS协议,并将证书部署到服务器。
3. 确保所有HTTP流量都被重定向到HTTPS。
4. 定期更新证书和服务器配置,以应对安全威胁。

5.3 安全性测试与监控

安全性测试和监控是保障后台系统长期安全运行的重要环节。

5.3.1 渗透测试的实施步骤

渗透测试是一种安全评估手段,可以模拟攻击者的攻击过程,发现系统的安全漏洞。

实施步骤:
1. 准备阶段:确定测试范围,获取必要的授权,了解目标系统的架构和业务流程。
2. 侦察阶段:搜集目标系统的相关信息,包括公开可获得的IP地址、域名、服务版本等。
3. 攻击阶段:使用各种工具和技巧对系统进行攻击,尝试发现并利用安全漏洞。
4. 报告阶段:整理测试结果,编写详细的渗透测试报告,包括发现的安全漏洞和建议的修复方案。

5.3.2 使用监控工具实时防护

实时监控工具可以在攻击发生时及时发现异常行为,并采取相应措施。

监控工具配置:
- 配置入侵检测系统(IDS)和入侵防御系统(IPS)来监控和阻断可疑流量。
- 使用日志管理工具收集和分析服务器和应用日志,及时发现异常模式。
- 设置实时警报,一旦检测到潜在的安全威胁,立即通知管理员。

通过上述章节,我们探讨了在微信小程序开发中用户认证与安全性强化的重要性、具体实现方法以及如何进行安全性测试与监控。这些内容对于确保用户数据的安全和后台系统的稳定运行是不可或缺的。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:该项目是一个完整的电商应用解决方案,包括微信小程序前端、后台管理系统以及数据库配置。它提供了一个可运行的电商系统实例,包含购物模块如商品浏览、购物车、结算及订单管理等。旨在帮助开发者快速掌握微信小程序开发流程和后台管理系统构建,适用于学习和实际应用。


本文还有配套的精品资源,点击获取
menu-r.4af5f7ec.gif

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐