From 3cbe44237b704ab568b15c11b20b6755db0418a4 Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 22 Aug 2023 15:57:14 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B48=E6=9C=8818=E6=97=A518:05:23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppEbLoginController.java | 20 ++++++++++++++++++- .../controller/WeChatUserController.java | 6 +++++- .../modules/weixin/utils/WxPayUtils.java | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springblade/modules/weixin/controller/AppEbLoginController.java b/src/main/java/org/springblade/modules/weixin/controller/AppEbLoginController.java index 7b2c659..9a5c9e2 100644 --- a/src/main/java/org/springblade/modules/weixin/controller/AppEbLoginController.java +++ b/src/main/java/org/springblade/modules/weixin/controller/AppEbLoginController.java @@ -1,5 +1,7 @@ package org.springblade.modules.weixin.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; @@ -16,7 +18,11 @@ import org.springblade.modules.weixin.entity.WeChatUser; import org.springblade.modules.weixin.service.IWeChatUserService; import org.springblade.modules.weixin.utils.WeChatUtil; import org.springblade.modules.weixin.utils.WxPayUtils; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; @@ -90,7 +96,19 @@ public class AppEbLoginController { @PostMapping("/createOrder") public R createOrder(String openId) { - return R.data(WxPayUtils.createOrderJSApiV3(openId)); + RestTemplate restTemplate = new RestTemplate(); + String url = "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi"; + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8")); + + String content = JSON.toJSONString(WxPayUtils.buildWxJsApiV3PayJson(openId, 0)); + + HttpEntity httpEntity = new HttpEntity<>(content, headers); + + // 发送post请求,并输出结果 + String s = restTemplate.postForObject(url, httpEntity, String.class); + return R.data(s); +// return R.data(WxPayUtils.createOrderJSApiV3(openId)); } } diff --git a/src/main/java/org/springblade/modules/weixin/controller/WeChatUserController.java b/src/main/java/org/springblade/modules/weixin/controller/WeChatUserController.java index e766db3..1a3518a 100644 --- a/src/main/java/org/springblade/modules/weixin/controller/WeChatUserController.java +++ b/src/main/java/org/springblade/modules/weixin/controller/WeChatUserController.java @@ -3,6 +3,7 @@ package org.springblade.modules.weixin.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; @@ -33,7 +34,10 @@ public class WeChatUserController { @PostMapping("/save") public R save(@RequestBody WeChatUser weChatUser) { - weChatUserService.save(weChatUser); + long count = weChatUserService.count(Wrappers.lambdaQuery().eq(WeChatUser::getOpenId, weChatUser.getOpenId())); + if (count == 0L) { + weChatUserService.save(weChatUser); + } return R.data(weChatUser); } diff --git a/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java b/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java index b45fbe6..a88851a 100644 --- a/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java +++ b/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java @@ -98,7 +98,7 @@ public class WxPayUtils { * https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter2_1.shtml */ public static String createOrderJSApiV3(String openId) { -// payLoading(); + payLoading(); //请求URL HttpPost httpPost = new HttpPost(JSApiPayUrl); // 请求body参数