头条的app用户 可以进行实名认证,认证通过的用户会开通自媒体账户,去自媒体平台发表文章具体流程:
    1 前端信息上传
    在前端通过眨眼,张嘴,摇头,点头等动作,确保操作为真实的活体人脸,采集活体照片另外还需要上传,身份证正反面,手持身份证照片进行提交实名认证适合
    2 平台运营端人员,对用户认证信息进行初检,进行审核, 通过 或者拒绝,
    如果拒绝:直接修改实名认证表状态即可
    如果通过:需要调用公安部门接口进行真实性校验,这里我们使用实人让认证接口进行监测,
    监测通过:修改实名认证状态为通过状态
    通过后基于feign调用自媒体服务,开通自媒体账户,基于feign调用文章服务,创建作者信息

    模块操作的表
    app用户表 ap_user (app账户表),app_user_realname(实名认证表)
    wemedia自媒体表:wm_user(自媒体账户表)
    article文章表:ap_author(作者信息表)

    画图
    image.png
    涉及到的技术
    用友ai实名认证 接口使用说明(服务介绍?服务开通流程?如何使用?收费情况?)
    feign远程调用使用说明
    seata分布式事务使用说明

    遇到的bug
    分布式事务:
    因为设计到了多个服务,多个数据库,虽然加了@transactional注解,但是发生异常后feign调用完毕的操作无法回滚,产生脏数据
    解决方法:
    引入seata分布式事务框架,通过seata at模式解决

    feign返回值序列化问题
    同事不小心导入了下面的依赖,controller方法返回的值变成了xml,造成了feign调用无法解析返回数据(feign默认是json解析)
    image.png
    解决方案:
    通过feign日志 logger.level=full
    排查出来指定服务的远程调用返回值类型:application/xml
    造成了feign解析失败
    删除上面的依赖即可解决