企业列表出来了
parent
dc9b5c01a7
commit
833e1c8df5
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
<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>
|
||||
|
|
|
@ -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:
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue