提交 57ce8670 编写于 作者: zhouweidong's avatar zhouweidong

支付宝接口调整

上级 1bffd5e1
package cn.ibizlab.core.extensions.aspect;
import cn.ibizlab.core.pay.domain.PayTrade;
import cn.ibizlab.core.pay.service.IPayTradeService;
import lombok.SneakyThrows;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
/**
* 保存交易记录切面类
*
*/
@Aspect
@Component
public class PayTradeAspect {
@Autowired
IPayTradeService payTradeService;
@AfterReturning(value = "execution(* cn.ibizlab.core.extensions.service.PayCoreService.pagePay(..)) || execution(* cn.ibizlab.core.extensions.service.PayCoreService.preCreate(..))")
@SneakyThrows
public void savePayTrade(JoinPoint point){
Object [] args = point.getArgs();
if(ObjectUtils.isEmpty(args) || args.length==0)
return;
Object serviceParam =args[0];
if(serviceParam instanceof PayTrade){
PayTrade entity=(PayTrade)serviceParam;
entity.setTradeName(entity.getSubject());
payTradeService.save(entity);
}
}
}
......@@ -11,6 +11,7 @@ import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.*;
import com.alipay.api.response.*;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -53,7 +54,7 @@ public class PayCoreService {
"{\"out_trade_no\":\""+ trade.getOutTradeNo() +"\","
+ "\"total_amount\":\""+ trade.getTotalAmount() +"\","
+ "\"subject\":\""+ trade.getSubject() +"\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\""
+ "}");
AlipayTradePagePayResponse response = alipayClient.pageExecute(request);
if (response.isSuccess()) {
......@@ -64,6 +65,16 @@ public class PayCoreService {
return response.getBody();
}
/**
* 支付宝支付结果回调
* @param trade
* @return
*/
public String pagePayCallBack(PayTrade trade){
//更新payTrade status
return "success";
}
/**
* 预创建订单,生成支付二维码
* @param trade
......@@ -253,10 +264,12 @@ public class PayCoreService {
private PayOpenAccess getOpenAccess(PayTrade trade){
PayOpenAccess openAccess=null;
String accessId=trade.getAccessId();
String appId=trade.getAppId();
if(!StringUtils.isEmpty(accessId))
openAccess=openAccessService.getById(accessId);
if(ObjectUtils.isEmpty(openAccess))
throw new BadRequestAlertException("支付失败,未能获取到开放平台","PayCoreService","pagePay");
openAccess=openAccessService.getOne(Wrappers.<PayOpenAccess>lambdaQuery().eq(PayOpenAccess::getAccessKey,appId).or().eq(PayOpenAccess::getId,accessId));
if(ObjectUtils.isEmpty(openAccess) || (openAccess.getDisabled()!=null && openAccess.getDisabled()==1))
throw new BadRequestAlertException("获取开放平台配置失败","PayCoreService","pagePay");
trade.setAccessId(openAccess.getId());
return openAccess;
}
......
......@@ -50,4 +50,10 @@ public class PayCoreResource {
return ResponseEntity.status(HttpStatus.OK).body(payCoreService.pagePay(payTradeMapping.toDomain(dto)));
}
@ApiOperation(value = "网页支付回调", tags = {"网页支付回调" }, notes = "网页支付回调")
@RequestMapping(method = RequestMethod.GET,value = "/trade/pagepaycallback")
public ResponseEntity<String> pagePayCallBack(@Validated @RequestBody PayTradeDTO dto) {
return ResponseEntity.status(HttpStatus.OK).body(payCoreService.pagePayCallBack(payTradeMapping.toDomain(dto)));
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册