From 0993c86bcef3bc33643efbf6efa3ef380af09da9 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 25 八月 2025 10:39:40 +0800 Subject: [PATCH] PC跳转小程序支付 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java | 54 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 34 insertions(+), 20 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java index dc88239..d3a7922 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java @@ -14,15 +14,13 @@ import com.ruoyi.other.api.domain.IntegralRecord; import com.ruoyi.other.api.domain.ServicePay; import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.dto.NativePayDTO; import com.ruoyi.other.query.IntegralListQuery; import com.ruoyi.other.service.TIntegralPayService; import com.ruoyi.other.service.TIntegralRecordService; import com.ruoyi.other.service.TIntegralRuleService; import com.ruoyi.other.service.TServicePayService; -import com.ruoyi.other.util.MyQrCodeUtil; -import com.ruoyi.other.util.ObsUploadUtil; -import com.ruoyi.other.util.QRCodeUtil; -import com.ruoyi.other.util.UUIDUtil; +import com.ruoyi.other.util.*; import com.ruoyi.other.util.pay.CreateLinkStringByGet1; import com.ruoyi.other.util.pay.HttpRequester; import com.ruoyi.other.util.pay.HttpRespons; @@ -42,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ByteArrayResource; import org.springframework.mock.web.MockMultipartFile; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -162,15 +161,25 @@ return R.ok(false); } } - + @Resource + private WeChatUtil weChatUtil; @PostMapping("/nativePay") @ApiOperation(tags = {"2.0-积分钱包"}, value = "获取支付二维码") - public R nativePay(@RequestParam("amount") String amount) throws Exception { - BigDecimal bigDecimal = new BigDecimal(amount); - BigDecimal money = bigDecimal.setScale(2, RoundingMode.HALF_UP); - Long userid = tokenService.getLoginUser().getUserid(); - R<SysUser> sysUser = sysUserClient.getSysUser(userid); - SysUser data = sysUser.getData(); + public R nativePay(@RequestBody @Validated NativePayDTO dto) throws Exception { + + R<SysUser> sysUserR = sysUserClient.queryUserByPhone(dto.getPhone()); + SysUser data = sysUserR.getData(); + //使用jscode获取微信openid + Map<String, Object> map = weChatUtil.code2Session(dto.getJsCode()); + Integer errcode = Integer.valueOf(map.get("errcode").toString()); + if(0 != errcode){ + return R.fail(map.get("msg").toString()); + } + String openid = map.get("openid").toString(); + data.setOpenId(openid); + BigDecimal amount = dto.getAmount(); + BigDecimal money = amount.setScale(2, RoundingMode.HALF_UP); + List<Site> sites = siteClient.getSiteAll().getData(); Site site = sites.stream().filter(e -> e.getId().equals(data.getSiteId())).findFirst().orElse(null); if (site==null){ @@ -178,15 +187,19 @@ } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - ServicePay servicePay = new ServicePay(); - servicePay.setUserId(data.getUserId()); - servicePay.setAmount(site.getAnnualServiceFee()); - servicePay.setCode(code); - servicePay.setPayStatus(1); - servicePay.setPayType(1); - servicePay.setDelFlag(0); - servicePay.setCreateTime(LocalDateTime.now()); - servicePayService.save(servicePay); + IntegralPay integralPay = new IntegralPay(); + integralPay.setUserId(data.getUserId()); + SysConfig data1 = sysConfigClient.getInfo(8L).getData(); + BigDecimal bigDecimal = amount.multiply(new BigDecimal(data1.getConfigValue())).setScale(2, RoundingMode.HALF_DOWN); + integralPay.setIntegralCount(bigDecimal.intValue()); + integralPay.setAmount(amount); + integralPay.setCode(code); + integralPay.setPayStatus(1); + integralPay.setDelFlag(0); + integralPay.setCreateTime(LocalDateTime.now()); + + + integralPayService.save(integralPay); // return wechatPayService.unifiedOrderApplet(servicePay.getId()+"",code, site.getAnnualServiceFee()+"", "服务费缴纳",data.getOpenId(), "/other/wx/serviceCallback"); @@ -269,6 +282,7 @@ } System.out.println("接收返回参数:" + response.toString()); + sysUserClient.updateSysUser(data); return R.ok(response.toString()); } @Autowired -- Gitblit v1.7.1