代码提交

master
liuqingkun 2 years ago
commit 7d54439c74
  1. 5
      src/main/java/org/springblade/modules/desk/controller/OrderController.java
  2. 5
      src/main/java/org/springblade/modules/desk/entity/Order.java
  3. 14
      src/main/java/org/springblade/modules/weixin/controller/AppEbLoginController.java
  4. 6
      src/main/java/org/springblade/modules/weixin/controller/WeChatAddressController.java
  5. 6
      src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java

@ -176,10 +176,10 @@ public class OrderController {
* 支付成功回调
*/
@PostMapping("/paySuccessCallback")
public R paySuccessCallback(@RequestParam String id) {
public R paySuccessCallback(@RequestBody Order order) {
LambdaUpdateWrapper<Order> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper
.eq(Order::getId, id)
.eq(Order::getId, order.getId())
.set(Order::getStatus, OrderStatusEnum.ORDER_STATUS_UNSEND.getCode())
.set(Order::getPaymentTime, DateUtil.now())
;
@ -210,7 +210,6 @@ public class OrderController {
return R.status(orderService.update(null, lambdaUpdateWrapper));
}
/**
* 确认收货
*/

@ -24,6 +24,11 @@ public class Order extends BaseEntity {
*/
private String orderNo;
/**
* 微信订单编号
*/
private String outTradeNo;
/**
* 商品名称
*/

@ -100,16 +100,28 @@ public class AppEbLoginController {
*/
@PostMapping("/createOrder")
public R createOrder(@RequestBody PayDTO payDTO) {
// 根据订单号查询订单
Order order = orderService.getOne(Wrappers.<Order>lambdaQuery().eq(Order::getOrderNo, payDTO.getOutTradeNo()));
if (order == null) {
throw new ServiceException("该订单不存在");
}
// 关闭上次生成的微信预支付订单号
if (StringUtils.isNotBlank(order.getOutTradeNo())) {
WxPayUtils.cloceOrderJSApiV3(order.getOutTradeNo());
}
// Double totalPrice = order.getTotalPrice() * 100;
// int total = totalPrice.intValue();
int total = 1;
return R.data(WxPayUtils.getPayParam(payDTO.getOpenId(), payDTO.getOutTradeNo(), total));
// 生成随机订单号
String outTradeNo = WxPayUtils.generateNonceStr();
// 修改微信预支付订单号
order.setOutTradeNo(outTradeNo);
orderService.updateById(order);
return R.data(WxPayUtils.getPayParam(payDTO.getOpenId(), outTradeNo, total));
}
@PostMapping("/cloceOrder")

@ -1,6 +1,7 @@
package org.springblade.modules.weixin.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.AddressCache;
@ -24,9 +25,8 @@ public class WeChatAddressController {
private final IWeChatAddressService weChatAddressService;
@GetMapping("/list")
public R<IPage<WeChatAddress>> list(WeChatUser weChatUser, Query query) {
return R.data(weChatAddressService.page(Condition.getPage(query),
Wrappers.<WeChatAddress>lambdaQuery().eq(weChatUser.getId() != null, WeChatAddress::getUserId, weChatUser.getId())));
public R<IPage<WeChatAddress>> list(String id, Query query) {
return R.data(weChatAddressService.page(Condition.getPage(query), Wrappers.<WeChatAddress>lambdaQuery().eq(StringUtils.isNotBlank(id), WeChatAddress::getUserId, id)));
}
@GetMapping("/get-default-address")

@ -45,7 +45,6 @@ public class WxPayUtils {
// JSApi下单url地址
public static String JSApiPayUrl = "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi";
public static String ClocePayUrl = "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}/close";
// 商户私钥 获取对应的签名需要 在微信支付商户平台-账户中心-API安全里设置 养宠物那边复制的
// 对应文档 https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter2_1.shtml
@ -244,7 +243,6 @@ public class WxPayUtils {
return "";
}
/**
* 第四步生成支付参数
* 生成支付所需的参数
@ -274,7 +272,6 @@ public class WxPayUtils {
return json;
}
/**
* 先调用下单然后调用生成支付参数
*
@ -284,7 +281,6 @@ public class WxPayUtils {
public static Object getPayParam(String openId, String outTradeNo,int total) {
JSONObject jsonObject = JSON.parseObject(createOrderJSApiV3(openId, outTradeNo,total));
return getTokenWeiXin(jsonObject.getString("prepay_id"));
}
/**
@ -313,7 +309,7 @@ public class WxPayUtils {
json.put("mchid", mchId);
json.put("description", description);
// 商户订单号 自己生成
// json.put("out_trade_no", generateNonceStr());
json.put("out_trade_no", outTradeNo);
json.put("notify_url", callbackUri);
json.put("amount", amountJson);

Loading…
Cancel
Save