【会员】会员等级、积分、签到
本小节,我们主要看看会员等级、积分、签到相关的表。
#1. 会员等级会员等级,将会员分成不同的等级,给予相应的折扣。例如说:商城下单时,会员等级为 1 的用户,可以享受 9 折优惠。
它的后端由 level 包实现,表关系如下图所示:
#1.1 表结构member_level 表,会员等级(配置)表,由 MemberLevelService 实现。表结构如下:
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
1234567891011CREATE TABLE `member_level` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '等级名称 ...
无题
支付安全:大厂如何防止订单重复支付的揭秘mp.weixin.qq.com 老 D 传说 字节跑动
在如今数字支付横行的时代,我们常常在购物、服务支付等场景中使用在线支付。然而,你可曾想过,背后的支付系统是如何确保你的订单不会被重复支付,保障交易安全的呢?本文将带你深入了解大厂是如何通过巧妙的设计和多层次的防护机制来避免订单重复支付的。
支付流程概览首先,我们先来简单了解一下典型的支付流程。通常,当我们提交订单后,支付流程会经过以下关键步骤:
1,提交订单:用户在商家平台上提交订单,生成支付请求。
2,支付网关:订单经过支付网关,连接着第三方支付渠道(如微信、支付宝、银联等)。
3,支付中心交互:支付中心与第三方支付渠道进行交互,完成支付。
4,支付结果通知:支付中心异步接收支付结果,更新支付状态,并通知业务应用进行订单状态更新。
常见问题:订单掉单在这一过程中,可能会面临一个棘手的问题,即订单掉单。无论是由于网络超时、程序错误,还是其他原因,都有可能导致支付成功但订单状态未更新,从而引发用户投诉或重复支付。
1,外部掉单和内部掉单:
a,外部掉单:由提交订单到支付成功的过程中,可能出现 ...
【会员】会员用户、标签、分组
本小节,我们主要看看会员用户、标签、分组相关的表。如下图所示:
#1. 会员用户会员用户,由 MemberUserService 实现。
#1.1 表结构
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
123456789101112131415161718192021222324252627CREATE TABLE `member_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机号', `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL D ...
【会员】 微信小程序登录
前置阅读文章:
《用户体系》
《三方登录》
本文是 《三方登录》 的延伸,讲解 yudao-mall-uniapp (opens new window)商城小程序如何实现微信 小程序 登录的功能。
#1. 小程序准备友情提示:
本文,我们以“测试小程序”举例子,方便大家操作,认证一个小程序太难了!!!
① 参考 微信小程序测试号申请 (opens new window)链接,申请一个测试小程序。
② 将 AppID 和 AppSecret 配置,设置到后端项目 application-local.yaml 的 wx.miniapp 配置项中。如下图所示:
③ 使用 HBuilder 打开 yudao-mall-uniapp 项目根目录的 manifest.json 文件,将微信小程序配置的 AppID 改成你自己的。如下图所示:
#2. 代码实现#2.1 项目启动① 下载 微信开发者工具 (opens new window),并进行安装。
② 参考 《快速启动【前端】》 文档的「2. uni-app 商城移动端」小节,将 yudao-mall-uniapp 商城项目跑起来。
...
【会员】微信公众号登录
前置阅读文章:
《用户体系》
《三方登录》
本文是 《三方登录》 的延伸,讲解 yudao-mall-uniapp (opens new window)商城小程序如何实现微信 公众号 登录的功能。
#1. 公众号准备友情提示:
本文,我们以“测试公众号”举例子,方便大家操作,认证一个公众号太难了!!!
① 参考 微信公众平台接口测试帐号申请 (opens new window)链接,申请一个测试公众号。
② 将 appID 和 appSecret 配置,设置到后端项目 application-local.yaml 的 wx.mp 配置项中。如下图所示:
③ 修改“JS接口安全域名”,设置为前端的访问地址。例如说,现在本地是 http://127.0.0.1:3000。如下图所示:
注意:自己需要关注下自己的测试公众号!!!
④ 修改“网页授权获取用户基本信息”,设置为前端的访问地址。例如说,现在本地是 http://127.0.0.1:3000。如下图所示:
补充说明:如果你是正式的公众号,需要额外看下这部分的内容:
① 设置“IP白名单”,在公众号的 [设置与开发 - 安 ...
【会员】功能开启
1. 概述会员中心,围绕“会员”建设,包括会员用户、VIP 等级、经验、积分、签到等一系列的功能。
疑问:什么是会员?
对于管理系统来说,管理员是它的用户,也就是项目中的 system_users 表
而对于商城、论坛、博客等前台系统来说,会员是它的用户,也就是会员中心的 member_user 表。
#2. 后端启动考虑到编译速度,默认 yudao-module-member 模块是关闭的,需要手动开启。步骤如下:
第一步,开启 yudao-module-member 模块
第二步,导入会员的 SQL 数据库脚本
第三步,重启后端项目,确认功能是否生效
#2.1 开启模块① 修改根目录的 pom.xml (opens new window)文件,取消 yudao-module-member 模块的注释。如下图所示:
② 修改 yudao-server 目录的 pom.xml (opens new window)文件,引入 yudao-module-member 模块。如下图所示:
③ 点击 IDEA 右上角的【Reload All Maven Projects】,刷新 Mav ...
支付宝、微信退款接入
0. 概述在 yudao-module-pay-biz 模块的 demo (opens new window)模块,我们提供了一个 退款 接入的示例,它已支持支付宝、微信的所有退款方式。
下面,我们以 demo 模块为例子,讲解如何接入退款。
#1. 第一步,创建支付订单① 如果你是看支付宝退款接入,则需要先看完 《支付宝支付接入》 文档
② 如果你是看微信退款接入,则需要先看完 《微信小程序支付接入》 或 《微信公众号支付接入》 文档
③ 然后,我们在 [支付管理 -> 支付&退款案例] 菜单,可以看到一个可以“发起退款”的订单。如下图所示:
#2. 第二步,实现退款调用【重要】友情提示:由于 demo 模块的退款接入已经实现,这里你只要看懂什么意思即可,不用操作。
① 【后端】在 demo 模块所在的 yudao-module-xx-biz 模块的 pom.xml 文件,引入 yudao-module-pay-api 依赖,这样才可以调用到 PayOrderApi 接口。代码如下:
12345<dependency> <groupId> ...
微信小程序支付接入
前置阅读:
① 阅读 《支付功能开启》 和 《支付宝支付接入》 文档,一定要先跑通支付宝支付流程!!!不跑通支付宝,微信小程序支付更跑不通。
② 阅读 《微信小程序登录》 文档,因为微信小程序支付需要先微信小程序登录,超级麻烦的说!
注意,微信小程序支付不能使用“测试小程序”,必须使用认证过的小程序。
微信小程序支付,使用 WxLitePayClient 客户端进行对接。
下面,我们以 yudao-mall-uniapp 商城项目,演示微信小程序支付的接入流程。
友情提示:
http://yunai.natapp1.cc (opens new window)域名,是我后端项目的访问域名
所以,你的后端项目要使用 《内网穿透》 实现独立域名!!!
#1. 第一步,配置支付渠道访问 [支付管理 -> 应用信息] 菜单,点击“商城应用”对应的【微信 JSAPI 支付】,进入支付渠道的配置。如下图所示:
在 https://pay.weixin.qq.com/index.php/core/account/info (opens new window)地址,可获取微信支付商户号
在 ...
微信公众号支付接入
前置阅读:
① 阅读 《支付功能开启》 和 《支付宝支付接入》 文档,一定要先跑通支付宝支付流程!!!不跑通支付宝,微信公众号支付更跑不通。
② 阅读 《微信公众号登录》 文档,因为微信公众号支付需要先微信公众号登录,超级麻烦的说!
注意,微信公众号支付不能使用“测试公众号”,必须使用认证过的公众号。并且,在阅读《公众号登录》文档时,前端项目需要使用 《内网穿透》,因为微信公众号支付只能在手机微信上测试!!!
微信公众号支付,使用 WxPubPayClient 客户端进行对接。
下面,我们以 yudao-mall-uniapp 商城项目,演示微信公众号支付的接入流程。
友情提示:
http://niubi.natapp1.cc (opens new window)域名,是我前端项目的访问域名
http://yunai.natapp1.cc (opens new window)域名,是我后端项目的访问域名
所以,你的前后端项目也要分别使用 《内网穿透》 实现独立域名!!!
#1. 第一步,配置支付渠道① 访问 [支付管理 -> 应用信息] 菜单,点击“商城应用”对应的【微信 J ...
支付宝支付接入
0. 概述在 yudao-module-pay-biz 模块的 demo (opens new window)模块,我们提供了一个 支付 接入的示例。
它支持如下支付渠道:
支付宝 电脑网站 (opens new window)支付
支付宝 手机网站 (opens new window)支付
支付宝 当面付 (opens new window)(条码支付)
支付宝 扫码 (opens new window)支付
微信 付款码 (opens new window)支付
微信 Native (opens new window)支付
疑问:为什么不支持微信小程序、公众号支付?
因为这 2 种微信支付方式,只能在微信环境中进行,而我们的接入示例使用 PC 浏览器,所以无法进行。
你可以阅读 微信小程序支付接入 和 微信公众号支付接入 文档,进行相关的支付接入。
下面,我们以 demo 模块为例子,讲解如何接入支付宝的 电脑网站 (opens new window)支付。
#1. 第一步,配置支付渠道① 在 [支付管理 -> 应用信息] 菜单,新建 demo 模块使用的支付应用。如下图 ...
