支付宝正扫支付API

This commit is contained in:
HH 2022-05-10 21:32:20 +08:00
parent b79756a488
commit 98fb2c2530
4 changed files with 97 additions and 18 deletions

View File

@ -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<OrderMaster> orderMasters = orderMasterService.selectOrderMasterList(new OrderMaster(orderMasterCode));
if (orderMasters.isEmpty()) {
return AjaxResult.error("订单不存在");
}
OrderMaster orderMaster = orderMasters.get(0);
Map<String, Object> 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);
}
}

View File

@ -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<String, Object> 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<String, Object> map = adapayService.wxPubPay(new WxPubPayCallBack(), expend, "wxPay123456" + Math.ceil(Math.random() * 100), "1.00",
Map<String, Object> map = adapayService.wxPubPay(payCallback, expend, "wxPay123456" + Math.ceil(Math.random() * 100), "1.00",
"测试商品", "测试商品detail", null, "description");
//拼接消息给前端.前端通过JSAPI调用微信支付
map.forEach((key, value) -> {

View File

@ -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
}
};
}
}

View File

@ -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());
}
}