Commit dc42d8f9 authored by Administrator's avatar Administrator

创建项目

parent 76bfdfef
package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.acquirer.ChannelRequest;
import cn.quant.baa.pay.acquirer.ChannelResponse;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.model.web.PayResponseData;
import cn.quant.baa.pay.util.AssertUtils;
import cn.quant.spring.http.HttpResponseData;
import cn.quant.spring.rest.AbstractController;
import com.fasterxml.jackson.core.JsonProcessingException;
......@@ -16,6 +20,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.IOException;
import java.text.SimpleDateFormat;
......@@ -24,6 +29,10 @@ import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.Map;
import static cn.quant.baa.pay.dict.MessageEnum.ACQUIRER_NOSUCH;
import static cn.quant.baa.pay.dict.MessageEnum.ILLEGAL_REQ_CHAN_ID;
import static cn.quant.baa.pay.dict.MessageEnum.ILLEGAL_REQ_DATA;
/**
* Created by Administrator on 2021/8/28 0028.
*/
......@@ -31,6 +40,26 @@ public abstract class BusinessController extends AbstractController {
private final static ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private AcquirerPropertiesSource acquirerPropertiesSource;
public AcquirerProperties check(ChannelRequest data) {
if (data == null) {
AssertUtils.throwMessage(ILLEGAL_REQ_DATA);
}
String chanId = data.getChanId();
if (chanId == null) {
AssertUtils.throwMessage(ILLEGAL_REQ_CHAN_ID, chanId);
}
AcquirerProperties properties = acquirerPropertiesSource.get(Long.valueOf(chanId));
if (properties == null) {
AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId);
}
return properties;
}
public BusinessController() {
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
......
package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.ChannelResponse;
import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.component.Sequencer;
......@@ -28,7 +29,7 @@ import javax.servlet.http.HttpServletRequest;
@Controller
//@RestController
@RequestMapping("pay")
public class PayTestController {
public class PayTestController extends BusinessController{
ObjectMapper objectMapper = new ObjectMapper();
......@@ -73,25 +74,26 @@ public class PayTestController {
}
// @PostMapping("goPay")
// @BusinessMapping(session = 1)
// @ResponseBody
// public ChannelResponse goPay(@RequestBody(required = false) BusinessRequest<PayRequestData> requestData) throws Exception {
// PayRequestData data = requestData.getData();
// String str = "{\"subject\":\"测试订单1\",\"mchId\":\"wx2f44c7fe7b08458d\",\"chanId\":\"75772285618946307\",\"outTradeNo\":\"11111111223\",\"originalAmount\":\"110.00\",\"amount\":0.01,\"discounts\":\"10.00\",\"notifyUrl\":\"http://127.0.0.1:8080/notifyUrl\",\"buyerId\":\"777777\",\"attach\":\"AAAA-BBBB-1111-2222\",\"creditAmount\":\"10.00\",\"cashAmount\":\"10\",\"goodsDetail\":[{\"goodsNo\":\"123123\",\"goodsId\":\"11111\",\"goodsName\":\"商品1\",\"quantity\":2,\"price\":\"10.00\",\"discounts\":\"2.5\",\"amount\":\"17.5\",\"attach\":\"---\",\"creditAmount\":123,\"cashAmount\":123}]}";
//
// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// PayRequestData payRequestData = objectMapper.readValue(str, PayRequestData.class);
// String[] temp = data.getChanId().split("_");
// payRequestData.setChanId(temp[0]);
// payRequestData.setMchId(temp[1]);
// payRequestData.setOutTradeNo(data.getOutTradeNo());
// payRequestData.setSubject(data.getSubject());
// payRequestData.setAmount(data.getAmount());
// payRequestData.setNotifyUrl("http://127.0.0.1:8080/notifyUrl");
// ChannelResponse response = transactionService.pay(payRequestData);
// return response;
//
// }
@PostMapping("goPay")
@BusinessMapping(session = 1)
@ResponseBody
public ChannelResponse goPay(@RequestBody(required = false) BusinessRequest<PayRequestData> requestData) throws Exception {
PayRequestData data = requestData.getData();
String str = "{\"subject\":\"测试订单1\",\"mchId\":\"wx2f44c7fe7b08458d\",\"chanId\":\"75772285618946307\",\"outTradeNo\":\"11111111223\",\"originalAmount\":\"110.00\",\"amount\":0.01,\"discounts\":\"10.00\",\"notifyUrl\":\"http://127.0.0.1:8080/notifyUrl\",\"buyerId\":\"777777\",\"attach\":\"AAAA-BBBB-1111-2222\",\"creditAmount\":\"10.00\",\"cashAmount\":\"10\",\"goodsDetail\":[{\"goodsNo\":\"123123\",\"goodsId\":\"11111\",\"goodsName\":\"商品1\",\"quantity\":2,\"price\":\"10.00\",\"discounts\":\"2.5\",\"amount\":\"17.5\",\"attach\":\"---\",\"creditAmount\":123,\"cashAmount\":123}]}";
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
PayRequestData payRequestData = objectMapper.readValue(str, PayRequestData.class);
String[] temp = data.getChanId().split("_");
payRequestData.setChanId(temp[0]);
payRequestData.setMchId(temp[1]);
payRequestData.setOutTradeNo(data.getOutTradeNo());
payRequestData.setSubject(data.getSubject());
payRequestData.setAmount(data.getAmount());
payRequestData.setNotifyUrl("http://127.0.0.1:8080/notifyUrl");
AcquirerProperties properties = check(payRequestData);
ChannelResponse response = transactionService.pay(properties, payRequestData);
return response;
}
}
\ No newline at end of file
......@@ -30,31 +30,10 @@ public class TransactionController extends BusinessController {
@Autowired
private TransactionService transactionService;
@Autowired
private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired
private StringRedisTemplate stringRedisTemplate;
public AcquirerProperties check(ChannelRequest data) {
if (data == null) {
AssertUtils.throwMessage(ILLEGAL_REQ_DATA);
}
String chanId = data.getChanId();
if (chanId == null) {
AssertUtils.throwMessage(ILLEGAL_REQ_CHAN_ID, chanId);
}
AcquirerProperties properties = acquirerPropertiesSource.get(Long.valueOf(chanId));
if (properties == null) {
AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId);
}
return properties;
}
@ResponseBody
@BusinessMapping
@PostMapping("/pay")
......
......@@ -17,13 +17,14 @@
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M|%X{ctime}] - %msg %ex{full}%n</Pattern>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</Pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %ex{full}%n</pattern>
<!--<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %ex{full}%n</pattern>-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</pattern>
</encoder>
</appender>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment