企业列表出来了
parent
dc9b5c01a7
commit
833e1c8df5
|
@ -180,7 +180,8 @@
|
||||||
<workItem from="1725553138436" duration="1569000" />
|
<workItem from="1725553138436" duration="1569000" />
|
||||||
<workItem from="1725584707555" duration="7589000" />
|
<workItem from="1725584707555" duration="7589000" />
|
||||||
<workItem from="1725605672086" duration="3347000" />
|
<workItem from="1725605672086" duration="3347000" />
|
||||||
<workItem from="1725621072988" duration="4491000" />
|
<workItem from="1725621072988" duration="7858000" />
|
||||||
|
<workItem from="1725671427915" duration="175000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="初始化">
|
<task id="LOCAL-00001" summary="初始化">
|
||||||
<created>1724047244829</created>
|
<created>1724047244829</created>
|
||||||
|
@ -504,7 +505,14 @@
|
||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1725625264736</updated>
|
<updated>1725625264736</updated>
|
||||||
</task>
|
</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 />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
|
|
@ -54,6 +54,11 @@
|
||||||
<version>2.2.3</version>
|
<version>2.2.3</version>
|
||||||
<classifier>jdk15</classifier><!-- 指定jdk版本 -->
|
<classifier>jdk15</classifier><!-- 指定jdk版本 -->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-easysdk</artifactId>
|
||||||
|
<version>2.2.0</version>
|
||||||
|
</dependency>
|
||||||
<!-- Json依赖架包下载 -->
|
<!-- Json依赖架包下载 -->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -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初始化成功=======");
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
|
@ -96,6 +96,11 @@
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-sdk-java</artifactId>
|
||||||
|
<version>4.34.0.ALL</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<finalName>cloud-market</finalName>
|
<finalName>cloud-market</finalName>
|
||||||
|
|
|
@ -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";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单详情
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
|
@ -49,3 +49,10 @@ spring:
|
||||||
logging:
|
logging:
|
||||||
level:
|
level:
|
||||||
com.muyu.system.mapper: DEBUG
|
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
|
||||||
|
|
Loading…
Reference in New Issue