前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务项目:尚融宝(37)(核心业务流程:用户绑定(2))

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

作者头像
一个风轻云淡
发布2022-11-15 15:04:25
2520
发布2022-11-15 15:04:25
举报
文章被收录于专栏:java学习java

前端整合

pages/user/bind.vue

代码语言:javascript
复制
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:尚融宝展示账户绑定页面

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

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

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

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

step8:异步回调:

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

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

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

二、尚融宝回调接口

1、controller

UserBindController中创建回调方法

代码语言:javascript
复制
@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

代码语言:javascript
复制
void notify(Map<String, Object> paramMap);

实现:UserBindServiceImpl 

代码语言:javascript
复制
@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);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端整合
  • 四、测试
    • 1、登录
      • 2、测试
        • 3、结果
        • 一、绑定步骤总结
        • 二、尚融宝回调接口
          • 1、controller
            • 2、service
            相关产品与服务
            访问管理
            访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档