From 7fd053651ac11db87fe4f6c57e65eed3b9a59452 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 23 七月 2025 10:47:24 +0800 Subject: [PATCH] yml活动管理代码 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java | 73 +++++++++++++++++++++++++++++------- 1 files changed, 58 insertions(+), 15 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 21f2f8a..b9fd638 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 @@ -1,5 +1,6 @@ package com.ruoyi.other.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.page.PageInfo; @@ -16,9 +17,14 @@ import com.ruoyi.other.util.ObsUploadUtil; import com.ruoyi.other.util.QRCodeUtil; import com.ruoyi.other.util.UUIDUtil; +import com.ruoyi.other.util.pay.CreateLinkStringByGet1; +import com.ruoyi.other.util.pay.HttpRequester; +import com.ruoyi.other.util.pay.HttpRespons; +import com.ruoyi.other.util.pay.Md5_Sign; import com.ruoyi.other.util.payment.wx.WechatPayService; import com.ruoyi.other.vo.IntegralListVO; import com.ruoyi.other.vo.IntegralVO; +import com.ruoyi.other.vo.PayDto; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.ApiOperation; @@ -38,6 +44,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Date; +import java.util.HashMap; import java.util.Map; /** @@ -78,23 +85,23 @@ integralVO.setIntegral(integral); return R.ok(integralVO); } - @PostMapping("/queryPayStatus") + @ApiOperation(tags = {"2.0-积分钱包"},value = "查询支付结果 true成功 false失败") - public R<Boolean> integralPageList(@RequestParam("code") String code) throws Exception { - Map<String, String> resMap = wechatPayService.queryOrder(code); - if("SUCCESS".equals(resMap.get("return_code"))){ + @PostMapping(value = "/queryPayStatus") + public R buy(@RequestParam Integer id) { + IntegralPay integralPay = integralPayService.getById(id); + if (integralPay.getPayStatus()==2){ return R.ok(true); - }else{ + }else { return R.ok(false); } } - @PostMapping("/nativePay") @ApiOperation(tags = {"2.0-积分钱包"},value = "获取支付二维码") - public R nativePay(@RequestParam("amount") String amount) throws Exception { + public R<PayDto> nativePay(@RequestParam("amount") String amount) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - Map<String, String> res = wechatPayService.unifiedOrder(code, amount, "积分充值", "/other/wx/integralCallback"); +// Map<String, String> res = wechatPayService.unifiedOrder(code, amount, "积分充值", "/other/wx/integralCallback"); Long userid = tokenService.getLoginUser().getUserid(); R<SysUser> sysUser = sysUserClient.getSysUser(userid); SysUser data = sysUser.getData(); @@ -119,14 +126,50 @@ integralPay.setDelFlag(0); integralPay.setCreateTime(LocalDateTime.now()); integralPayService.save(integralPay); - String codeUrl = res.get("code_url"); - MyQrCodeUtil.createCodeToFile(codeUrl); - BufferedImage blueImage = QRCodeUtil.createImage(codeUrl); - MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); - String s = ObsUploadUtil.obsUpload(blueFile); - System.err.println(s); - return R.ok(s); +// String codeUrl = res.get("code_url"); +// MyQrCodeUtil.createCodeToFile(codeUrl); +// BufferedImage blueImage = QRCodeUtil.createImage(codeUrl); +// MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); +// String s = ObsUploadUtil.obsUpload(blueFile); +// System.err.println(s); + int money = new BigDecimal(amount).multiply(BigDecimal.valueOf(100)).intValue(); + String key = "ad273ceb5e1b49e68d5c565d28d1d305";/** md5密钥商户后台-商户中心-商户设置-密钥管理获取 必填!*/ + Map<String, String> map = new HashMap<String, String>(); + map.put("p0_Version", "2.5");/** 版本号 */ + map.put("p1_MerchantNo", "888122400007793");/** 商户编号 */ + map.put("p2_OrderNo", code); /**商户订单号*/ + map.put("p3_Amount", String.valueOf(money));/**订单金额*/ + map.put("p4_Cur", "1"); /**交易币种 */ + map.put("p5_ProductName", "充值"); /** 商品名称 */ + map.put("p6_ProductDesc", "积分充值"); /** 商品名称 */ +// map.put("p7_Mp", ""); /** 如果商户请求时传递了该参数,则返回给商户时会原值传 回。 */ + map.put("p9_NotifyUrl", "http://221.182.45.100:8084/other/wx/integralCallback"); /** 服务器异步通知地址 */ + map.put("q1_FrpCode", "WEIXIN_NATIVE"); /** 微信扫码(主扫)【注:此为用户主扫,商户被扫】*/ + map.put("q4_IsShowPic", "1"); /** 是否展示二 维码图片 1表示输出*/ + map.put("q7_AppId", "wx1a4a7760be53a835"); /** 交易类型*/ + map.put("qa_TradeMerchantNo", "777165000859101"); /** 777开头的报备商户号 必填!*/ + map.put("qi_FqSellerPercen", "0"); /** 卖家承担收 费比例 目前仅支持传入 0 ,即用户承 担手续费!*/ + String Strmap = CreateLinkStringByGet1.createLinkStringByGet(map); + // 签名 + String sign = ""; + sign = Md5_Sign.SignByMD5(Strmap, key); + map.put("hmac", sign);/** 签名数据 */ + System.out.println("发送:" + JSON.toJSONString(map).toString()); + + // post请求参数内容 + HttpRequester hr = new HttpRequester(); + HttpRespons HP = hr.sendPost("https://trade.joinpay.com/tradeRt/uniPay", map); + System.out.println("接收返回参数:" + HP.getContent()); + JSONObject resPay = JSONObject.parseObject(HP.getContent()); + String rcResult = resPay.getString("rd_Pic"); + Map<String, Object> map2 = new HashMap<>(); + map2.put("rcResult", rcResult); + PayDto payDto = new PayDto(); + payDto.setId(integralPay.getId()); + payDto.setQrCode(rcResult); + return R.ok(payDto); } + public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException { // 将 BufferedImage 转换为字节数组 ByteArrayOutputStream baos = new ByteArrayOutputStream(); -- Gitblit v1.7.1