feat(resource): 更新 ModelLike

master
yang 2025-02-06 09:47:32 +08:00
parent e559b6d04d
commit ee27b542cd
5 changed files with 59 additions and 3 deletions

View File

@ -14,6 +14,8 @@ import com.alipay.api.domain.AlipayFundTransUniTransferModel;
import com.alipay.api.domain.Participant; import com.alipay.api.domain.Participant;
import com.alipay.api.request.AlipayFundAccountQueryRequest; import com.alipay.api.request.AlipayFundAccountQueryRequest;
import com.alipay.api.request.AlipayFundTransUniTransferRequest; import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.api.request.AlipayUserInfoAuthRequest;
import com.alipay.api.response.AlipayFundAccountQueryResponse; import com.alipay.api.response.AlipayFundAccountQueryResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse; import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.alipay.easysdk.base.oauth.models.AlipaySystemOauthTokenResponse; import com.alipay.easysdk.base.oauth.models.AlipaySystemOauthTokenResponse;
@ -290,4 +292,25 @@ public class AliPayIntegration {
alipayConfig.setSignType("RSA2"); alipayConfig.setSignType("RSA2");
return alipayConfig; return alipayConfig;
} }
//TODO 绑定回调获取openId保存到数据库
public void bindingCallback(String authCode) {
try {
AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.setCode(authCode);
request.setGrantType("authorization_code");
com.alipay.api.response.AlipaySystemOauthTokenResponse response = alipayClient.execute(request);
if (response.isSuccess()) {
String openId = response.getOpenId(); // 支付宝用户唯一ID
// 将openId与当前商城用户绑定保存到数据库
System.out.println("绑定成功openId" + openId);
} else {
System.out.println("绑定失败:" + response.getSubMsg());
}
} catch (AlipayApiException e) {
throw new RuntimeException(e);
}
}
} }

View File

@ -1,8 +1,13 @@
package com.mcwl.web.controller.pay.AliPay; package com.mcwl.web.controller.pay.AliPay;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.easysdk.base.oauth.models.AlipaySystemOauthTokenResponse;
import com.alipay.easysdk.factory.Factory; import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config; import com.alipay.easysdk.kernel.Config;
import com.alipay.easysdk.payment.common.models.AlipayTradeQueryResponse; import com.alipay.easysdk.payment.common.models.AlipayTradeQueryResponse;
@ -23,9 +28,13 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
/** /**
* @AuthorChenYan * @AuthorChenYan
@ -54,6 +63,29 @@ public class OrderTradeController extends BaseController {
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@GetMapping("/generateQrCode")
public void generateQrCode(HttpServletResponse response) throws Exception {
String scope = "auth_user"; // 需要获取用户信息
String state = RandomUtil.randomString(3); // 防止CSRF攻击
String encodedRedirectUri = URLEncoder.encode("https://3195d9a3.r27.cpolar.top/web/pay/callback", "UTF-8");
String authUrl = String.format(
"https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=%s&scope=%s&redirect_uri=%s&state=%s",
"2021005114616085", scope, encodedRedirectUri, state
);
QrCodeUtil.generate(authUrl, 300, 300, "png", response.getOutputStream());
}
@GetMapping("/callback")
public void callback(@RequestParam("auth_code") String authCode) {
System.out.println("authCode = " + authCode);
aliPayIntegration.bindingCallback(authCode);
}
/** /**
* *
*/ */

View File

@ -37,7 +37,7 @@ public class ToActivityController extends BaseController {
@PostMapping("/list") @PostMapping("/list")
public TableDataInfo list(@RequestBody ToActivity toActivity) public TableDataInfo list(@RequestBody ToActivity toActivity)
{ {
startPage(); // startPage();
List<ToActivity> list = toActivityService.selectToActivityList(toActivity); List<ToActivity> list = toActivityService.selectToActivityList(toActivity);
return getDataTable(list); return getDataTable(list);
} }

View File

@ -129,7 +129,7 @@ public class SecurityConfig
.authorizeHttpRequests((requests) -> { .authorizeHttpRequests((requests) -> {
permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
// 对于登录login 注册register 验证码captchaImage 允许匿名访问 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
requests.antMatchers("/login", "/register", "/captchaImage","/web/pay/doPay","/web/pay/notify").permitAll() requests.antMatchers("/login", "/register", "/captchaImage","/web/pay/doPay","/web/pay/notify","/web/pay/generateQrCode","/web/pay/callback").permitAll()
// 静态资源,可匿名访问 // 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

View File

@ -2,6 +2,7 @@ package com.mcwl.resource.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.resource.domain.ModelProduct; import com.mcwl.resource.domain.ModelProduct;
import com.mcwl.resource.domain.ToActivity; import com.mcwl.resource.domain.ToActivity;
import com.mcwl.resource.mapper.ToActivityMapper; import com.mcwl.resource.mapper.ToActivityMapper;
@ -31,7 +32,7 @@ public class ToActivityServiceImpl extends ServiceImpl<ToActivityMapper, ToActiv
@Override @Override
public List<ToActivity> selectToActivityList(ToActivity toActivity) { public List<ToActivity> selectToActivityList(ToActivity toActivity) {
LambdaQueryWrapper<ToActivity> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ToActivity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ToActivity::getActivityName, toActivity.getActivityName()); queryWrapper.eq(StringUtils.isNotBlank(toActivity.getActivityName()),ToActivity::getActivityName, toActivity.getActivityName());
return toActivityMapper.selectList(queryWrapper); return toActivityMapper.selectList(queryWrapper);
} }