driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -712,7 +712,6 @@ /** * 账户余额充值支付回调 * @param request * @param response */ @ResponseBody @@ -968,12 +967,36 @@ /** * 注册商户回调 * @param jsonObject */ @ResponseBody @PostMapping("/base/driver/microenterpriseCallback") public void microenterpriseCallback(@RequestBody JSONObject jsonObject){ System.err.println(jsonObject.toJSONString()); public void microenterpriseCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { if("0000".equals(interfaceResponse.getCode())) { JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult()); String status = jsonObject.getString("status"); String parameter1 = jsonObject.getString("parameter1"); Driver driver = driverService.selectById(parameter1); if ("2".equals(status)) { System.err.println("注册代理商子商户失败"); } if ("0".equals(status)) { System.err.println("注册代理商子商户处理中"); } if ("1".equals(status)) { String userId = jsonObject.getString("userId"); driver.setMerchantNumber(userId); driverService.updateById(driver); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); } } }catch (Exception e){ e.printStackTrace(); } } @@ -1054,8 +1077,17 @@ */ @ResponseBody @PostMapping("/base/driver/withdrawCashFZCallback") public void withdrawCashFZCallback(@RequestBody InterfaceResponse interfaceResponse){ cashWithdrawalService.withdrawCashFZCallback(interfaceResponse); public void withdrawCashFZCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { cashWithdrawalService.withdrawCashFZCallback(interfaceResponse); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } @@ -1066,7 +1098,16 @@ */ @ResponseBody @PostMapping("/base/driver/withdrawCashCallback") public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse){ cashWithdrawalService.withdrawCashCallback(interfaceResponse); public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { cashWithdrawalService.withdrawCashCallback(interfaceResponse); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); }catch (Exception e){ e.printStackTrace(); } } } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Agent.java
@@ -20,66 +20,180 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) @TableField("id") private Integer id; /** * 负责人姓名 */ @TableField("principal") @TableField(value = "principal") private String principal; /** * 负责人电话 */ @TableField("principalPhone") @TableField(value = "principalPhone") private String principalPhone; /** * 邮箱 */ @TableField("email") @TableField(value = "email") private String email; /** * 代理区域省名称 */ @TableField("provinceName") private String provinceName; /** * 代理区域省编号 */ @TableField("provinceCode") @TableField(value = "provinceCode") private String provinceCode; /** * 代理区域省名称 */ @TableField(value = "provinceName") private String provinceName; /** * 代理区域市编号 */ @TableField("cityCode") @TableField(value = "cityCode") private String cityCode; /** * 代理区域市名称 */ @TableField("cityName") @TableField(value = "cityName") private String cityName; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("status") @TableField(value = "status") private Integer status; /** * 添加时间 */ @TableField("createTime") @TableField(value = "createTime") private Date createTime; /** * 开户银行 */ @TableField("bankDeposit") private String bankDeposit; /** * 银行账号 */ @TableField("bankAccount") private String bankAccount; /** * 客服电话 */ @TableField("serviceCalls") @TableField(value = "serviceCalls") private String serviceCalls; /** * 商户类型(1=个体工商户,2=企业) */ @TableField("userType") private Integer userType; /** * 公司名称 */ @TableField("merchantName") private String merchantName; /** * 经营范围 */ @TableField("businessScope") private String businessScope; /** * 统一社会信用码 */ @TableField("socialCreditCode") private String socialCreditCode; /** * 统一社会信用证有效期 */ @TableField("socialCreditCodeExpires") private Date socialCreditCodeExpires; /** * 企业注册省编号 */ @TableField("provCodeEnterprise") private String provCodeEnterprise; /** * 企业注册市编号 */ @TableField("cityCodeEnterprise") private String cityCodeEnterprise; /** * 企业注册区编号 */ @TableField("areaCodeEnterprise") private String areaCodeEnterprise; /** * 企业注册详细地址 */ @TableField("address") private String address; /** * 法人姓名 */ @TableField("legalPerson") private String legalPerson; /** * 法人身份证号码 */ @TableField("merchantIDCode") private String merchantIDCode; /** * 法人身份证有效期 */ @TableField("certIdExpires") private Date certIdExpires; /** * 法人手机号 */ @TableField("legalPhone") private String legalPhone; /** * 附件编号 */ @TableField("fileNo") private String fileNo; /** * 结算账户名 */ @TableField("cardName") private String cardName; /** * 结算账户号 */ @TableField("cardNo") private String cardNo; /** * 银行账户类型(1=对公,2=对私) */ @TableField("bankAcctType") private Integer bankAcctType; /** * 银行预留手机号 */ @TableField("phone") private String phone; /** * 开户行编号 */ @TableField("bankCode") private String bankCode; /** * 开户行地区省编号 */ @TableField("provCodeBank") private String provCodeBank; /** * 开户行地区市编号 */ @TableField("cityCodeBank") private String cityCodeBank; /** * 开户行地区区编号 */ @TableField("areaCodeBank") private String areaCodeBank; /** * 商户号 */ @TableField("merchantNumber") private String merchantNumber; /** * 商户状态(0=审核中,1=已成功,2=审核失败) */ @TableField("merchantStatus") private Integer merchantStatus; /** * 结算账户状态(0=审核中,1=已成功,2=审核失败) */ @TableField("bankStatus") private Integer bankStatus; } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/RechargeRecord.java
@@ -23,7 +23,7 @@ @TableField("id") private Integer id; /** * 数据类型(1=用户,2=司机,3=代理商) * 数据类型(1=用户,2=司机,3=代理商,4=平台) */ @TableField("type") private Integer type; driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -718,6 +718,7 @@ if("2".equals(status)){ return ResultUtil.error("失败"); } String merOrderId = jsonObject.getString("merOrderId"); String payCode = jsonObject.getString("payCode"); if(ToolUtil.isNotEmpty(payCode)){ new Thread(new Runnable() { @@ -734,13 +735,7 @@ return; } QueryOrder queryOrder = new QueryOrder(); /** * 原请求订单号(必填) 字段长度最长:32位 */ queryOrder.setOriginalMerOrderId(out_trade_no); /** * 1:支付查询 2:退款查询 3:确认收货查询 4:结算查询 5:充值查询 6:转账查询 7:异步分账查询(必填) 字段长度最长:1位 */ queryOrder.setOriginalMerOrderId(merOrderId); queryOrder.setQueryType("1"); TrhRequest<QueryOrder> request = new TrhRequest(); InterfaceResponse execute1 = request.execute(queryOrder, QueryOrder.SERVICE_CODE); @@ -942,6 +937,7 @@ registerVO.setUserName(name); registerVO.setCertId(number); registerVO.setNotifyUrl(callbackPath + notifyUrl); registerVO.setParameter1(uid.toString()); TrhRequest<Register> request = new TrhRequest(); InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE); if(!"0000".equals(execute.getCode())){ @@ -953,6 +949,10 @@ return ResultUtil.error("失败"); } if("0".equals(status)){ driver.setMerchantIDCode(number); driver.setMerchantName(name); driver.setMerchantPhone(phone); this.updateById(driver); return ResultUtil.error("处理中"); } String userId = jsonObject.getString("userId"); management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
@@ -3,6 +3,7 @@ import cn.hutool.core.codec.Base64; import cn.hutool.core.util.ZipUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.http.server.HttpServerResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -254,7 +255,7 @@ registerVO.setUserType("0"); registerVO.setUserName(tAgent.getMerchantName()); registerVO.setCertId(tAgent.getMerchantIDCode()); registerVO.setNotifyUrl(callbackPath + "/base/driver/microenterpriseCallback"); registerVO.setNotifyUrl(callbackPath + "/tAgent/microenterpriseCallback"); TrhRequest<Register> request = new TrhRequest(); InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE); if("0000".equals(execute.getCode())){ @@ -325,16 +326,10 @@ registerVO.setLegalPhone(tAgent.getLegalPhone()); registerVO.setLegalPerson(tAgent.getLegalPerson()); registerVO.setAddress(tAgent.getAddress()); /** * 省份编码(子商户类型非小微必填) 字段长度最长:4位 */ registerVO.setProvCode("0035"); /** * 地区编码(子商户类型非小微必填) 字段长度最长:4位 */ registerVO.setAreaCode("3501"); registerVO.setProvCode(tAgent.getProvCodeEnterprise()); registerVO.setAreaCode(tAgent.getAreaCodeEnterprise()); registerVO.setFileNo(tAgent.getFileNo()); registerVO.setNotifyUrl(callbackPath + "/base/driver/microenterpriseCallback"); registerVO.setNotifyUrl(callbackPath + "/tAgent/microenterpriseCallback"); registerVO.setParameter1(tAgent.getId().toString()); TrhRequest<Register> request = new TrhRequest(); @@ -367,14 +362,8 @@ bindAccount.setBankAcctType(tAgent.getBankAcctType().toString()); bindAccount.setPhone(tAgent.getPhone()); bindAccount.setBankCode(tAgent.getBankCode()); /** * 省份编码 */ bindAccount.setProvCode("0035"); /** * 地区编码 */ bindAccount.setAreaCode("3501"); bindAccount.setProvCode(tAgent.getProvCodeBank()); bindAccount.setAreaCode(tAgent.getAreaCodeBank()); TrhRequest<BindAccount> request1 = new TrhRequest(); InterfaceResponse execute = request1.execute(bindAccount, BindAccount.SERVICE_CODE); if("0000".equals(execute.getCode())){ @@ -405,6 +394,83 @@ } } } /** * 注册商户回调 */ @ResponseBody @PostMapping("/microenterpriseCallback") public void microenterpriseCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { if("0000".equals(interfaceResponse.getCode())) { JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult()); String status = jsonObject.getString("status"); String parameter1 = jsonObject.getString("parameter1"); TAgent tAgent = tAgentService.selectById(parameter1); if ("2".equals(status)) { tAgent.setMerchantStatus(2); tAgentService.updateById(tAgent); System.err.println("注册代理商子商户失败"); } if ("0".equals(status)) { tAgent.setMerchantStatus(0); tAgentService.updateById(tAgent); System.err.println("注册代理商子商户处理中"); } if ("1".equals(status)) { String userId = jsonObject.getString("userId"); tAgent.setMerchantNumber(userId); tAgent.setMerchantStatus(1); tAgentService.updateById(tAgent); //开始绑定结算账户 BindAccount bindAccount = new BindAccount(); bindAccount.setUserId(tAgent.getMerchantNumber()); bindAccount.setCertId(tAgent.getMerchantIDCode()); bindAccount.setCardName(tAgent.getCardName()); bindAccount.setCardNo(tAgent.getCardNo()); bindAccount.setBankAcctType(tAgent.getBankAcctType().toString()); bindAccount.setPhone(tAgent.getPhone()); bindAccount.setBankCode(tAgent.getBankCode()); bindAccount.setProvCode(tAgent.getProvCodeBank()); bindAccount.setAreaCode(tAgent.getAreaCodeBank()); TrhRequest<BindAccount> request1 = new TrhRequest(); InterfaceResponse execute = request1.execute(bindAccount, BindAccount.SERVICE_CODE); if ("0000".equals(execute.getCode())) { JSONObject jsonObject1 = JSON.parseObject(execute.getResult()); String status1 = jsonObject1.getString("status"); if ("2".equals(status1)) { tAgent.setBankStatus(2); tAgentService.updateById(tAgent); System.err.println("绑定结算账户失败"); } if ("1".equals(status1)) { tAgent.setBankStatus(1); tAgentService.updateById(tAgent); System.err.println("绑定结算账户成功"); } if ("0".equals(status1)) { tAgent.setBankStatus(0); tAgentService.updateById(tAgent); System.err.println("绑定结算账户处理中"); } } else { System.err.println("绑定结算账户失败:" + execute.getMsg()); } response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); } } }catch (Exception e){ e.printStackTrace(); } } @@ -752,23 +818,32 @@ */ @ResponseBody @PostMapping("/withdrawCashCallback") public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse) { if("0000".equals(interfaceResponse.getCode())){ JSONObject jsonObject1 = JSON.parseObject(interfaceResponse.getResult()); String merOrderId1 = jsonObject1.getString("merOrderId"); Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败 if(1 == status){ String parameter1 = jsonObject1.getString("parameter1"); SettlementRecord settlementRecord = settlementRecordService.selectById(parameter1); settlementRecord.setOrderNumber(merOrderId1); settlementRecord.setArrivalTime(new Date()); settlementRecordService.updateById(settlementRecord); public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response) { try { if("0000".equals(interfaceResponse.getCode())){ JSONObject jsonObject1 = JSON.parseObject(interfaceResponse.getResult()); String merOrderId1 = jsonObject1.getString("merOrderId"); Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败 if(1 == status){ String parameter1 = jsonObject1.getString("parameter1"); SettlementRecord settlementRecord = settlementRecordService.selectById(parameter1); settlementRecord.setOrderNumber(merOrderId1); settlementRecord.setArrivalTime(new Date()); settlementRecordService.updateById(settlementRecord); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); } if(2 == status){ System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg")); } }else{ System.err.println("结算接口异常【提现】:" + interfaceResponse.getMsg()); } if(2 == status){ System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg")); } }else{ System.err.println("结算接口异常【提现】:" + interfaceResponse.getMsg()); }catch (Exception e){ e.printStackTrace(); } } @@ -881,25 +956,34 @@ */ @ResponseBody @PostMapping("/accountRechargeCallback") public void accountRechargeCallback(@RequestBody InterfaceResponse interfaceResponse){ if("0000".equals(interfaceResponse.getCode())){ JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult()); Integer status = jsonObject.getInteger("status"); if(2 == status){ System.err.println("支付异常"); return; public void accountRechargeCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { if("0000".equals(interfaceResponse.getCode())){ JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult()); Integer status = jsonObject.getInteger("status"); if(2 == status){ System.err.println("支付异常"); return; } if(1 == status){ String parameter1 = jsonObject.getString("parameter1"); RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1); rechargeRecord.setPayStatus(2); rechargeRecord.setPayTime(new Date()); rechargeRecord.setOrderNumber(jsonObject.getString("merOrderId")); rechargeRecord.setSurplusDividedAmount(rechargeRecord.getAmount()); rechargeRecordService.updateById(rechargeRecord); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); } }else{ System.err.println(interfaceResponse.getMsg()); } if(1 == status){ String parameter1 = jsonObject.getString("parameter1"); RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1); rechargeRecord.setPayStatus(2); rechargeRecord.setPayTime(new Date()); rechargeRecord.setOrderNumber(jsonObject.getString("merOrderId")); rechargeRecord.setSurplusDividedAmount(rechargeRecord.getAmount()); rechargeRecordService.updateById(rechargeRecord); } }else{ System.err.println(interfaceResponse.getMsg()); }catch (Exception e){ e.printStackTrace(); } } zuul/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
@@ -14,13 +14,13 @@ @Override protected void initChannel(SocketChannel socketChannel) throws Exception { // String path = "C:\\Program Files\\Apache Software Foundation\\Tomcat 8.5\\cert\\SHA256withRSA_lzhyc.cn.pfx"; String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks"; SSLContext sslContext = createSSLContext.createSSLContext("JKS" , path, "Zf3^5v6OoWmOVgeQ"); //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信 SSLEngine engine = sslContext.createSSLEngine(); engine.setUseClientMode(false); socketChannel.pipeline().addLast("ssl", new SslHandler(engine)); // String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks"; // SSLContext sslContext = createSSLContext.createSSLContext("JKS" // , path, "Zf3^5v6OoWmOVgeQ"); // //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信 // SSLEngine engine = sslContext.createSSLEngine(); // engine.setUseClientMode(false); // socketChannel.pipeline().addLast("ssl", new SslHandler(engine)); // 设置30秒没有读到数据,则触发一个READER_IDLE事件。 // pipeline.addLast(new IdleStateHandler(30, 0, 0));