Compare commits

...

6 Commits

Author SHA1 Message Date
Aaaaaaaa ba1925da20 ok 2024-09-04 10:23:27 +08:00
Aaaaaaaa c542ca00f0 Merge branch 'dev2' 2024-09-04 10:22:37 +08:00
Aaaaaaaa 3037df0b8c ok 2024-09-04 01:08:17 +08:00
Aaaaaaaa 000f20eae0 ok 2024-09-04 01:01:01 +08:00
Aaaaaaaa 49fd335290 ok 2024-09-04 00:58:12 +08:00
Aaaaaaaa 393762d8be ok 2024-09-03 21:06:27 +08:00
10 changed files with 70 additions and 50 deletions

View File

@ -1,11 +0,0 @@
package com.muyu.cloud.market.domin;
import lombok.Data;
@Data
public class AliPay {
private String traceNo;
private String totalAmount;
private String subject;
// private String alipayTraceNo;
}

View File

@ -2,6 +2,7 @@ package com.muyu.cloud.market.domin;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -29,6 +30,7 @@ public class Orders extends BaseEntity {
/**
*
*/
@Excel(name = "订单编号")
private String ordersNum;
/**
@ -44,21 +46,25 @@ public class Orders extends BaseEntity {
/**
*
*/
@Excel ( name ="订单金额")
private BigDecimal ordersPrice;
/**
*
*/
@Excel(name = "订单规格")
private String ordersSpecification;
/**
* 120 3.(退) 4.退
*/
@Excel(name = "订单款项状态")
private Integer ordersState;
/**
*
*/
@Excel(name = "订单日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
private Date ordersLaunchdate;
@ -66,6 +72,7 @@ public class Orders extends BaseEntity {
/**
*
*/
@Excel(name = "逻辑删除字段")
private Integer exist;
/**
@ -76,6 +83,7 @@ public class Orders extends BaseEntity {
/**
*
*/
@Excel(name = "产品名称")
private String productName;
//用户模块(要使用外键)
@ -87,6 +95,7 @@ public class Orders extends BaseEntity {
/**
*
*/
@Excel(name = "用户账号")
private String userName;

View File

@ -1,9 +1,20 @@
package com.muyu.cloud.market.controller;
import com.alipay.api.AbstractAlipayClient;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import com.muyu.cloud.market.domin.AliPay;
import com.muyu.cloud.market.mapper.OrderShowMapper;
import com.muyu.cloud.market.config.AliPayConfig;
import com.muyu.cloud.market.domin.Orders;
import com.muyu.cloud.market.service.OrderShowService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -12,31 +23,51 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
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;
@Resource
private OrderShowMapper ordersMapper;
OrderShowService orderShowService;
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";
private static final String PAY_SUCCESS="支付成功";
@GetMapping("/pay") // &subject=xxx&traceNo=xxx&totalAmount=xxx
public String pay(AliPay aliPay) {
AlipayTradePagePayResponse response;
@GetMapping("/pay")
public void pay(Orders orders, HttpServletResponse httpResponse) throws Exception {
//编号
orders.setOrdersNum(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.setBizContent("{\"out_trade_no\":\"" + orders.getOrdersNum() + "\","
+ "\"total_amount\":\"" + orders.getOrdersPrice() + "\","
+ "\"subject\":\"" + orders.getProductName() + "\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
// request.setReturnUrl("");//回调接口
String form = "";
try {
// 发起API调用以创建当面付收款二维码为例
response = Factory.Payment.Page()
.pay(aliPay.getSubject(), aliPay.getTraceNo(), aliPay.getTotalAmount(), "");
} catch (Exception e) {
System.err.println("调用遭遇异常,原因:" + e.getMessage());
throw new RuntimeException(e.getMessage(), e);
// 调用SDK生成表单
form = alipayClient.pageExecute(request).getBody();
} catch (AlipayApiException e) {
e.printStackTrace();
}
return response.getBody();
httpResponse.setContentType("text/html;charset=" + CHARSET);
// 直接将完整的表单html输出到页面
httpResponse.getWriter().write(form);
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
}
@PostMapping("/notify") // 注意这里必须是POST接口
public String payNotify(HttpServletRequest request) throws Exception {
if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) {
@ -52,8 +83,11 @@ public class AliPayController {
String tradeNo = params.get("out_trade_no");
String gmtPayment = params.get("gmt_payment");
String alipayTradeNo = params.get("trade_no");
String sign=params.get("sign");
String content = AlipaySignature.getSignCheckContentV1(params);
boolean checkContent = AlipaySignature.rsa256CheckContent(content, sign, aliPayConfig.getAlipayPublicKey(), "UTF-8");
// 支付宝验签
if (Factory.Payment.Common().verifyNotify(params)) {
if (checkContent) {
// 验签通过
System.out.println("交易名称: " + params.get("subject"));
System.out.println("交易状态: " + params.get("trade_status"));
@ -63,10 +97,14 @@ public class AliPayController {
System.out.println("买家在支付宝唯一id: " + params.get("buyer_id"));
System.out.println("买家付款时间: " + params.get("gmt_payment"));
System.out.println("买家付款金额: " + params.get("buyer_pay_amount"));
// 更新订单未已支付
// ordersMapper.updateByordersState1()
}
// 更新订单为已支付
Orders order = new Orders();
order.setOrdersId(Long.valueOf(tradeNo));
order.setOrdersState(2);
orderShowService.updateByordersState1ANDproductSales(Math.toIntExact(order.getOrdersId())
,order.getOrdersProduct());}
}
return "success";
}
}

View File

@ -141,13 +141,6 @@ public class OrdersController {
excelUtil.exportExcel(response,list,"订单信息选中导出");
}
@GetMapping("/delByOrderId/{ordersName}")
@Operation(summary = "彻订单", description = "根据根据orderid删除数据库字段")
Result delByOrderName(@Validated @PathVariable("ordersName") Integer ordersName){
return orderShowService.delByOrderId(ordersName);
}
/**
* 1,
* 0,1,2,3.(退) 4.退

View File

@ -2,7 +2,6 @@ package com.muyu.cloud.market.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.cloud.market.domin.Company;
import com.muyu.cloud.market.domin.Product;
import com.muyu.cloud.market.domin.resp.UserCompanyResp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

View File

@ -2,7 +2,6 @@ package com.muyu.cloud.market.service;
import com.github.pagehelper.PageInfo;
import com.muyu.cloud.market.domin.Orders;
import com.muyu.cloud.market.domin.User;
import com.muyu.cloud.market.domin.req.OrdersAddReq;
import com.muyu.cloud.market.domin.req.OrdersListReq;
import com.muyu.cloud.market.domin.req.OrdersUpdReq;
@ -93,7 +92,7 @@ public interface OrderShowService {
* 0,1,2,3.(退) 4.退
*/
//订单修改支付状 //更改该商品的销量
Result updateByordersState1ANDproductSales(Integer ordersId,Integer productId);
Result updateByordersState1ANDproductSales(Integer ordersId, Integer productId);

View File

@ -3,7 +3,6 @@ package com.muyu.cloud.market.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.cloud.market.domin.User;
import com.muyu.cloud.market.domin.req.LinkEmailReq;
import com.muyu.cloud.market.domin.resp.UserCompanyResp;
import jakarta.servlet.http.HttpServletRequest;
/**

View File

@ -1,9 +1,7 @@
package com.muyu.cloud.market.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.cloud.market.domin.Company;
import com.muyu.cloud.market.domin.Product;
import com.muyu.cloud.market.domin.User;
import com.muyu.cloud.market.domin.req.CompanyListReq;
import com.muyu.cloud.market.domin.resp.UserCompanyResp;

View File

@ -3,7 +3,6 @@ package com.muyu.cloud.market.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.muyu.cloud.market.domin.Orders;
import com.muyu.cloud.market.domin.User;
import com.muyu.cloud.market.domin.req.OrdersAddReq;
import com.muyu.cloud.market.domin.req.OrdersListReq;
import com.muyu.cloud.market.domin.req.OrdersUpdReq;
@ -146,7 +145,6 @@ public class OrderShowServiceImpl implements OrderShowService {
return orderShowMapper.getSeleOut(ids);
}
@Override
public Result updateByordersState1ANDproductSales(Integer ordersId, Integer productId) {
Integer updateByordersState1 = orderShowMapper.updateByordersState1(ordersId);

View File

@ -54,9 +54,7 @@ spring:
alipay:
appId: 9021000140633904
appPrivateKey:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCavSHP47iS43En9+MaR8ussAQmI9AbqhZYfb1yROE1ztMUmV9QJqmNiTdA2Tihn+srBG9AzVeJ/0XCqRlH8mFz5FXdsCG1M2EIPgiBYX58EJ565vAgHKRA/d/kKCA5MVkWYu6YiU/V2Pqw/X8K8/FNxXYvaHpjZwpjDqJCzvy4iK4DtM4QQoZRsVr0cOycYJSiC5A6+1wCpP4ZFNL9JdaQLCkLavAeRiRpwedtdW7B+malQEUomylZMwFaB0XJS+8oPlzqYf5RDyNYret4AZzfw0ke6fm3N7ygk3TTBZ9uKfqUNRHdpJ6/uIcHFE7MO16nyoxWHlM/u9i5vmxzhgKtAgMBAAECggEAdc+z85zUhXmHSL/x96tcBeGJdyRjKPzpwHwThfGtahNLIG7ZY6PcCbfECqqX9G5WVU0uCy+MC7QAgAHRDrcavWrGeV/FejlhEi5wuVjqPTlGABreDgTghd8E3Kg0SHcq9eFi+V3qG830qFaIqGUsfmLt5ZBtRktIXDzjC2yeezvV3IPHAQw5mTHmcbzz3WLJ8kuXV3gbOAPzV6Ig5pyp2NwdTMpg1Pn6Xfhf9reYnpkesW8Jph5c6P6bJZkQngC0TFQOpK3UfmFPq1dGfD5UcHjx1H4z09ny6rgXdRxvohDsgeiNmWY+rulzpQM8/DdUwwdmSACYAKgJSn6anCqzvQKBgQD6r/cEI/ShHZlLcS/vnc1W76KBpXx89luBo1NsbqwITSPKNktXpsocYuoxe4ednhBW69W71GfROQMw9zwiM1Gym9xs81Zys+IWySwd+J+T26Z1FoifPwW5ZA2cZYqzwZjg8Urw964cjZtmEhyBvGdzfRlFwvXi36ZB8b4wuOHsEwKBgQCeBJ/tGrGW15enkbmkCKSjFje7yVpjsB7ineuXd7QU3GVXNX9n35BvEcBkgx221woInEfyGsYnw13z1kwDPg2jh2tjVRSz2hjr7UNqeEXeuc366PHzoyJdl7K4ut7F5newzJhRqNKerLvTG8Ajta1NCnDevDVSYXgpso+Qw6iuPwKBgDWSJvJekKdhgOHLVVgaW8gpO4wDBkBaESH5+hjg6ah4e555zc30WZqJVMywPkHjhlBc43bZJDpkuZbcLqCMYPgPMKKjuaSXZkhCQ0hAWjGprb+1ygpl2F5O0E3MsUBKrdXcGoy2ESIO7Nd6JVdgIKdgY2cyC4OpEYlkFKWqzLS7AoGAQxR5g6D6VKuPAJ63LPBSW705yakPixQf+FnLwlAZjWWGS8A1JrZcTRo/Dywt+AlPhBo73IYLKqQgBTwqppG4HnyFVPSwRi1GuRjOrqsCFivQSjyLQb81/n9AanVBzscodlBUNQ4y4xM25MZ6CW69c+ADzDofdKpV5XWcxnqY5+cCgYEAoguI4wGcq1ULjOnt2BLhj2X4kU5UJZwFQuV8t5GDl9BoxO31qRCvu7cs3XtMsIaMn6Zvrg/bNjPF7sC1f0uXqCn3AlnVVTaG/jlI5QywJJflG33Hfa0K7j3ivGTU+AUL4LZbXOt9YR7vGjmItyAnZosdAogp50mOA1W0Jla+Aaw=
alipayPublicKey:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7rRdHzrcyEdSOLPm3ITg+t/C3tGp9+wl739nOgFExrSD1j1C95tTRGUCqNUQtatiYmlAfwOKzkNhr/XEH/Vvpq5Ei8C4ZBWJqOMw7fQfBE6m5erO/FOuS4pyZCtQZyP9C5nhtYOupnGtq0fmgQaGKk657vszYSMEtpuQaZ5/odUYxRbYP3IHbcK+++PQBarfOdnhNcnR/Ry7TVOC3+da0dogmClPEconZQMwCJ81CJ7Hj4TKKyLTe9bz+J2tkUeNr9Mc72g4ljjftX7k0RBpBpi4HSHJ3SmPLhktiuDOeOGOef88pBgBtFV03/+aFpUEHx/imiHhBMBeNT3kqFV03QIDAQAB
appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCBCZ4+TPuI+00ZLNdo2wuI8/glDJ+ksfJmWUzmOoSxd9FPPd86XwYWmyzktYh8Vw4c6DipHm3BjCVBiGIKYfk8TfsPMaz2ni3B2MxOgswnPCS+Erp5DlBz7/DMbiPOUfi15KGjB2Y3KF005NnWr9RrF4xR0bEyPdEOQhusfc7qtIintsgTTU0jDhSNLbIA4KuzXwaivAr8eBdy6uE2XO0Mq105UwtD4x7+QE8h/0QlPkS9VgMtyYMrxRBJLS85UatfjLiKcbdIT/wlOmGSoO2AlOzBjCgGZ55mEFbHnCNf0Pmn0Eaf9PLLoc5W4G5OZ7HvjBDzfV0lzzu98J83oA8DAgMBAAECggEAKCL2vsgxQUVxkNAa3Lmtl9bTK6sGiTL0hBNo0QAIwC7Vw0Eqizx9Z1CzIRy6LHrjn+g3n5sgZqCSAhVK8ZHR9YkH+4znEPrYnsAxpIYYvGd/wkOPDxJ9weIzU1M6/fUPWHyaLlyh1axPeaFphNbCSuFTOyvvYwJJYZb8hqXHU8eI0Wo15iMj9K4kcyQiUAQG16WvyXw1cX8Vt5v1r/7k1SdK8tUawzc47irlVihf3HESOX9IbcqL2CGF/3laXojSRvmgNe6Biw9MDJK7qOwrscwyNihZwcDgY6vxGZD5q9DUu6weILCLoNyceDXosOgQwKjVbOzWLj+4opSLgtluIQKBgQDtTJ7cnaK72INLdiNVbx2JtNMD1e1w/NJQvPQg12OC+hBd11U4lsU5GCmnOXshrHCgm4V761O2OMCIxsEFBPGKj1f33i4D3fGbqDwOmXPuYNLTUcIBpxm8h3RfUF3OkkAceYi9kDL5TkqgxO9zRVd9GsK27cPMo3k8zzmyCaomkQKBgQCLNODZDrNepV/vY50GFCzpqX7rdvJBXb1rtHk3JcOd8AsncSlEXLGk4TsLGvDwasBfCsBRC3FY08Ft0LgEyEv5e8DGWtPmu+Ya6ssCFwdjsOH8Ei+YtsB/672zdNtBl2vCkELECZu31659y2DGga0DVHvqmJPp3CqVWfjrQM+uUwKBgQCclkjmL6co6ZCKBST/xVjqe8Ya69nJCywFVwqJeVgTH8wZAHUd6G+wYz9pN8cGy3FuqfGFeh49SmnSV8Ua+M4irsBPse8PYi+ClZs7zwrvLDkydOreiFO1UnT6SF/+ZgekQpZ28GaSmJUqTYnsuL8osLX4XCEuMllYRS4/S51Z4QKBgGtQwYIz9g2h2fp3xca46QLdew3VLd88f9m3ULc18r8gHckzUMf12bEtPVJLW7FL6q+aXzZbZu8+l+CrxiFRtFhJkgyYWsGG21am6QfcbwLoit7DulO1l2NGfoEJNjoznIxqoD321kf9CvTJQ/rkX1ew2rK5G1ZvN5jZuq7J0REnAoGALww4e5u21/ZnayUp/dZcMiQ3+AcWVb/7I4r1lwKTUVkbKa91HsITpc7lk2U5xA2kGbBqLvS+Ok0tgiSKucRf3LDRRZx3uORBKb85GamsTIb//9+qaRWQH/oll6O/ziYrSw1QrhX/DoJpLgWyPZI+aAasFEB6JQs9Smkh1hDYGs0=
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgQmePkz7iPtNGSzXaNsLiPP4JQyfpLHyZllM5jqEsXfRTz3fOl8GFpss5LWIfFcOHOg4qR5twYwlQYhiCmH5PE37DzGs9p4twdjMToLMJzwkvhK6eQ5Qc+/wzG4jzlH4teShowdmNyhdNOTZ1q/UaxeMUdGxMj3RDkIbrH3O6rSIp7bIE01NIw4UjS2yAOCrs18GorwK/HgXcurhNlztDKtdOVMLQ+Me/kBPIf9EJT5EvVYDLcmDK8UQSS0vOVGrX4y4inG3SE/8JTphkqDtgJTswYwoBmeeZhBWx5wjX9D5p9BGn/Tyy6HOVuBuTmex74wQ831dJc87vfCfN6APAwIDAQAB
notifyUrl: http://rnkig5.natappfree.cc/alipay/notify
returnUrl: http://localhost/market/apitest/index