From 3cb61867769d091f7e20ade8701b6593b82141ad Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 26 九月 2024 14:40:10 +0800 Subject: [PATCH] 玩湃微信商户分账 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 56 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 29 insertions(+), 27 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 6a4790d..2404704 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -997,31 +997,7 @@ coursePackageOrderService.updateById(coursePackageOrder1); //修改课时有效期 addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); - if (store.getOperatorId()!=null && store.getOperatorId()!=0){ - // 休眠两分钟后再调用分账接口 避免提示订单正在处理中 - Thread.sleep(120000); - // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例 - String proportionByOperatorId = storeClient.getProportionByOperatorId(store.getOperatorId()); - String[] split = proportionByOperatorId.split(","); - String s1 = split[0]; - if (!s1.equals("未设置")){ - BigDecimal bigDecimal = new BigDecimal(s1); - // 分账比例 - BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2); - // 微信商户号 - String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); - BigDecimal bigDecimal2 = new BigDecimal(paymentPrice); - String nonce_str = UUIDUtil.getRandomCode(16); - ResultUtil fenzhang = payMoneyUtil.fenzhang(transaction_id, bigDecimal2.multiply(bigDecimal1), s2,nonce_str); - if (!fenzhang.getCode().equals(500)){ - System.err.println("分账失败 原因是:"+fenzhang.getMsg()); - }else{ - coursePackageOrder1.setFenzhangNo(fenzhang.getMsg()); - coursePackageOrder1.setFenzhangOrderNo(nonce_str); - coursePackageOrderService.updateById(coursePackageOrder1); - } - } - } + @@ -1363,7 +1339,7 @@ * @return */ @Override - public ResultUtil paymentCourseCallback(String code, String trade_no, String attach) throws AlipayApiException { + public ResultUtil paymentCourseCallback(String code, String trade_no, String attach) throws Exception { CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() .eq("code", code).eq("state", 1)); if (coursePackageOrder1.getPayStatus() == 2) { @@ -1376,7 +1352,33 @@ CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(attach); addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); - moneyOut(trade_no,trade_no,code); + TCoursePackage byId = coursePackageService.getById(coursePackageOrder1.getCoursePackageId()); + Store store = storeClient.queryStoreById(byId.getStoreId()); +// moneyOut(trade_no,trade_no,code); + if (store.getOperatorId()!=null && store.getOperatorId()!=0){ + // 休眠两分钟后再调用分账接口 避免提示订单正在处理中 + Thread.sleep(120000); + // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例 + String proportionByOperatorId = storeClient.getProportionByOperatorId(store.getOperatorId()); + String[] split = proportionByOperatorId.split(","); + String s1 = split[0]; + if (!s1.equals("未设置")){ + BigDecimal bigDecimal = new BigDecimal(s1); + // 分账比例 + BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2); + // 微信商户号 + String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); + String nonce_str = UUIDUtil.getRandomCode(16); + ResultUtil fenzhang = payMoneyUtil.fenzhang(trade_no, coursePackageOrder1.getCashPayment().multiply(bigDecimal1), s2,nonce_str); + if (!fenzhang.getCode().equals(200)){ + System.err.println("分账失败 原因是:"+fenzhang.getData().toString()); + }else{ + coursePackageOrder1.setFenzhangNo(fenzhang.getData().toString()); + coursePackageOrder1.setFenzhangOrderNo(nonce_str); + coursePackageOrderService.updateById(coursePackageOrder1); + } + } + } return ResultUtil.success(); } -- Gitblit v1.7.1