企业列表出来了

master
法外狂徒张三 2024-09-07 19:38:38 +08:00
parent dc9b5c01a7
commit 833e1c8df5
7 changed files with 191 additions and 2 deletions

View File

@ -180,7 +180,8 @@
<workItem from="1725553138436" duration="1569000" />
<workItem from="1725584707555" duration="7589000" />
<workItem from="1725605672086" duration="3347000" />
<workItem from="1725621072988" duration="4491000" />
<workItem from="1725621072988" duration="7858000" />
<workItem from="1725671427915" duration="175000" />
</task>
<task id="LOCAL-00001" summary="初始化">
<created>1724047244829</created>
@ -504,7 +505,14 @@
<option name="project" value="LOCAL" />
<updated>1725625264736</updated>
</task>
<option name="localTasksCounter" value="47" />
<task id="LOCAL-00047" summary="企业列表出来了">
<created>1725626544998</created>
<option name="number" value="00047" />
<option name="presentableId" value="LOCAL-00047" />
<option name="project" value="LOCAL" />
<updated>1725626544998</updated>
</task>
<option name="localTasksCounter" value="48" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">

View File

@ -54,6 +54,11 @@
<version>2.2.3</version>
<classifier>jdk15</classifier><!-- 指定jdk版本 -->
</dependency>
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
<version>2.2.0</version>
</dependency>
<!-- Json依赖架包下载 -->
</dependencies>

View File

@ -0,0 +1,40 @@
package com.muyu.market.config;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Data
@Component
//读取yml文件中alipay 开头的配置
@ConfigurationProperties(prefix = "alipay")
public class AliPayConfig {
private String appId;
private String appPrivateKey;
private String alipayPublicKey;
//异步通知回调地址(可选)
private String notifyUrl;
//支付成功后的回调地址
private String returnUrl;
@PostConstruct
public void init() {
// 设置参数(全局只需设置一次)
Config config = new Config();
config.protocol = "https";
config.gatewayHost = "openapi.alipaydev.com";
config.signType = "RSA2";
config.appId = this.appId;
config.merchantPrivateKey = this.appPrivateKey;
config.alipayPublicKey = this.alipayPublicKey;
config.notifyUrl = this.notifyUrl;
Factory.setOptions(config);
System.out.println("=======支付宝SDK初始化成功=======");
}
}

View File

@ -0,0 +1,15 @@
package com.muyu.market.domain;
import lombok.Data;
@Data
public class AliPay {
//订单编号
private String traceNo;
//商品金额
private double totalAmount;
//商品名称
private String subject;
//订单追踪号,商户自己生成,可已不使用
private String alipayTraceNo;
}

View File

@ -96,6 +96,11 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.34.0.ALL</version>
</dependency>
</dependencies>
<build>
<finalName>cloud-market</finalName>

View File

@ -0,0 +1,109 @@
package com.muyu.market.controller;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.easysdk.factory.Factory;
import com.muyu.common.core.domain.Result;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.market.config.AliPayConfig;
import com.muyu.market.domain.AliPay;
import com.muyu.market.domain.SysDatawarehouse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@RestController
@RequestMapping("alipay")
@Transactional(rollbackFor = Exception.class)
public class AliPayController {
@Resource
AliPayConfig aliPayConfig;
private static final String GATEWAY_URL ="https://openapi-sandbox.dl.alipaydev.com/gateway.do";
private static final String FORMAT ="JSON";
private static final String CHARSET ="utf-8";
private static final String SIGN_TYPE ="RSA2";
@GetMapping("/pay")
@ResponseBody
public Result pay(@Validated AliPay aliPay, HttpServletResponse httpResponse) throws Exception {
aliPay.setTraceNo(UUID.randomUUID().toString().replace("-", ""));
AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, aliPayConfig.getAppId(),
aliPayConfig.getAppPrivateKey(), FORMAT, CHARSET, aliPayConfig.getAlipayPublicKey(), SIGN_TYPE);
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
request.setNotifyUrl(aliPayConfig.getNotifyUrl());
request.setReturnUrl(aliPayConfig.getReturnUrl());
request.setBizContent("{\"out_trade_no\":\"" + aliPay.getTraceNo() + "\","
+ "\"total_amount\":\"" + aliPay.getTotalAmount() + "\","
+ "\"subject\":\"" + aliPay.getSubject() + "\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
String form = "";
try {
// 调用SDK生成表单
form = alipayClient.pageExecute(request).getBody();
} catch (AlipayApiException e) {
e.printStackTrace();
}
httpResponse.setContentType("text/html;charset=" + CHARSET);
// 直接将完整的表单html输出到页面
httpResponse.getWriter().write(form);
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
return Result.success(aliPay);
}
@PostMapping("/notify") // 注意这里必须是POST接口
public String payNotify(HttpServletRequest request) throws Exception {
if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) {
System.out.println("=========支付宝异步回调========");
Map<String, String> params = new HashMap<>();
Map<String, String[]> requestParams = request.getParameterMap();
for (String name : requestParams.keySet()) {
params.put(name, request.getParameter(name));
}
String tradeNo = params.get("out_trade_no");
String gmtPayment = params.get("gmt_payment");
String alipayTradeNo = params.get("trade_no");
// 支付宝验签
if (Factory.Payment.Common().verifyNotify(params)) {
// 验签通过
System.out.println("交易名称: " + params.get("subject"));
System.out.println("交易状态: " + params.get("trade_status"));
System.out.println("支付宝交易凭证号: " + params.get("trade_no"));
System.out.println("商户订单号: " + params.get("out_trade_no"));
System.out.println("交易金额: " + params.get("total_amount"));
System.out.println("买家在支付宝唯一id: " + params.get("buyer_id"));
System.out.println("买家付款时间: " + params.get("gmt_payment"));
System.out.println("买家付款金额: " + params.get("buyer_pay_amount"));
// 更新订单已支付的逻辑代码
}
}
return "success";
}
/**
*
*/
}

View File

@ -49,3 +49,10 @@ spring:
logging:
level:
com.muyu.system.mapper: DEBUG
alipay:
appId: 9021000140627330
appPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCeW8Qj0Sr1pIAcBD6q9JHoJ+2qyZNQyZdCTcnWiNtclfoJf/oaxYGPc86u411lYj6N7yn2eIl7PBBfm+vxw3ohORyTA3go6s8WkCN3EwG97OIRdQHZf3db91grV7Cz9Gm44wzH4bv2jzLMDKmAHauBn/Mddp0B34XS5mPOesqe87ooTWJIm714rzqThPIJyfRnkZ698qDoUTakyUXOgfKwc/QwZ150pi681jxRoLp/lnTwKbX64pxS+H/LDfuTYpl4NhdbtPq0BAGyzSfyUpPIzZBsoRzgVwd/MlbK3jry+B4o5LsWPJp8QzI0mJhJVRQTbUSa5cFb1A9K9BKZRhZvAgMBAAECggEAD249tIfDOeBno1M+kAX42bhaTlQKCMs78/gEfOUlCuaKULaptkYck8/jCeOZzDFAizAM1Ll2HA4EQmy9FvfHRMl94U1rPgFzYG13Jzkw6ELW3ICcR4dGKC3353FKBJ8CVkO5kRiL6kCV4JAzTAqYFa9yTyKpte8D6UMN4qbQa6CI+/8Li4d2eFj0y19qqZ7Q4+LC3QbSQ88TVg+4karo76yRZMB461Cc9uUZWr4ODrR2hCNPXdnMhl+638oFe3jrUvQUE1HOPXk89JG2M9mYSU9TcfGLJDpFJQL4mJt94+w/6U5jPfvEn2sK5IlmKWGeJ46VJ54s47p1r5LKxgUjMQKBgQDJcukLz7CtkHX/AwGQULaBsVCd79pJhdTOLpoqBiQkBrGxKVqgtPQCoLULZYB1MjRafUVTOxALeg7eQzurDyF8jFRP2sDk8AKqR5x+LIuSgSetN27W2hQQIjcCsHp5QtacWfRaP8mXOIWswNyrsaGuSPrUGGxfQizPFzCMB2/mewKBgQDJPbBcyH3xhzv+N5cafFLtMRi5nimwCI49w0U2L1UfxvZpx45l4pdNZwLLbTtrCM/5jYRvh+TAJNQYDI5a4SlZYPZDUZMXKFNX/NeOsNwV7cl0g88NlxT4g7Oq3qfOOAXF5SK02LveLRBpAbaGQewFIeOJ1kjGzenmZ4m0jssnnQKBgQCdit1QnGNqyWBOR9aQO18PvFD0wyBugVh0yqNMHDNlbUrH5zR2HC38ZBxSRlYY0WN6JR/zQGyC3TkFf4UJeTLSCZjiPoy+PimHa6uqTUH2GEWkRIbNRg2MtIVa+BNABBJ8gikD74DDX7PC761kJO3xtCddeaA/Oyx55IPV7vcHQwKBgDEAWm9dSn2DZnJSavLCDxc+ezzHbHM2whv77mBxShMAyYOcWeopMJpiWOXb5Tn83VdwxCy8NFEtJo/sjsVGSmE/IPfnZx+ebBzirkJKgmy8h+9dIQ+4GB0jRJ54tPeb4Jv9XWQX2jcRVgubpSwv5R6iz9sCWJpADZJS588VbhZpAoGBAJM9aNoF1xJ0s1OGh+mvDsPUFCflrnAmawbJRtj73Z7v2uxlPqU8pik3/cCdaPIijK+J7vkY0nAx0Tcs8dnwGXhmvxvTZaEFtR4GiZgVK79isYP/6kGHoPhQJm5vwxDiNQs5+5+Wb2ZF2niIPS6VG+B2nLIyFzZKtsrFl85hjspm
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnlvEI9Eq9aSAHAQ+qvSR6CftqsmTUMmXQk3J1ojbXJX6CX/6GsWBj3POruNdZWI+je8p9niJezwQX5vr8cN6ITkckwN4KOrPFpAjdxMBveziEXUB2X93W/dYK1ews/RpuOMMx+G79o8yzAypgB2rgZ/zHXadAd+F0uZjznrKnvO6KE1iSJu9eK86k4TyCcn0Z5GevfKg6FE2pMlFzoHysHP0MGdedKYuvNY8UaC6f5Z08Cm1+uKcUvh/yw37k2KZeDYXW7T6tAQBss0n8lKTyM2QbKEc4FcHfzJWyt468vgeKOS7FjyafEMyNJiYSVUUE21EmuXBW9QPSvQSmUYWbwIDAQAB
notifyUrl: http://10.0.2.1:8080/market/alipay/notify
returnUrl: http://10.0.2.1:81/market/apitype