common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CreateOrderConsultOneRequest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rest/src/main/java/cn/stylefeng/rest/ijpay/entity/IosDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rest/src/main/java/cn/stylefeng/rest/ijpay/iosUtil/HttpUtilIOS.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rest/src/main/java/cn/stylefeng/rest/ijpay/iosUtil/IosPalUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
roses/kernel-d-im/im-sdk-rongcloud/src/main/java/cn/stylefeng/roses/kernel/im/rongcloud/RongCloudImServer.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CreateOrderConsultOneRequest.java
@@ -5,12 +5,15 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "1v1咨询性格分析师下单-请求参数") public class CreateOrderConsultOneRequest { @ApiModelProperty(value = "用户ID") @ChineseDescription("用户ID") @NotBlank(message = "登录后再试") private Long userId; @ApiModelProperty(value = "心理测试结果ID") rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java
@@ -13,7 +13,9 @@ import cn.stylefeng.guns.modular.business.service.IOrderMentalTestService; import cn.stylefeng.guns.utils.GeneralUtil; import cn.stylefeng.rest.ijpay.entity.AliPayBean; import cn.stylefeng.rest.ijpay.entity.IosDto; import cn.stylefeng.rest.ijpay.entity.request.AliAppPayRequest; import cn.stylefeng.rest.ijpay.iosUtil.IosPalUtils; import cn.stylefeng.rest.modular.order.service.MentalTestOrderBizService; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.enums.OrderStatusFlagEnum; @@ -162,6 +164,47 @@ @ApiOperation(value = "ios支付") @PostMapping(value = "/ios") @ResponseBody public ResponseData ios(@RequestBody IosDto iosDto) { // Boolean success = IosPalUtils.isSuccess(iosDto.getTransactionReceipt()); // if (!success){ // return new ErrorResponseData("支付失败"); // } String tradeNo = iosDto.getOrderNo(); String totalAmount = iosDto.getMoney(); // 获取订单号 // 订单编号判断订单类型 if (iosDto.getOrderNo().startsWith(OrderTypeEnum.MENTAL_TEST.getCode())) { // 心理测试订单 orderMentalTestService.paySuccess(iosDto.getOrderNo(), tradeNo, totalAmount, PayTypeEnum.ALIPAY.getCode()); } else if (iosDto.getOrderNo().startsWith(OrderTypeEnum.CONSULT_ONE.getCode())) { // 心理咨询1V1订单 mentalTestOrderBizService.paySuccessOrderConsultOne(iosDto.getOrderNo(), tradeNo, totalAmount, PayTypeEnum.ALIPAY.getCode()); } else if (iosDto.getOrderNo().startsWith(OrderTypeEnum.COURSE_ORDER.getCode())) { //课程订单 OrderPayRequest orderPayRequest = new OrderPayRequest(); orderPayRequest.setOrderNo(iosDto.getOrderNo()); orderPayRequest.setTransactionNo(tradeNo); orderPayRequest.setPayType("2"); orderPayRequest.setOrderType(1); courseOrderService.payCourseOrder(orderPayRequest); } else if (iosDto.getOrderNo().startsWith(OrderTypeEnum.COUNSELLING_ORDER.getCode())) { //咨询订单 OrderPayRequest orderPayRequest = new OrderPayRequest(); orderPayRequest.setOrderNo(iosDto.getOrderNo()); orderPayRequest.setTransactionNo(tradeNo); orderPayRequest.setPayType("2"); orderPayRequest.setOrderType(2); counsellingOrderService.payCounsellingOrder(orderPayRequest); } return new SuccessResponseData("支付成功"); } @PostMapping(value = RuleConstants.NOT_LOGIN + "/freePay") @ResponseBody public String freePay(HttpServletRequest request) { rest/src/main/java/cn/stylefeng/rest/ijpay/entity/IosDto.java
New file @@ -0,0 +1,9 @@ package cn.stylefeng.rest.ijpay.entity; import lombok.Data; @Data public class IosDto { String orderNo; String money; } rest/src/main/java/cn/stylefeng/rest/ijpay/iosUtil/HttpUtilIOS.java
New file @@ -0,0 +1,76 @@ package cn.stylefeng.rest.ijpay.iosUtil; import net.sf.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; public class HttpUtilIOS { /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static synchronized String sendPosturl(String url, JSONObject param) { StringBuilder sb = new StringBuilder(); PrintWriter out = null; BufferedReader in = null; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; sb = new StringBuilder(); while ((line = in.readLine()) != null) { sb.append(line); } } catch (Exception e) { // System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } System.out.print(sb.toString()); return sb.toString(); } } rest/src/main/java/cn/stylefeng/rest/ijpay/iosUtil/IosPalUtils.java
New file @@ -0,0 +1,101 @@ package cn.stylefeng.rest.ijpay.iosUtil; import net.sf.json.JSONObject; /** * 苹果支付 */ public class IosPalUtils { /*public static String buyAppVerify(String receipt, String environment) { String url = null; if(environment.equals("0")) { url = "https://buy.itunes.apple.com/verifyReceipt"; // 生产环境 } if (environment.equals("1")) { url = "https://sandbox.itunes.apple.com/verifyReceipt"; // 沙盒测试 } try { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },new java.security.SecureRandom()); URL console = new URL(url); HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); conn.setSSLSocketFactory(sc.getSocketFactory()); conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-type", "application/json"); conn.setDoInput(true); conn.setDoOutput(true); BufferedOutputStream hurlBufOus = new BufferedOutputStream( conn.getOutputStream()); String newReceipt = receipt.replace(" ", "+"); String str = String.format("{\"receipt-data\":\"" + newReceipt + "\"}"); hurlBufOus.write(str.getBytes()); hurlBufOus.flush(); InputStream is = conn.getInputStream(); BufferedReader reader = new BufferedReader( new InputStreamReader(is)); String line = null; StringBuffer sb = new StringBuffer(); while ((line = reader.readLine()) != null) { sb.append(line); } return sb.toString(); } catch (Exception ex) { ex.printStackTrace(); } return null; }*/ /** * @param key 支付Id第三方返回的orderId */ public static Boolean isSuccess(String key) { try { System.out.println("!!!!!!!!!!!"+key+"!!!!!!!!!!!"); Boolean ok=false; if (key!=null) { key = key.replace(" ", "+"); System.out.println("!!!!!!!!!!!"+key+"!!!!!!!!!!!"); JSONObject data = JSONObject.fromObject("{\"receipt-data\":\"" + key + "\"}"); String score = HttpUtilIOS.sendPosturl("https://buy.itunes.apple.com/verifyReceipt", data); // 将String 转化为json JSONObject json = JSONObject.fromObject(score); System.out.print("!!!!!!!!!!!"+json+"!!!!!!!!!!!"); if (!json.getString("status").equals("0")) { JSONObject data1 = JSONObject.fromObject("{\"receipt-data\":\"" + key + "\"}"); String score1 = HttpUtilIOS.sendPosturl("https://sandbox.itunes.apple.com/verifyReceipt", data1); // 将String 转化为json JSONObject json1 = JSONObject.fromObject(score1); if (json1.getString("status").equals("0")) { String receipt = json1.getString("receipt"); JSONObject jsons = JSONObject.fromObject(receipt); String m3 = jsons.getString("in_app"); String m4 = m3.replace("[", ""); String m5 = m4.replace("]", ""); if(m5!=null){ ok=true; } } }else { if (json.getString("status").equals("0")) { String receipt = json.getString("receipt"); JSONObject jsons = JSONObject.fromObject(receipt); String m3 = jsons.getString("in_app"); String m4 = m3.replace("[", ""); String m5 = m4.replace("]", ""); if(m5!=null){ ok=true; } } } } return ok; } catch (Exception e) { e.printStackTrace(); } return null; } } rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java
@@ -814,7 +814,7 @@ public ResponseData<CounsellingOrderResponseDTO> getCounsellingOrderInfoById(Long counsellingOrderId){ CounsellingOrder counsellingOrder = this.counsellingOrderService.getById(counsellingOrderId); CounsellingOrderResponseDTO counsellingOrderResponseDTO = BeanUtil.copyProperties(counsellingOrder,CounsellingOrderResponseDTO.class); CounsellingInfo counsellingInfo = this.counsellingInfoService.getById(counsellingOrderResponseDTO.getCounsellingInfoId()); CounsellingInfo counsellingInfo = this.counsellingInfoService.getById(counsellingOrder.getCounsellingInfoId()); Customer customer = this.customerService.getById(counsellingInfo.getUserId()); counsellingOrderResponseDTO.setCounsellingName(customer.getNickName()); return new SuccessResponseData<>(counsellingOrderResponseDTO); roses/kernel-d-im/im-sdk-rongcloud/src/main/java/cn/stylefeng/roses/kernel/im/rongcloud/RongCloudImServer.java
@@ -61,6 +61,7 @@ .setPortrait(portrait); TokenResult result = getRongCloud().user.register(userModel); // {"token":"UNFruJFNKX77FTKA0fO92Xm4tDCdiuJG@fnk7.cn.rongnav.com;fnk7.cn.rongcfg.com","userId":"1","reqBody":"userId=1&name=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA&portraitUri=http%3A%2F%2Fwww.rongcloud.cn%2Fimages%2Flogo.png","code":200,"requestId":"e3e851ac0cdb47a4ad456f9c8dd1e88a"} log.info("融云IM getToken: " + result.toString()); return result; @@ -96,6 +97,7 @@ UserModel userModel = new UserModel().setId(id); CheckOnlineResult result = getRongCloud().user.onlineStatus.check(userModel); log.info("融云IM checkOnline: " + result.toString()); assertEquals("200", result.getCode().toString());