优惠券流程

简介: 优惠券流程

小程序优惠券流程

优惠券流程大致如下:


优惠券发放形式

优惠券一般通过领取的形式发放,也可以通过用户的状态来自动发放优惠券。

自动发放的优惠券适用于一些活动,比如:回归活动用户登录自动发放优惠券。

手动领取的优惠券,用户通过点击领取的形式获得。

优惠券通常有多种形式,而且优惠券的数量不限,例如:满减优惠券,同类型的满减优惠券可以获取多张,满505、满10010,除了满减优惠券外还有折扣优惠券,这些优惠券都可以重复领取,一个类型的优惠券可以获得多张。


优惠券使用

用户使用优惠券的时候会有限制,例如:同类型的优惠券只能使用一张,如果用户现在有满减优惠券x2折扣优惠券x3,那么用户的在使用的时候一个类型只能使用一张

一般情况下,用户使用优惠券的时候会有一个初始的最优优惠券选择,不需要用户手动选择使用哪一张,在获取或者使用的时候,后台会自动分配好当前条件下的最优优惠券搭配。其次是用户可以手动选择自己想要使用的那一张。用户在选择优惠券的时候,只要优惠券的选择发生更改,那么当前的计算金额也要随之发生更改,这样优惠券和金额就是动态且实时的计算,用户才知道当前优惠券到底优惠了多少,最后实际需要支付的金额是多少。


优惠券的使用场景

1、商品选择

2、商品详情

3、订单支付页

4、购物车页

5、…

优惠券在这么多场景下都会重复出现,那么,该优惠券实际上可以封装成一个组件,在对应的页面引入组件即可,所有选择的逻辑、搭配的逻辑以及弹窗展示的信息,都在该组件内操作,组件内操作完,返还给页面的就是最终选择的数据,页面通过返回的数据进行展示即可。


优惠券使用以及支付

优惠券选择后会自动计算金额,那么计算金额的接口参数应该有商品id商品数量优惠券id,通过这些参数请求计算金额接口。参数的结构如下:

let params = {
    goodsArr = [
    { goodsId:100 , quantity : 1 },  // 商品id 数量
    { goodsId:101 , quantity : 1 }
    ],
    discount =  [ 32001,32001 ]  // 优惠券的id集合,不同类型的券id都放在这里
}

请求计算金额接口后,后台返回的数据如下:

{
    code: 200
    data: {
            disMoney: 1.5,  // 优惠金额
            totalPrice: 20,  // 总金额
            actualPrice: 18.5, // 实际金额
            isDis : 1  // 是否使用优惠券
    }
    message: "SUCCESS"
}

该金额就是实际需要支付的金额,如果要支付,支付接口的金额数据就根据计算金额返回的数据请求。

支付

在支付的时候,其实涉及到一个支付归滚的问题,如果用户选择了优惠券,在付款的时候取消了,那么该优惠券会去哪里呢?如果用户取消支付,那么该订单会去待付款页,券还是跟商品绑定了,处于已选择的状态,如果支付成功,该优惠券 -1,如果取消支付,优惠券会重新加回来。

支付失败

如果从购物车走支付流程,用户如果支付成功,购物车需要删除对应商品;

如果用户在支付的时候取消支付,购物车也应该删除对应商品,因为该商品会走待付款流程;

总结下来就是:用户走购物车发起的支付,只要发起支付了,购物车对应的商品都应该删除。

优惠券选择

不同类型的优惠券其实是有个分类id的,同类型的优惠券只能有一张,其实就是通过分类id来做判断,如果折扣优惠券有3张,用户选择了其中一张,另外两张就得取消选中状态,其它的优惠券也是同样的逻辑。


目录
相关文章
minio配置tls以开启https访问
minio配置tls以开启https访问
3980 0
|
开发者 容器
44.[HarmonyOS NEXT RelativeContainer案例一] 掌握组件锚点布局:打造灵活精准的UI定位系统
在HarmonyOS NEXT的UI开发中,精确控制组件位置是构建复杂界面的关键。RelativeContainer作为一种强大的布局容器,通过锚点系统提供了精确定位能力,使开发者能够创建出灵活且精准的UI布局。本教程将详细讲解如何使用RelativeContainer的锚点布局功能,帮助你掌握这一核心技术。
401 4
|
存储 安全 前端开发
端到端加密:确保数据传输安全的最佳实践
【10月更文挑战第12天】端到端加密(E2EE)是确保数据传输安全的重要手段,通过加密技术保障数据在传输过程中的隐私与完整性,防止第三方窃听和篡改。本文介绍E2EE的工作原理、核心优势及实施步骤,并探讨其在即时通讯、文件共享和金融服务等领域的应用,强调了选择加密协议、密钥管理、数据加密及安全接口设计的重要性,旨在帮助企业和开发者有效保护用户数据,满足数据保护法规要求。
|
存储 小程序 Java
基于Java图书馆管理系统详细设计和实现(源码+LW+调试文档+讲解等)
基于Java图书馆管理系统详细设计和实现(源码+LW+调试文档+讲解等)
|
人工智能
西门子S7-300的硬件结构,各模块按照什么顺序来组态?
今天我们来介绍一下西门子S7-300的硬件结构,并和大家讲一下S7-300各模块是按照什么顺序来组态的。
西门子S7-300的硬件结构,各模块按照什么顺序来组态?
|
Java Spring
Gradle 如何确保依赖的版本兼容性
Gradle 通过依赖管理机制确保版本兼容性,使用声明式配置定义项目依赖,自动解析和下载所需库。它支持版本范围和动态版本,通过冲突解决策略选择最佳版本,保证构建的一致性和可靠性。
1691 3
|
供应链 安全 物联网
探索未来技术浪潮之下的区块链、物联网与虚拟现实
【8月更文挑战第30天】在科技不断进步的时代,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐渐渗透到我们生活的每一个角落。本文将深入探讨这些技术的发展趋势和应用场景,揭示它们如何重塑我们的世界。我们将从区块链技术的安全性与去中心化特性出发,探索其在金融、供应链管理等领域的应用;随后,我们将进入物联网的世界,了解它如何连接日常物品,实现智能家居、智慧城市等概念;最后,我们将沉浸在虚拟现实创造的沉浸式体验中,探索其在娱乐、教育和医疗等领域的潜力。通过这些技术的融合与创新,我们将一窥未来技术如何塑造一个更加智能、互联和沉浸的世界。