package cc.mrbird.febs.pay.service.impl;
|
|
import cc.mrbird.febs.common.exception.FebsException;
|
import cc.mrbird.febs.mall.entity.MallOrderInfo;
|
import cc.mrbird.febs.pay.model.AliPayPassbackModel;
|
import cc.mrbird.febs.pay.properties.AliPayProperties;
|
import cc.mrbird.febs.pay.service.IPayService;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alipay.api.AlipayApiException;
|
import com.alipay.api.domain.AlipayTradeAppPayModel;
|
import com.alipay.api.response.AlipayTradeAppPayResponse;
|
import com.ijpay.alipay.AliPayApi;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author wzy
|
* @date 2021-09-27
|
**/
|
@Slf4j
|
@Service
|
public class PayServiceImpl implements IPayService {
|
|
@Resource
|
private AliPayProperties aliPayProperties;
|
|
@Value("${spring.profiles.active}")
|
private String active;
|
|
@Override
|
public String aliPay(MallOrderInfo orderInfo) {
|
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
|
model.setSubject("全民商城商品支付");
|
model.setBody(orderInfo.getName());
|
model.setOutTradeNo(orderInfo.getOrderNo());
|
model.setTimeoutExpress("15m");
|
|
if ("dev".equals(active) || "test".equals(active)) {
|
model.setTotalAmount("0.01");
|
} else {
|
model.setTotalAmount(orderInfo.getAmount().toString());
|
}
|
|
AliPayPassbackModel passbackModel = new AliPayPassbackModel();
|
passbackModel.setOrderId(orderInfo.getId());
|
passbackModel.setMemberId(orderInfo.getMemberId());
|
model.setPassbackParams(JSONObject.toJSONString(passbackModel));
|
|
model.setProductCode("QUICK_MSECURITY_PAY");
|
AlipayTradeAppPayResponse resp = null;
|
try {
|
resp = AliPayApi.appPayToResponse(model, aliPayProperties.getNoticeUrl());
|
} catch (AlipayApiException e) {
|
log.error("支付宝支付异常", e);
|
throw new FebsException("支付宝支付异常");
|
}
|
return resp.getBody();
|
}
|
}
|