ApplyClearingController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package com.hywa.banktest.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.hywa.banktest.bankframework.pack.TransVo;
  4. import com.hywa.banktest.bankframework.service.BankService;
  5. import com.hywa.banktest.bankframework.utils.StringUtils;
  6. import com.hywa.banktest.bankframework.utils.httpclient.EasyHttpUtils;
  7. import com.hywa.banktest.common.*;
  8. import com.hywa.banktest.entity.CheckBankVO;
  9. import com.hywa.banktest.entity.GetBankNo;
  10. import com.hywa.banktest.entity.TransRequest;
  11. import com.hywa.banktest.service.CarbonBankService;
  12. import com.hywa.banktest.service.OrderInfoService;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.web.bind.annotation.PostMapping;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.List;
  21. @Slf4j
  22. @RestController
  23. @RequestMapping(value = "/clearing")
  24. public class ApplyClearingController {
  25. @Autowired
  26. private ValidateSignUtils validateSignUtils;
  27. @Autowired
  28. private OrderInfoService orderInfoService;
  29. @Autowired
  30. private CarbonBankService carbonBankService;
  31. @Value("spring.datasource.url")
  32. private String url;
  33. @PostMapping(value = "/apply")
  34. public AjaxJson apply(@RequestBody ApplyClearingForm form){
  35. log.info("form==============>{}",form);
  36. if(null!=form && !"".equals(form.getSignStr())){
  37. // 验证字符串签名
  38. try {
  39. if(validateSignUtils.signVerify(form.getRecordId(),form.getSignStr())){
  40. // 开始打款
  41. orderInfoService.dealClearingRecordByRid(form.getRecordId());
  42. return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS);
  43. }else{
  44. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  45. }
  46. } catch (Exception e) {
  47. log.info("validateSignUtils signVerify is error");
  48. return new AjaxJson(AjaxJson.FAILURE,"validateSignUtils signVerify is error");
  49. }
  50. }
  51. return new AjaxJson(AjaxJson.FAILURE,"验证字符串参数未传,请检查接口参数");
  52. }
  53. @PostMapping("/orApply")
  54. public AjaxJson applyByOrderId(@RequestBody OrderInfoClearingForm orderInfoClearingForm){
  55. log.info("orderInfoForm订单请求划款>>>>>{}", JSONObject.toJSONString(orderInfoClearingForm));
  56. if (orderInfoClearingForm.getTimeStamp() == null){
  57. return new AjaxJson(ResponseEnum.REQNUMNULL);
  58. }
  59. long time = orderInfoClearingForm.getTimeStamp();
  60. long timeStamp = getTimeStamp(time);
  61. if (timeStamp>60000||timeStamp<0){
  62. return new AjaxJson(ResponseEnum.ERROREQUEST);
  63. }
  64. // 先进行值判断是否为空
  65. if (StringUtils.isEmpty(orderInfoClearingForm.getOrderId())){
  66. return new AjaxJson(ResponseEnum.REQNUMNULL);
  67. }
  68. if (StringUtils.isEmpty(orderInfoClearingForm.getSignStr())){
  69. return new AjaxJson(ResponseEnum.REQNUMNULL);
  70. }
  71. //组装数据
  72. boolean flag = false;
  73. //验证字符串签名
  74. try {
  75. flag = validateSignUtils.signVerify(time+"|"+orderInfoClearingForm.getRecordId()+"|"+orderInfoClearingForm.getOrderId(), orderInfoClearingForm.getSignStr());
  76. } catch (Exception e) {
  77. return new AjaxJson(ResponseEnum.FAIL);
  78. }
  79. if (flag){
  80. int i = orderInfoService.dealClearingRecordByRid(orderInfoClearingForm.getRecordId());
  81. return new AjaxJson(ResponseEnum.SUCCESS);
  82. }
  83. return new AjaxJson(ResponseEnum.CHECKFAIL);
  84. }
  85. @PostMapping("/check")
  86. public AjaxJson checkBankNo(@RequestBody CheckBankVO checkBankVO){
  87. log.info("------请求银行卡验证---{}",JSONObject.toJSONString(checkBankVO));
  88. if (checkBankVO.getTimeStamp()==null||StringUtils.isEmpty(checkBankVO.getSignStr())){
  89. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  90. }
  91. long timeStamp = checkBankVO.getTimeStamp();
  92. long sc = getTimeStamp(timeStamp);
  93. if (sc>60000||sc<0){
  94. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  95. }
  96. String strSign = checkBankVO.getSignStr();
  97. String farmerPid = checkBankVO.getFarmerPid();
  98. String farmerAccount = checkBankVO.getFarmerAccount();
  99. if (StringUtils.isEmpty(farmerAccount)||StringUtils.isEmpty(farmerPid)){
  100. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  101. }
  102. boolean flag = false;
  103. try {
  104. flag = validateSignUtils.signVerify(timeStamp + "|" + farmerPid + "|" + farmerAccount, strSign);
  105. } catch (Exception e) {
  106. log.info("------系统异常---{}",JSONObject.toJSONString(checkBankVO));
  107. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  108. }
  109. if (flag){
  110. return carbonBankService.checkBankCard(checkBankVO);
  111. }
  112. return new AjaxJson(ResponseEnum.CHECKFAIL);
  113. }
  114. @PostMapping("/bankNum")
  115. public AjaxJson getBankNum(@RequestBody GetBankNo getBankNo){
  116. log.info("------请求银行卡余额数量---{}",JSONObject.toJSONString(getBankNo));
  117. if (getBankNo==null||StringUtils.isEmpty(getBankNo.getSignStr())){
  118. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  119. }
  120. long timeStamp = getBankNo.getTimeStamp();
  121. long sc = getTimeStamp(timeStamp);
  122. if (sc>60000||sc<0){
  123. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  124. }
  125. String strSign = getBankNo.getSignStr();
  126. boolean flag = false;
  127. try {
  128. flag = validateSignUtils.signVerify(timeStamp + "|gzth$12345", strSign);
  129. } catch (Exception e) {
  130. log.info("------系统异常---{}",JSONObject.toJSONString(getBankNo));
  131. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  132. }
  133. if (flag){
  134. return carbonBankService.findCardNumMoney(getBankNo);
  135. }
  136. return new AjaxJson(ResponseEnum.CHECKFAIL);
  137. }
  138. public long getTimeStamp(long timeStamp){
  139. long endTime = System.currentTimeMillis();
  140. long sc = endTime - timeStamp;
  141. return sc;
  142. }
  143. public AjaxJson getApp(@RequestBody TransRequest transRequest) {
  144. // 先进行值判断是否为空
  145. if (StringUtils.isEmpty(transRequest.getRecord())){
  146. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  147. }
  148. if (StringUtils.isEmpty(transRequest.getSignStr())){
  149. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  150. }
  151. //组装数据
  152. boolean flag = false;
  153. //验证字符串签名
  154. try {
  155. flag = validateSignUtils.signVerify(transRequest.getRecord()+"|"+transRequest.getTransVos().size(), transRequest.getSignStr());
  156. } catch (Exception e) {
  157. return new AjaxJson(ResponseEnum.FAIL);
  158. }
  159. if (flag){
  160. return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS);
  161. }
  162. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  163. }
  164. }