微服务项目:尚融宝(37)(核心业务流程:用户绑定(2))

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务项目:尚融宝(37)(核心业务流程:用户绑定(2))

放弃幻想,认清现实,准备斗争


前端整合



pages/user/bind.vue

commitBind() {
      this.$alert(
        '<div style="size: 18px;color: red;">您即将前往汇付宝绑定账号</div>',
        '前往汇付宝资金托管平台',
        {
          dangerouslyUseHTMLString: true,
          confirmButtonText: '立即前往',
          callback: (action) => {
            if (action === 'confirm') {
              this.$axios
                .$post('/api/core/userBind/auth/bind', this.userBind)
                .then((response) => {
                  document.write(response.data.formStr)
                })
            }
          },
        }
      )
},



1、登录


使用借款人账号登录


2、测试


访问 http://127.0.0.1:3000/user/bind


3、结果


尚融宝数据库中创建了user_bind记录

汇付宝数据库中创建了user_bind 和 user_account两条数据记录


一、绑定步骤总结




step1:用户在个人中心点击 “立即开通”  (http://localhost:3000/user/bind)

step2:尚融宝展示账户绑定页面

 

9136922450ac4ab9bd9558a5777cb2a9.png


step3:用户填写基本信息(注意:身份证必须是尚未开户),点击“开户”按钮

step4:尚融宝后台创建用户绑定信息(新建user_bind记录)

step5:跳转到汇付宝页面(资金托管接口调用)


5a0c0372f5de4a8380de81e420bce14c.png


step7:汇付宝创建绑定账号(新建user_bind和user_account记录)

step8:异步回调:

尚融宝user_bind表更新bind_code字段、status字段

尚融宝user_info表更新 bind_code字段、name字段、idCard字段、bind_status字段

step9:用户点击“返回平台”,返回尚融宝

 

2fbb4c0d0fc847bfa81355441f687bed.png


二、尚融宝回调接口



1、controller


UserBindController中创建回调方法

 

@ApiOperation("账户绑定异步回调")
@PostMapping("/notify")
public String notify(HttpServletRequest request) {
    Map<String, Object> paramMap = RequestHelper.switchMap(request.getParameterMap());
    log.info("用户账号绑定异步回调:" + JSON.toJSONString(paramMap));
    //校验签名
    if(!RequestHelper.isSignEquals(paramMap)) {
        log.error("用户账号绑定异步回调签名错误:" + JSON.toJSONString(paramMap));
        return "fail";
    }
    //修改绑定状态
    userBindService.notify(paramMap);
    return "success";
}



2、service


接口:UserBindService


void notify(Map<String, Object> paramMap);


实现:UserBindServiceImpl


@Resource
private UserInfoMapper userInfoMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void notify(Map<String, Object> paramMap) {
    String bindCode = (String)paramMap.get("bindCode");
    //会员id
    String agentUserId = (String)paramMap.get("agentUserId");
    //根据user_id查询user_bind记录
    QueryWrapper<UserBind> userBindQueryWrapper = new QueryWrapper<>();
    userBindQueryWrapper.eq("user_id", agentUserId);
    //更新用户绑定表
    UserBind userBind = baseMapper.selectOne(userBindQueryWrapper);
    userBind.setBindCode(bindCode);
    userBind.setStatus(UserBindEnum.BIND_OK.getStatus());
    baseMapper.updateById(userBind);
    //更新用户表
    UserInfo userInfo = userInfoMapper.selectById(agentUserId);
    userInfo.setBindCode(bindCode);
    userInfo.setName(userBind.getName());
    userInfo.setIdCard(userBind.getIdCard());
    userInfo.setBindStatus(UserBindEnum.BIND_OK.getStatus());
    userInfoMapper.updateById(userInfo);
}


相关文章
|
3天前
|
微服务
jeecg微服务项目调用接口报错Token验证失效的解决方法
jeecg微服务项目调用接口报错Token验证失效的解决方法
49 0
|
3天前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
204 0
|
3天前
|
Java Maven 微服务
微服务项目-将普通文件夹设为模块与添加services窗口
微服务项目-将普通文件夹设为模块与添加services窗口
10 0
|
3天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
19 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
3天前
|
Cloud Native Dubbo Java
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
37 0
|
3天前
|
XML Java 数据格式
springboot 微服务项目如何集成 html 页面
springboot 微服务项目如何集成 html 页面
36 0
|
3天前
|
Java Docker 微服务
微服务框架(三十一)Docker项目发布流程
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Docker项目发布流程 本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEAS...
|
21小时前
|
运维 监控 Docker
使用Docker进行微服务架构的部署
【5月更文挑战第18天】本文探讨了如何使用Docker进行微服务架构部署,介绍了Docker的基本概念,如容器化平台和核心组件,以及它与微服务的关系。通过Docker,每个微服务可独立运行在容器中,便于构建、测试和部署。文章详细阐述了使用Docker部署微服务的步骤,包括定义服务、编写Dockerfile、构建镜像、运行容器、配置服务通信、监控和日志管理以及扩展和更新。Docker为微服务提供了可移植、可扩展的解决方案,是现代微服务架构的理想选择。
|
1天前
|
敏捷开发 监控 API
构建高效微服务架构:从理论到实践
【5月更文挑战第18天】 在当今快速发展的软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序分解为一系列小型、独立的服务来提高系统的可伸缩性、弹性和维护性。本文旨在探讨如何从理论走向实践,构建一个高效的微服务架构。文章首先介绍微服务的基本概念和优势,然后详细讨论了在设计和部署微服务时需要考虑的关键因素,包括服务划分、通信机制、数据一致性、容错处理和监控策略。最后,结合具体案例分析,展示如何在现实世界中应用这些原则,确保微服务架构的高效运行。
|
1天前
|
存储 弹性计算 运维
探索微服务架构下的服务治理
【5月更文挑战第18天】 在当今软件工程领域,微服务架构因其灵活性、可扩展性以及促进团队协作等优势而受到广泛青睐。然而,随着系统规模的增长和服务数量的膨胀,服务治理成为确保系统稳定性和高效性的关键因素。本文将深入探讨微服务环境下的服务治理实践,包括服务发现、配置管理、负载均衡、故障处理等关键方面,旨在为开发者提供一套行之有效的服务治理策略。