个人处理结算异步通知接口(被回调对象)
来源:互联网 发布:linux 指令-ef 编辑:程序博客网 时间:2024/06/08 05:30
/** * 个人处理结算异步通知 * * @param dto * @return */@RequestMapping(value = "/personal")@ResponseBodypublic Object personal(HttpServletRequest request, HttpServletResponse response){Map<String, String> result = new HashMap<String, String>();result.put("respCode", "N");try {String content = this.getRequestBody(request);logger.info("收到结算系统结果回调:{}", content);WithdrawCallbackDto dto=JSON.parseObject(content, WithdrawCallbackDto.class);logger.info("个人:收到结算系统结果回调:{}", dto);if (!checkSmtSign(dto)) {result.put("respMsg", "验签失败");return result;}//查询个人提现记录流水WithdrawPersonalFlowEntity entity=withdrawPersonalFlowService.queryPersonalFlowByFlowNo(dto.getOutTradeNo());if(entity==null){result.put("respMsg", "操作失败:个人提现流水不存在");return result;}//校验提现流水状态是否支持退款和更新状态操作if(entity.getStatus()==WithdrawStatusEnum.ACCEPT.getStatus()){result.put("respCode", "Y");// 准备个人提现流水更新参数准备SettlementResponseDto responseDto = personalParametersPrepare(dto);// 代表结算成功if (dto.getRespCode().equals("100005")) {//更新个人提现流水操作withdrawPersonalFlowService.updateFlowBySmt(responseDto);}else{// 代表结算失败//更新个人提现流水操作withdrawPersonalFlowService.updateFlowBySmt(responseDto);//个人退还提现本金参数准备WithdrawRefundDto refundDto=personalRefundOfCommissionCharge(dto);//个人提现,退还本金处理withdrawPersonalFlowService.refund(refundDto);}result.put("respMsg","验签成功,个人退款成功");}else{result.put("respMsg", "操作失败:个人提现流水状态有误");return result;}} catch (PaycoreException e) {logger.error("个人处理结算系统异步回调失败, {}", e);result.put("respMsg", e.getErrorMsg());return result;} catch(Exception e){logger.error("个人处理结算系统异步回调失败, {}", e);result.put("respMsg","系统异常" );return result;}return result;}
回调验签
private boolean checkSmtSign(WithdrawCallbackDto dto){String[] exceptParams = {"signCode", "signType"};return SignatureUtil.callBackVerify(dto, exceptParams); }xml 配置
<bean id="signUtil" class="com.qbao.signature.sign.client.CuratorZookeeperClient"init-method="init" lazy-init="false"><property name="connectString" value="${zk.hosts}" /><property name="needsAll" value="true" /></bean><bean id="verifyUtil" class="com.qbao.signature.verify.client.CuratorZookeeperClient" init-method="init" lazy-init="false"><property name="connectString" value="${zk.hosts}"/></bean>
阅读全文
0 0
- 个人处理结算异步通知接口(被回调对象)
- 支付宝异步通知处理
- 支付宝手机网页即时到账接口(4)之交易接口服务器异步通知
- angularJS系列之$q处理异步通知
- 关于ssm异步处理发送异步通知的一些问题
- 结算单尾差处理
- 商品进行 “支付宝 ” 结算(接口调用) controller层
- IOS 通知中心(个人)
- Linux 异步通知(续)
- 按键驱动程序(异步通知)
- 异步请求、处理JSON对象
- vc6操作PostgreSQL 测试下异步通知接口
- 支付宝接口使用文档说明 支付宝异步通知
- 关于java支付宝接口的异步通知的问题
- 支付宝接口使用文档说明 支付宝异步通知
- 支付宝接口使用文档说明 支付宝异步通知
- 支付宝接口异步回调不通知 服务器的原因
- 支付宝接口使用文档说明 支付宝异步通知
- java注解与APT技术
- 本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
- 欢迎使用CSDN-markdown编辑器
- springmvc常用注解标签详解
- CentOS 集群 NTP 时钟同步配置教程
- 个人处理结算异步通知接口(被回调对象)
- 判断当前日期是否在指定的开始日期和结束日期之间
- 2.4G还是5G?教你如何正确选择路由器
- ubuntu16.04 安装 eclipse
- Python 3.5+Selenium3.5 环境搭建
- volatile关键字的作用
- 01.算法设计(一)
- redis性能问题和解决方案
- CentOS hadoop配置错误Incorrect configuration: namenode address dfs.namenode.servicerpc-address ...