From 98fb2c25309a19a7bc76ef61d5c1f4182771196b Mon Sep 17 00:00:00 2001 From: HH Date: Tue, 10 May 2022 21:32:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E6=AD=A3=E6=89=AB?= =?UTF-8?q?=E6=94=AF=E4=BB=98API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/pay/AlipayController.java | 55 +++++++++++++++++++ .../web/controller/pay/WxPayController.java | 11 +++- .../main/java/com/ghy/web/core/AfterPay.java | 34 ++++++++++++ .../callback/reply/WxPubPayCallBack.java | 15 ----- 4 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java create mode 100644 ghy-admin/src/main/java/com/ghy/web/core/AfterPay.java delete mode 100644 ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java new file mode 100644 index 00000000..af00a874 --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java @@ -0,0 +1,55 @@ +package com.ghy.web.controller.pay; + +import com.ghy.common.adapay.AdapayService; +import com.ghy.common.adapay.callback.PayCallback; +import com.ghy.common.core.controller.BaseController; +import com.ghy.common.core.domain.AjaxResult; +import com.ghy.order.domain.OrderMaster; +import com.ghy.order.service.OrderMasterService; +import com.huifu.adapay.core.exception.BaseAdaPayException; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 支付宝支付API + * + * @author HH 2022/5/10 + */ +@RestController +@RequestMapping("pay/ali") +public class AlipayController extends BaseController { + + @Resource + private PayCallback payCallback; + @Resource + private AdapayService adapayService; + @Resource + private OrderMasterService orderMasterService; + + /** + * 支付宝正扫支付 + */ + @PostMapping("qr") + public AjaxResult qrPay(String orderMasterCode) { + List orderMasters = orderMasterService.selectOrderMasterList(new OrderMaster(orderMasterCode)); + if (orderMasters.isEmpty()) { + return AjaxResult.error("订单不存在"); + } + OrderMaster orderMaster = orderMasters.get(0); + Map map; + try { + // TODO 订单里需要补充支付金额、tittle、简要描述、分账信息、description + map = adapayService.alipayQrPay(payCallback, orderMaster.getCode(), "orderMaster.get支付金额", + "orderMaster.getTittle()", "orderMaster.get简要描述", "orderMaster.getDivMember", "orderMaster.getDescription"); + } catch (BaseAdaPayException e) { + logger.error("获取微信用户信息失败", e); + return AjaxResult.error(); + } + return AjaxResult.success(map); + } +} diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java index 283e1d9f..eacd3ccc 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java @@ -2,8 +2,8 @@ package com.ghy.web.controller.pay; import com.alibaba.fastjson.JSONObject; import com.ghy.common.adapay.AdapayService; +import com.ghy.common.adapay.callback.PayCallback; import com.ghy.common.adapay.callback.model.WxLiteExpend; -import com.ghy.common.adapay.callback.reply.WxPubPayCallBack; import com.ghy.common.config.WxConfig; import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; @@ -34,7 +34,12 @@ public class WxPayController extends BaseController { private AdapayService adapayService; @Resource private OrderMasterService orderMasterService; + @Resource + private PayCallback payCallback; + /** + * 微信小程序支付 + */ @PostMapping("lite") public AjaxResult litePay(HttpServletRequest request) { String code = request.getParameter("code"); @@ -58,7 +63,7 @@ public class WxPayController extends BaseController { Map map; try { // TODO 订单里需要补充支付金额、tittle、简要描述、分账信息、description - map = adapayService.wxPubPay(new WxPubPayCallBack(), expend, orderMaster.getCode(), "orderMaster.get支付金额", + map = adapayService.wxPubPay(payCallback, expend, orderMaster.getCode(), "orderMaster.get支付金额", "orderMaster.getTittle()", "orderMaster.get简要描述", "orderMaster.getDivMember", "orderMaster.getDescription"); } catch (BaseAdaPayException e) { logger.error("获取微信用户信息失败", e); @@ -90,7 +95,7 @@ public class WxPayController extends BaseController { //调用adapay微信公众号支付. WxLiteExpend expend = new WxLiteExpend(); expend.setOpen_id(openId); - Map map = adapayService.wxPubPay(new WxPubPayCallBack(), expend, "wxPay123456" + Math.ceil(Math.random() * 100), "1.00", + Map map = adapayService.wxPubPay(payCallback, expend, "wxPay123456" + Math.ceil(Math.random() * 100), "1.00", "测试商品", "测试商品detail", null, "description"); //拼接消息给前端.前端通过JSAPI调用微信支付 map.forEach((key, value) -> { diff --git a/ghy-admin/src/main/java/com/ghy/web/core/AfterPay.java b/ghy-admin/src/main/java/com/ghy/web/core/AfterPay.java new file mode 100644 index 00000000..91fc4fce --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/core/AfterPay.java @@ -0,0 +1,34 @@ +package com.ghy.web.core; + +import com.ghy.common.adapay.callback.PayCallback; +import com.ghy.common.adapay.callback.model.PayReply; +import com.ghy.order.service.OrderDetailService; +import com.ghy.order.service.OrderMasterService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; + +/** + * 用户支付后 + */ +@Configuration +public class AfterPay { + + @Resource + OrderMasterService orderMasterService; + @Resource + OrderDetailService orderDetailService; + + @Bean + public PayCallback payCallback() { + return new PayCallback() { + @Override + public void onReply(PayReply reply) { + // TODO 修改 OrderMaster 订单状态 + // TODO 修改 OrderDetail 订单状态 + // TODO 保存支付结果到MySQL + } + }; + } +} diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java b/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java deleted file mode 100644 index e9fba84f..00000000 --- a/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ghy.common.adapay.callback.reply; - -import com.ghy.common.adapay.callback.PayCallback; -import com.ghy.common.adapay.callback.model.PayReply; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class WxPubPayCallBack implements PayCallback { - - @Override - public void onReply(PayReply reply) { - // 更新工单状态 - log.info("wx pub pay response is : " + reply.toString()); - } -}