基于P2P万信金融--day07 万信金融项搭建用户开发业务逻辑整体项目

3 用户开户

3.1 需求分析 开户是指借款用户和投资用户在注册后、交易前都需要在银行存管系统开通个人存管账户,在开户流程 中银行存管系统是一个很重要的系统,它是当前P2P平台最常见的一种模式,为了保证资金不流向P2P 平台,由银行存管系统去管理借款用户和投资用户的资金,P2P平台与银行存管系统进行接口交互为借 款用户和投资用户搭建交易的桥梁,它们之间的关系如下:

第一阶段:生成开户数据(图中1.1-1.8)

1、前端填写开户信息 前端会先查询开户信息,如果曾经填写了开户信息则在界面直接显示,用户可以修改; 如果曾经没有填 写开户信息则用户在界面填写开户信息

2、前端请求用户中心服务开户

3、用户中心服务准备开户数据,并把开户信息保存到用户中心

4、用户中心服务请求存管代理服务生成交易记录(未同步),并对开户数据进行签名

5、存管代理服务将签名后的开户数据返回给用户中心

6、用户中心将开户数据返回给前端 第二阶段:请求开户(图中2.1-2.8)

7、前端携带开户信息请求银行存管系统

8、银行存管系统向前端返回开户信息确定页面

9、前端确认完成提交开户请求到银行存管系统

10、银行存管系统接收开户数据并进行校验,校验银行卡信息,信息无误则将开户信息保存至存管系统 (校验过程中存管系统会请求开户银行校验银行卡信息)

第三阶段:开户结果通知(图中3.1-3.4)

11、开户成功后,银行存管系统异步通知存管代理服务

12、存管代理服务接收到开户成功通知后更新交易状态为同步

13、存管代理服务通知用户中心服务

14、用户中心服务接收到开户成功的消息保存开户信息

3.3 第一阶段: 生成开户数据

3.3.1 需求分析

1. 参考前面的“开户业务流程图”,熟悉该阶段的具体需求和业务流程

2. 查阅银行存管系统接口说明.pdf中的“个人绑卡开户”接口说明,熟悉接口接收参数和返回值

3.3.2 接口定义

3.3.2.1 用户中心生成开户数据接口

1. 在wanxinp2p-api工程中的ConsumerAPI接口中新增createConsumer方法:

/**
* 生成开户请求数据
* @param consumerRequest 开户信息
* @return
*/
RestResponse<GatewayRequest> createConsumer(ConsumerRequest consumerRequest);

2. 在wanxinp2p-consumer-service工程的ConsumerController类中实现该方法:

@Override
@ApiOperation("生成开户请求数据")
@ApiImplicitParam(name = "consumerRequest", value = "开户信息", required = true,
dataType = "ConsumerRequest", paramType = "body")
@PostMapping("/my/consumers")
public RestResponse<GatewayRequest> createConsumer(@RequestBody ConsumerRequest
consumerRequest) {
return null;
}

启动该工程进行环境测试(注意设置启动参数:-Denv=dev -Dapollo.cluster=DEFAULT - Dserver.port=53070)

2. 在wanxinp2p-api工程中新建depository包,在该包中新建一个DepositoryAgentApi的接口,然 后定义createConsumer方法:

/**
* 银行存管系统代理服务API
*/
public interface DepositoryAgentApi {
/**
* 开通存管账户
* @param consumerRequest 开户信息
* @return
*/
RestResponse<GatewayRequest> createConsumer(ConsumerRequest
consumerRequest);
}

3. 在wanxinp2p-depository-agent-service工程中定义DepositoryAgentController类,并实现 createConsumer方法:

/**
* 存管代理服务
*/
@Api(value = "存管代理服务", tags = "depository-agent")
@RestController
public class DepositoryAgentController implements DepositoryAgentApi {
@Override
@ApiOperation("生成开户请求数据")
@ApiImplicitParam(name = "consumerRequest", value = "开户信息", required =
true,
dataType = "ConsumerRequest", paramType = "body")
@PostMapping("/l/consumers")
public RestResponse<GatewayRequest> createConsumer(@RequestBody
ConsumerRequest
consumerRequest) {
return null;
}
}

开户的过程就是整体完成了,中间的代码过多,不过基本上按着讲义来都可以按量完成,这个是开户的业务,下面就是投标的业务和中标的业务

猜你喜欢

转载自blog.csdn.net/zgz102928/article/details/108967798