Commit c03f74ef authored by Administrator's avatar Administrator

创建项目

parent 01085b7a
...@@ -24,7 +24,9 @@ public class Constant { ...@@ -24,7 +24,9 @@ public class Constant {
@Deprecated @Deprecated
public static final Duration PAY_DUE_TIME = Duration.ofMinutes(30); public static final Duration PAY_DUE_TIME = Duration.ofMinutes(30);
public final static String DICT_TYPE_PAY= "PAY"; public final static String DICT_TYPE_PAY = "PAY";
public final static String DICT_CODE_WXP= "WXP"; public final static String DICT_CODE_WXP = "WXP";
public final static String DICT_TYPE_WXP_CALLBACK_URL = "WXP_CALLBACK_URL"; public final static String DICT_TYPE_WXP_CALLBACK_URL = "WXP_CALLBACK_URL";
public final static String HTTP_OK_CODE = "SUCC";
} }
...@@ -14,5 +14,4 @@ public interface Acquirer { ...@@ -14,5 +14,4 @@ public interface Acquirer {
ChannelResponse checkPay(CheckPayRequestData request) throws Exception; ChannelResponse checkPay(CheckPayRequestData request) throws Exception;
ChannelResponse checkRefund(CheckRefundRequestData request) throws Exception; ChannelResponse checkRefund(CheckRefundRequestData request) throws Exception;
ChannelResponse close(CloseRequestData request) throws Exception; ChannelResponse close(CloseRequestData request) throws Exception;
void callback(CallbackRequestData request) throws Exception;
} }
...@@ -5,6 +5,7 @@ package cn.quant.baa.pay.acquirer; ...@@ -5,6 +5,7 @@ package cn.quant.baa.pay.acquirer;
*/ */
public abstract class AcquirerConstant { public abstract class AcquirerConstant {
public final static String HTTP_STATUS_TYPE= "HTTP_STAT"; public final static String HTTP_STATUS_TYPE= "HTTP_STAT";
public final static String COMMON_ERROR_CODE = "ERROR"; public final static String COMMON_ERROR_CODE = "ERROR";
public final static String COMMON_ERROR_MESSAGE = "ERROR"; public final static String COMMON_ERROR_MESSAGE = "ERROR";
public final static String EXECUTE_PAY = "Pay"; public final static String EXECUTE_PAY = "Pay";
......
...@@ -17,7 +17,7 @@ public class AcquirerProperties implements Serializable{ ...@@ -17,7 +17,7 @@ public class AcquirerProperties implements Serializable{
private Long mchChanId; private Long mchChanId;
//account //Account
private String payChanCode; private String payChanCode;
private String payAcctId; private String payAcctId;
...@@ -46,10 +46,7 @@ public class AcquirerProperties implements Serializable{ ...@@ -46,10 +46,7 @@ public class AcquirerProperties implements Serializable{
private String payRootCertKey; private String payRootCertKey;
private String productCode;
//feature //feature
private AccessCode accessCode; private AccessCode accessCode;
private AccessType accessType; private AccessType accessType;
private String accessMethod; private String accessMethod;
...@@ -58,9 +55,9 @@ public class AcquirerProperties implements Serializable{ ...@@ -58,9 +55,9 @@ public class AcquirerProperties implements Serializable{
private String refundAccess; private String refundAccess;
private String checkAccess; private String checkAccess;
private String descText; private String descText;
private String productCode;
//APP //APP
private String institutionId; private String institutionId;
private String productId; private String productId;
......
...@@ -54,7 +54,7 @@ public class MerchantAcquirer implements Acquirer { ...@@ -54,7 +54,7 @@ public class MerchantAcquirer implements Acquirer {
return this; return this;
} }
public void register(Acquirer acquirer) { public final void register(Acquirer acquirer) {
acquirers.put(acquirer.code(), acquirer); acquirers.put(acquirer.code(), acquirer);
} }
...@@ -89,9 +89,4 @@ public class MerchantAcquirer implements Acquirer { ...@@ -89,9 +89,4 @@ public class MerchantAcquirer implements Acquirer {
public ChannelResponse close(CloseRequestData request) throws Exception { public ChannelResponse close(CloseRequestData request) throws Exception {
return acquirers.get(request.getChanId()).close(request); return acquirers.get(request.getChanId()).close(request);
} }
@Override
public void callback(CallbackRequestData request) throws Exception {
acquirers.get(request.getChanId()).callback(request);
}
} }
...@@ -50,24 +50,24 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer { ...@@ -50,24 +50,24 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
/** /**
* 微信签名格式定义 * 微信签名格式定义
*/ */
String TOKEN_PATTERN = "mchid=\"%s\",nonce_str=\"%s\",timestamp=\"%d\",serial_no=\"%s\",signature=\"%s\""; private static final String TOKEN_PATTERN = "mchid=\"%s\",nonce_str=\"%s\",timestamp=\"%d\",serial_no=\"%s\",signature=\"%s\"";
/** /**
* 微信签名前缀 * 微信签名前缀
*/ */
String SCHEMA = "WECHATPAY2-SHA256-RSA2048 "; private static final String SCHEMA = "WECHATPAY2-SHA256-RSA2048 ";
/** /**
* 商户私钥 * 商户私钥
*/ */
PrivateKey privateKey; private PrivateKey privateKey;
/** /**
* 平台证书 * 平台证书
*/ */
X509Certificate payCerKey; private X509Certificate payCerKey;
ObjectMapper objectMapper = new ObjectMapper(); private static final ObjectMapper objectMapper = new ObjectMapper();
/** /**
* 支付初始化 * 支付初始化
...@@ -114,7 +114,8 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer { ...@@ -114,7 +114,8 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
.put("appid", properties.getPayAppId()) .put("appid", properties.getPayAppId())
.put("attach", request.getAttach()) .put("attach", request.getAttach())
.put("description", request.getSubject()) .put("description", request.getSubject())
.put("notify_url", callback.getValue() + request.getChanId()) .put("notify_url", String.join("/", callback.getValue(), Long.toHexString(Long.valueOf(request.getChanId()))
, Long.toHexString(transaction.getAccountId()), transaction.getExternalOrderNo()))
.put("out_trade_no", transaction.getTransactionId().toString()); .put("out_trade_no", transaction.getTransactionId().toString());
bodyNode.putObject("amount") bodyNode.putObject("amount")
.put("total", amount); .put("total", amount);
...@@ -268,7 +269,7 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer { ...@@ -268,7 +269,7 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
if (response.getSuccess()) { if (response.getSuccess()) {
} else { } else {
DictionaryItemDTO itemDTO = DictionaryViewer.get(HTTP_STATUS_TYPE, response.getCode()); DictionaryItemDTO itemDTO = DictionaryViewer.get("WXP_HTTP_STAT", response.getCode());
if (itemDTO == null) { if (itemDTO == null) {
response.setCode(COMMON_ERROR_CODE); response.setCode(COMMON_ERROR_CODE);
response.setMessage(COMMON_ERROR_CODE); response.setMessage(COMMON_ERROR_CODE);
......
...@@ -3,6 +3,7 @@ package cn.quant.baa.pay.context; ...@@ -3,6 +3,7 @@ package cn.quant.baa.pay.context;
import cn.quant.baa.pay.component.Sequencer; import cn.quant.baa.pay.component.Sequencer;
import cn.quant.baa.pay.jpa.entity.AccountEntity; import cn.quant.baa.pay.jpa.entity.AccountEntity;
import cn.quant.baa.pay.model.BusinessRequest; import cn.quant.baa.pay.model.BusinessRequest;
import cn.quant.spring.NullException;
import cn.quant.spring.context.BusinessSession; import cn.quant.spring.context.BusinessSession;
import cn.quant.spring.context.ServerApplicationContext; import cn.quant.spring.context.ServerApplicationContext;
import cn.quant.spring.data.jpa.entity.OptimisticEntity; import cn.quant.spring.data.jpa.entity.OptimisticEntity;
...@@ -126,7 +127,11 @@ public class TransactionSession extends BusinessSession { ...@@ -126,7 +127,11 @@ public class TransactionSession extends BusinessSession {
} }
public JpaRepository getRepository(Class cls) { public JpaRepository getRepository(Class cls) {
return repositoryProxy.getRepository(cls); JpaRepository repository = repositoryProxy.getRepository(cls);
if (repository == null) {
throw new NullException("Repository not found : {}", cls);
}
return repository;
} }
public <T> T findOne(Class<T> cls, Object key) { public <T> T findOne(Class<T> cls, Object key) {
......
package cn.quant.baa.pay.jpa.repository; package cn.quant.baa.pay.jpa.repository;
import cn.quant.baa.pay.dict.StatusCode;
import cn.quant.baa.pay.jpa.entity.BatchCycleTriggerEntity; import cn.quant.baa.pay.jpa.entity.BatchCycleTriggerEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -10,4 +13,6 @@ import org.springframework.stereotype.Repository; ...@@ -10,4 +13,6 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface BatchCycleTriggerRepository extends JpaRepository<BatchCycleTriggerEntity, Long> { public interface BatchCycleTriggerRepository extends JpaRepository<BatchCycleTriggerEntity, Long> {
@Query("SELECT trigger FROM BatchCycleTriggerEntity trigger WHERE trigger.targetId=:targetId AND trigger.entityCode=:entityCode")
BatchCycleTriggerEntity findOne(@Param("targetId") Long targetId, @Param("entityCode") String entityCode);
} }
package cn.quant.baa.pay.model.web; package cn.quant.baa.pay.model.web;
import java.time.LocalDateTime;
/** /**
* Created by Administrator on 2021/9/27 0027. * Created by Administrator on 2021/9/27 0027.
*/ */
public class CallbackRequestData { public class CallbackRequestData {
private String chanId; private Long chanId;
private Long accountId;
private String orderNo;
private LocalDateTime successTime;
private String chanTransactionId;
public String getChanId() { private String tradeState;
private String tradeStateDesc;
private String checkCode;
public Long getChanId() {
return chanId; return chanId;
} }
public void setChanId(String chanId) { public void setChanId(Long chanId) {
this.chanId = chanId; this.chanId = chanId;
} }
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public LocalDateTime getSuccessTime() {
return successTime;
}
public void setSuccessTime(LocalDateTime successTime) {
this.successTime = successTime;
}
public String getChanTransactionId() {
return chanTransactionId;
}
public void setChanTransactionId(String chanTransactionId) {
this.chanTransactionId = chanTransactionId;
}
public String getTradeState() {
return tradeState;
}
public void setTradeState(String tradeState) {
this.tradeState = tradeState;
}
public String getTradeStateDesc() {
return tradeStateDesc;
}
public void setTradeStateDesc(String tradeStateDesc) {
this.tradeStateDesc = tradeStateDesc;
}
public String getCheckCode() {
return checkCode;
}
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("CallbackRequestData{");
sb.append("chanId=").append(chanId);
sb.append(", accountId=").append(accountId);
sb.append(", orderNo='").append(orderNo).append('\'');
sb.append(", successTime=").append(successTime);
sb.append(", chanTransactionId='").append(chanTransactionId).append('\'');
sb.append(", tradeState='").append(tradeState).append('\'');
sb.append(", tradeStateDesc='").append(tradeStateDesc).append('\'');
sb.append(", checkCode='").append(checkCode).append('\'');
sb.append('}');
return sb.toString();
}
} }
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</encoder> </encoder>
</appender> </appender>
<logger name="cn.quant.baa.pay" level="DEBUG"/> <logger name="cn.quant.baa.pay" level="INFO"/>
<logger name="javax.activation" level="ERROR"/> <logger name="javax.activation" level="ERROR"/>
<logger name="org.quartz.core" level="ERROR"/> <logger name="org.quartz.core" level="ERROR"/>
<logger name="org.quartz.simpl" level="ERROR"/> <logger name="org.quartz.simpl" level="ERROR"/>
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<logger name="org.hibernate.engine.QueryParameters" level="ERROR"/> <logger name="org.hibernate.engine.QueryParameters" level="ERROR"/>
<logger name="org.hibernate.SQL" level="ERROR" /> <logger name="org.hibernate.SQL" level="ERROR" />
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLINGFILE"/> <appender-ref ref="ROLLINGFILE"/>
</root> </root>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</encoder> </encoder>
</appender> </appender>
<logger name="cn.quant.baa.pay" level="DEBUG"/> <logger name="cn.quant.baa.pay" level="INFO"/>
<logger name="javax.activation" level="ERROR"/> <logger name="javax.activation" level="ERROR"/>
<logger name="org.quartz.core" level="ERROR"/> <logger name="org.quartz.core" level="ERROR"/>
<logger name="org.quartz.simpl" level="ERROR"/> <logger name="org.quartz.simpl" level="ERROR"/>
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<logger name="org.hibernate.engine.QueryParameters" level="ERROR"/> <logger name="org.hibernate.engine.QueryParameters" level="ERROR"/>
<logger name="org.hibernate.SQL" level="ERROR" /> <logger name="org.hibernate.SQL" level="ERROR" />
<root level="DEBUG"> <root level="INFO">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLINGFILE"/> <appender-ref ref="ROLLINGFILE"/>
</root> </root>
......
...@@ -5,53 +5,78 @@ import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource; ...@@ -5,53 +5,78 @@ import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.annotation.BusinessMapping; import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.config.DictionaryViewer; import cn.quant.baa.pay.config.DictionaryViewer;
import cn.quant.baa.pay.model.dto.DictionaryItemDTO; import cn.quant.baa.pay.model.dto.DictionaryItemDTO;
import cn.quant.baa.pay.model.web.CallbackRequestData;
import cn.quant.baa.pay.service.CallbackService;
import cn.quant.spring.ProfileException; import cn.quant.spring.ProfileException;
import cn.quant.spring.util.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.Map; import java.util.Map;
import static cn.quant.baa.pay.Constant.DICT_CODE_WXP; import static cn.quant.baa.pay.Constant.*;
import static cn.quant.baa.pay.Constant.DICT_TYPE_PAY;
/** /**
* Created by Administrator on 2021/9/26 0026. * Created by Administrator on 2021/9/26 0026.
*/ */
@RestController @RestController
@RequestMapping("/transaction") @RequestMapping("/callback")
public class TransactionController extends BusinessController { public class CallbackController extends BusinessController {
private static final Logger logger = LoggerFactory.getLogger(TransactionController.class); private static final Logger logger = LoggerFactory.getLogger(TransactionController.class);
@Autowired @Autowired
private AcquirerPropertiesSource acquirerPropertiesSource; private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private CallbackService callbackService;
@ResponseBody @ResponseBody
@BusinessMapping @BusinessMapping
@PostMapping("/pay/callback/wx/{chanId}") @PostMapping("/pay/wx/{chanId}/{acctId}/{orderNo}")
public ResponseEntity pay(@PathVariable("chanId") String chanId, @RequestBody Map request) throws Exception { public ResponseEntity pay(@PathVariable("chanId") String chanId, @PathVariable("acctId") String acctId
, @PathVariable("orderNo") String orderNo
, @RequestBody Map request) throws Exception {
logger.info(request.toString()); logger.info(request.toString());
Long channelId = Long.parseLong(chanId, 16);
Long accountId = Long.parseLong(acctId, 16);
DictionaryItemDTO dict = DictionaryViewer.get(DICT_TYPE_PAY, DICT_CODE_WXP); DictionaryItemDTO dict = DictionaryViewer.get(DICT_TYPE_PAY, DICT_CODE_WXP);
if (dict == null) { if (dict == null) {
throw new ProfileException("Configuration not found in dictionary : {}; {}; {}; {};", DICT_TYPE_PAY, DICT_CODE_WXP, chanId, request); throw new ProfileException("Configuration not found in dictionary : {}; {}; {}; {};", DICT_TYPE_PAY, DICT_CODE_WXP, channelId, request);
} }
AcquirerProperties properties = acquirerPropertiesSource.get(Long.valueOf(chanId)); AcquirerProperties properties = acquirerPropertiesSource.get(channelId);
if (properties == null || !dict.getCode().equals(properties.getPayChanCode())) { if (properties == null || !dict.getCode().equals(properties.getPayChanCode())) {
throw new ProfileException("Acquirer not found : {}; {}; {}; {};", DICT_TYPE_PAY, DICT_CODE_WXP, chanId, request); throw new ProfileException("Acquirer not found : {}; {}; {}; {};", DICT_TYPE_PAY, DICT_CODE_WXP, channelId, request);
} }
CallbackRequestData requestData = new CallbackRequestData();
requestData.setChanId(properties.getMchChanId());
requestData.setAccountId(accountId);
requestData.setOrderNo("75774627146563586");
requestData.setChanTransactionId("1217752501201407033233368018");
requestData.setCheckCode("3ffe82f6731f6e09255bc258d1131a75");
//TODO:状态转码
requestData.setTradeState("SUCC");
requestData.setTradeStateDesc("支付成功");
requestData.setSuccessTime(LocalDateTime.now());
String redisKey = StringUtils.toDelimitedString(REDIS_NAMESPACE_PAY, properties.getInstitutionId(), properties.getProductId(), orderNo);
// CallbackRequestData requestData = new CallbackRequestData();
// requestData.setChanId(chanId);
// transactionService.callback(requestData); callbackService.callback(requestData);
return null; return null;
} }
} }
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.dict.StatusCode;
import cn.quant.baa.pay.jpa.entity.BatchCycleTriggerEntity;
import cn.quant.baa.pay.jpa.entity.TransactionSummaryEntity;
import cn.quant.baa.pay.jpa.repository.BatchCycleTriggerRepository;
import cn.quant.baa.pay.model.web.CallbackRequestData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by Administrator on 2021/8/24 0024.
*/
@Service
public class CallbackService extends BusinessService {
private static final Logger logger = LoggerFactory.getLogger(TransactionService.class);
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void callback(CallbackRequestData request) throws Exception {
update(request);
System.currentTimeMillis();
}
@Transactional(propagation = Propagation.REQUIRED)
public void update(CallbackRequestData request) throws Exception {
TransactionSession session = TransactionSession.session();
Long orderNo = Long.valueOf(request.getOrderNo());
String checkCode = request.getCheckCode();
// session.getRepository();
TransactionSummaryEntity summaryEntity = session.findOne(TransactionSummaryEntity.class, checkCode);
if (summaryEntity == null) {
throw new Exception("ERROR");
}
BatchCycleTriggerRepository repository = (BatchCycleTriggerRepository) session.getRepository(BatchCycleTriggerEntity.class);
BatchCycleTriggerEntity triggerEntity = repository.findOne(summaryEntity.getTransactionId(), summaryEntity.getTxnType());
if (triggerEntity == null) {
throw new Exception("ERROR");
}
String tradeState = request.getTradeState();
if (StatusCode.SUCC.name().equals(tradeState)) {
} else {
}
new Integer(null);
}
}
...@@ -134,9 +134,4 @@ public class TransactionService extends BusinessService { ...@@ -134,9 +134,4 @@ public class TransactionService extends BusinessService {
return acquirer.refund(data); return acquirer.refund(data);
} }
@Transactional(propagation = Propagation.REQUIRED)
public void callback(CallbackRequestData data) throws Exception {
acquirer.callback(data);
}
} }
/* /*
Navicat MySQL Data Transfer Navicat MySQL Data Transfer
Source Server : test1 Source Server : pay-dev
Source Server Version : 50643 Source Server Version : 50643
Source Host : 172.17.5.17:31548 Source Host : 172.17.6.12:30406
Source Database : baa_pay_1.0 Source Database : baa_pay_1.0
Target Server Type : MYSQL Target Server Type : MYSQL
Target Server Version : 50643 Target Server Version : 50643
File Encoding : 65001 File Encoding : 65001
Date: 2021-09-24 20:16:46 Date: 2021-09-29 10:55:50
*/ */
SET FOREIGN_KEY_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
...@@ -39,10 +39,10 @@ CREATE TABLE `account` ( ...@@ -39,10 +39,10 @@ CREATE TABLE `account` (
`AUTO_PAYMENT_WARN_DATE` int(8) NOT NULL COMMENT '自动还款提示日期(19700101:默认)', `AUTO_PAYMENT_WARN_DATE` int(8) NOT NULL COMMENT '自动还款提示日期(19700101:默认)',
`TXN_NO` int(11) NOT NULL COMMENT '交易号', `TXN_NO` int(11) NOT NULL COMMENT '交易号',
`NEXT_TXN_NO` int(8) NOT NULL COMMENT '下一个交易号', `NEXT_TXN_NO` int(8) NOT NULL COMMENT '下一个交易号',
`TOTAL_CREDIT` decimal(17,2) NOT NULL COMMENT '贷记总计金额(0:默认)', `TOTAL_CREDIT` decimal(17,2) NOT NULL DEFAULT '0.00' COMMENT '贷记总计金额(0:默认)',
`TOTAL_DEBIT` decimal(17,2) NOT NULL COMMENT '借记总计金额(0:默认)', `TOTAL_DEBIT` decimal(17,2) NOT NULL DEFAULT '0.00' COMMENT '借记总计金额(0:默认)',
`CREDIT_TXN_COUNT` int(9) NOT NULL COMMENT '贷记交易笔数(0:默认值)', `CREDIT_TXN_COUNT` int(9) NOT NULL DEFAULT '0' COMMENT '贷记交易笔数(0:默认值)',
`DEBIT_TXT_COUNT` int(9) NOT NULL COMMENT '借记交易笔数(0:默认值)', `DEBIT_TXT_COUNT` int(9) NOT NULL DEFAULT '0' COMMENT '借记交易笔数(0:默认值)',
`DESC_TEXT` varchar(400) DEFAULT NULL COMMENT '描述', `DESC_TEXT` varchar(400) DEFAULT NULL COMMENT '描述',
`CREATED_BY` varchar(72) NOT NULL COMMENT '创建用户', `CREATED_BY` varchar(72) NOT NULL COMMENT '创建用户',
`CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
...@@ -61,7 +61,7 @@ CREATE TABLE `account` ( ...@@ -61,7 +61,7 @@ CREATE TABLE `account` (
-- Records of account -- Records of account
-- ---------------------------- -- ----------------------------
INSERT INTO `account` VALUES ('75956717762838633', 'YXM', 'LDW', null, 'EMPS', '1', 'CNY', null, null, 'NORM', '20210923', '20210923', 'N', '777777', '777777', 'N', '19700101', '4', '5', '0.00', '0.00', '0', '0', null, 'SYS', '2021-09-23 10:32:15', 'SYS', '2021-09-23 11:55:02', '4', '105', null, null, null); INSERT INTO `account` VALUES ('75956717762838633', 'YXM', 'LDW', null, 'EMPS', '1', 'CNY', null, null, 'NORM', '20210923', '20210923', 'N', '777777', '777777', 'N', '19700101', '4', '5', '0.00', '0.00', '0', '0', null, 'SYS', '2021-09-23 10:32:15', 'SYS', '2021-09-23 11:55:02', '4', '105', null, null, null);
INSERT INTO `account` VALUES ('75958421027815495', 'YXM', 'LDW', null, 'EMPS', '1', 'CNY', null, null, 'NORM', '20210923', '20210923', 'N', '000008', '000008', 'N', '19700101', '10', '11', '0.00', '0.00', '0', '0', null, 'SYS', '2021-09-23 17:45:34', 'SYS', '2021-09-24 20:03:34', '10', '71', null, null, null); INSERT INTO `account` VALUES ('75958421027815495', 'YXM', 'LDW', null, 'EMPS', '1', 'CNY', null, null, 'NORM', '20210923', '20210923', 'N', '000008', '000008', 'N', '19700101', '20', '21', '0.00', '0.00', '0', '0', null, 'SYS', '2021-09-23 17:45:34', 'SYS', '2021-09-28 19:35:51', '20', '71', null, null, null);
-- ---------------------------- -- ----------------------------
-- Table structure for batch_cycle_trigger -- Table structure for batch_cycle_trigger
...@@ -94,14 +94,17 @@ CREATE TABLE `batch_cycle_trigger` ( ...@@ -94,14 +94,17 @@ CREATE TABLE `batch_cycle_trigger` (
-- ---------------------------- -- ----------------------------
-- Records of batch_cycle_trigger -- Records of batch_cycle_trigger
-- ---------------------------- -- ----------------------------
INSERT INTO `batch_cycle_trigger` VALUES ('75752798662426628', '75752798661246978', 'PYMT', '75958421027815495', '20210924203333', 'http://127.0.0.1:8080/notifyUrl', 'PEND', null, 'PEND', null, '20210924722113463207861227310', '71', 'SYS', '2021-09-24 20:03:34', 'SYS', '2021-09-24 20:03:34', '1', null, null, null); INSERT INTO `batch_cycle_trigger` VALUES ('75774627221405700', '75774627146563586', 'PYMT', '75958421027815495', '20210928170450', 'http://127.0.0.1:8080/notifyUrl', 'PEND', null, 'PEND', null, '20210928596882449073726264168', '71', 'SYS', '2021-09-28 16:34:50', 'SYS', '2021-09-28 16:34:50', '1', null, null, null);
INSERT INTO `batch_cycle_trigger` VALUES ('75775134562648068', '75775132633989122', 'PYMT', '75958421027815495', '20210928191351', 'http://127.0.0.1:8080/notifyUrl', 'PEND', null, 'PEND', null, '20210928674021420837199520672', '71', 'SYS', '2021-09-28 18:43:52', 'SYS', '2021-09-28 18:43:52', '1', null, null, null);
INSERT INTO `batch_cycle_trigger` VALUES ('75797980954296582', '75797980930965508', 'PYMT', '75958421027815495', '20210928200539', 'http://127.0.0.1:8080/notifyUrl', 'PEND', null, 'PEND', null, '2021092870538533845340021471', '71', 'SYS', '2021-09-28 19:35:40', 'SYS', '2021-09-28 19:35:40', '1', null, null, null);
INSERT INTO `batch_cycle_trigger` VALUES ('75797981754229257', '75797981730111751', 'PYMT', '75958421027815495', '20210928200551', 'http://127.0.0.1:8080/notifyUrl', 'PEND', null, 'PEND', null, '2021092870551768092563101044', '71', 'SYS', '2021-09-28 19:35:51', 'SYS', '2021-09-28 19:35:51', '1', null, null, null);
-- ---------------------------- -- ----------------------------
-- Table structure for dictionary -- Table structure for dictionary
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `dictionary`; DROP TABLE IF EXISTS `dictionary`;
CREATE TABLE `dictionary` ( CREATE TABLE `dictionary` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT, `ID` bigint(20) NOT NULL,
`TYPE` varchar(32) NOT NULL, `TYPE` varchar(32) NOT NULL,
`CODE` varchar(32) NOT NULL, `CODE` varchar(32) NOT NULL,
`TEXT` varchar(64) NOT NULL, `TEXT` varchar(64) NOT NULL,
...@@ -117,28 +120,32 @@ CREATE TABLE `dictionary` ( ...@@ -117,28 +120,32 @@ CREATE TABLE `dictionary` (
`EXTENDED_FIELD2` varchar(4) DEFAULT NULL, `EXTENDED_FIELD2` varchar(4) DEFAULT NULL,
`EXTENDED_FIELD3` varchar(4) DEFAULT NULL, `EXTENDED_FIELD3` varchar(4) DEFAULT NULL,
PRIMARY KEY (`ID`) PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ---------------------------- -- ----------------------------
-- Records of dictionary -- Records of dictionary
-- ---------------------------- -- ----------------------------
INSERT INTO `dictionary` VALUES ('1', 'PAY', 'ROOT', '支付通道商', '', '0', null, 'SYS', '2021-09-23 10:59:48', 'SYS', '2021-09-23 11:24:40', '0', null, null, null); INSERT INTO `dictionary` VALUES ('100', 'PAY', 'ROOT', '支付通道商', '', '0', null, 'SYS', '2021-09-23 10:59:48', 'SYS', '2021-09-27 11:03:05', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('2', 'PAY', 'ALIP', '支付宝', '', '1', null, 'SYS', '2021-08-23 19:34:54', 'SYS', '2021-09-23 11:24:38', '0', null, null, null); INSERT INTO `dictionary` VALUES ('101', 'PAY', 'ALIP', '支付宝', '', '1', null, 'SYS', '2021-08-23 19:34:54', 'SYS', '2021-09-27 11:03:07', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('3', 'PAY', 'WXP', '微信', '', '1', null, 'SYS', '2021-08-23 19:33:58', 'SYS', '2021-09-23 11:24:35', '0', null, null, null); INSERT INTO `dictionary` VALUES ('102', 'PAY', 'WXP', '微信', '', '1', null, 'SYS', '2021-08-23 19:33:58', 'SYS', '2021-09-27 11:03:13', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('4', 'WXP_STAT', 'ROOT', '状态码', 'ROOT', '0', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-23 14:18:27', '0', null, null, null); INSERT INTO `dictionary` VALUES ('200', 'HTTP_STAT', 'ROOT', '状态码', '0', '0', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:47', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('5', 'WXP_STAT', 'OUT_TRADE_NO_USED', '商户订单号重复', 'ORDER_NO_EXISTS', '4', null, 'SYS', '2021-09-23 14:06:13', 'SYS', '2021-09-23 14:15:35', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('201', 'HTTP_STAT', 'SUCCESS', '成功', '200', '200', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:50', '0', '', '', '');
INSERT INTO `dictionary` VALUES ('6', 'WXP_STAT', 'APPID_MCHID_NOT_MATCH', '商户号与appid不匹配', 'APPID_MCHID_NOT_MATCH', '4', null, 'SYS', '2021-09-23 11:03:48', 'SYS', '2021-09-23 11:08:14', '0', null, null, null); INSERT INTO `dictionary` VALUES ('202', 'HTTP_STAT', 'APPID_MCHID_NOT_MATCH', '商户号与appid不匹配', '500500101', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:23', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('7', 'WXP_STAT', 'BANK_ERROR', '银行系统异常', 'BANK_ERROR', '4', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-23 14:10:15', '0', null, null, null); INSERT INTO `dictionary` VALUES ('203', 'HTTP_STAT', 'BANK_ERROR', '银行系统异常', '500500102', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:19', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('8', 'WXP_STAT', 'REQUEST_BLOCKED', '请求受阻', 'REQUEST_BLOCKED', '4', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-23 14:05:51', '0', null, null, null); INSERT INTO `dictionary` VALUES ('204', 'HTTP_STAT', 'REFUND_LOGIC_ERROR', '退款业务流程错误', '500500103', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:16', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('9', 'WXP_STAT', 'BIZ_ERR_NEED_RETRY', '退款业务流程错误', 'REFUND_LOGIC_ERROR', '4', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-23 14:15:27', '0', null, null, null); INSERT INTO `dictionary` VALUES ('205', 'HTTP_STAT', 'ORDER_NO_EXISTS', '商户订单号重复', '500500104', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:15', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('10', 'WXP_STAT', 'PARAM_ERROR', '参数错误', 'PARAM_ERROR', '4', '', 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-23 14:05:51', '0', null, null, null); INSERT INTO `dictionary` VALUES ('206', 'HTTP_STAT', 'PARAM_ERROR', '参数错误', '500500105', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:14', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('11', 'HTTP_STAT', 'ROOT', '状态码', '0', '0', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-23 14:18:23', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('207', 'HTTP_STAT', 'REQUEST_BLOCKED', '请求受阻', '500500106', '200', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:10:11', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('12', 'HTTP_STAT', 'APPID_MCHID_NOT_MATCH', '商户号与appid不匹配', '500500101', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:28', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('300', 'WXP_HTTP_STAT', 'ROOT', '状态码', 'ROOT', '0', null, 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-28 19:21:26', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('13', 'HTTP_STAT', 'BANK_ERROR', '银行系统异常', '500500102', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:30', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('302', 'WXP_HTTP_STAT', 'APPID_MCHID_NOT_MATCH', '商户号与appid不匹配', 'APPID_MCHID_NOT_MATCH', '300', null, 'SYS', '2021-09-23 11:03:48', 'SYS', '2021-09-28 19:21:28', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('14', 'HTTP_STAT', 'REFUND_LOGIC_ERROR', '退款业务流程错误', '500500103', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:32', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('303', 'WXP_HTTP_STAT', 'BANK_ERROR', '银行系统异常', 'BANK_ERROR', '300', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 19:21:28', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('15', 'HTTP_STAT', 'ORDER_NO_EXISTS', '商户订单号重复', '500500104', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:34', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('304', 'WXP_HTTP_STAT', 'BIZ_ERR_NEED_RETRY', '退款业务流程错误', 'REFUND_LOGIC_ERROR', '300', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 19:21:29', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('16', 'HTTP_STAT', 'PARAM_ERROR', '参数错误', '500500105', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:35', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('305', 'WXP_HTTP_STAT', 'OUT_TRADE_NO_USED', '商户订单号重复', 'ORDER_NO_EXISTS', '300', null, 'SYS', '2021-09-23 14:06:13', 'SYS', '2021-09-28 19:21:30', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('17', 'HTTP_STAT', 'REQUEST_BLOCKED', '请求受阻', '500500106', '11', '', 'SYS', '2021-09-23 10:58:49', 'SYS', '2021-09-24 14:29:40', '0', '', '', ''); INSERT INTO `dictionary` VALUES ('306', 'WXP_HTTP_STAT', 'PARAM_ERROR', '参数错误', 'PARAM_ERROR', '300', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 19:21:31', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('307', 'WXP_HTTP_STAT', 'REQUEST_BLOCKED', '请求受阻', 'REQUEST_BLOCKED', '300', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 19:21:33', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('351', 'WXP_TXN_STAT', 'SUCCESS', '成功', 'SUCC', '300', '', 'SYS', '2021-09-23 11:03:48', 'SYS', '2021-09-28 19:21:44', '0', '', '', '');
INSERT INTO `dictionary` VALUES ('10000', 'WXP_CALLBACK_URL', 'ROOT', '应用配置', '', '0', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 15:06:35', '0', null, null, null);
INSERT INTO `dictionary` VALUES ('10001', 'WXP_CALLBACK_URL', 'H5', '通知地址', 'http://127.0.0.1:8090/transaction/pay/callback/wx', '10001', null, 'SYS', '2021-09-23 11:06:49', 'SYS', '2021-09-28 18:39:16', '0', null, null, null);
-- ---------------------------- -- ----------------------------
-- Table structure for mch_channel -- Table structure for mch_channel
...@@ -167,6 +174,7 @@ CREATE TABLE `mch_channel` ( ...@@ -167,6 +174,7 @@ CREATE TABLE `mch_channel` (
-- Records of mch_channel -- Records of mch_channel
-- ---------------------------- -- ----------------------------
INSERT INTO `mch_channel` VALUES ('75772285618946308', 'wx75d5a207551d0b4d', 'WXP', 'APP', '1604055791', '小程序-狼大呜-APP', 'SYS', '2021-09-24 19:10:01', 'SYS', '2021-09-24 19:10:06', '0', null, null, null); INSERT INTO `mch_channel` VALUES ('75772285618946308', 'wx75d5a207551d0b4d', 'WXP', 'APP', '1604055791', '小程序-狼大呜-APP', 'SYS', '2021-09-24 19:10:01', 'SYS', '2021-09-24 19:10:06', '0', null, null, null);
INSERT INTO `mch_channel` VALUES ('75772285618946309', 'wx2f44c7fe7b08458d', 'WXP', 'H5', '1604055791', '小程序-狼大呜-H5', 'SYS', '2021-09-24 19:10:01', 'SYS', '2021-09-24 19:10:06', '0', '', '', '');
-- ---------------------------- -- ----------------------------
-- Table structure for pay_account -- Table structure for pay_account
...@@ -308,64 +316,10 @@ CREATE TABLE `pay_goods_detail` ( ...@@ -308,64 +316,10 @@ CREATE TABLE `pay_goods_detail` (
-- ---------------------------- -- ----------------------------
-- Records of pay_goods_detail -- Records of pay_goods_detail
-- ---------------------------- -- ----------------------------
INSERT INTO `pay_goods_detail` VALUES ('75752798662295555', '75752798661246978', '111111', '商品12', '1', '10.00', '2.50', '17.50', '---', '71', 'SYS', '2021-09-24 20:03:34', 'SYS', '2021-09-24 20:03:34', '1', null, null, null); INSERT INTO `pay_goods_detail` VALUES ('75774627147350019', '75774627146563586', '111111', '商品12', '1', '10.00', '2.50', '17.50', '---', '71', 'SYS', '2021-09-28 16:34:50', 'SYS', '2021-09-28 16:34:50', '1', null, null, null);
INSERT INTO `pay_goods_detail` VALUES ('75775132635168771', '75775132633989122', '111111', '商品12', '1', '10.00', '2.50', '17.50', '---', '71', 'SYS', '2021-09-28 18:43:52', 'SYS', '2021-09-28 18:43:52', '1', null, null, null);
-- ---------------------------- INSERT INTO `pay_goods_detail` VALUES ('75797980930965765', '75797980930965508', '111111', '商品12', '1', '10.00', '2.50', '17.50', '---', '71', 'SYS', '2021-09-28 19:35:39', 'SYS', '2021-09-28 19:35:39', '1', null, null, null);
-- Table structure for pay_history INSERT INTO `pay_goods_detail` VALUES ('75797981730112008', '75797981730111751', '111111', '商品12', '1', '10.00', '2.50', '17.50', '---', '71', 'SYS', '2021-09-28 19:35:51', 'SYS', '2021-09-28 19:35:51', '1', null, null, null);
-- ----------------------------
DROP TABLE IF EXISTS `pay_history`;
CREATE TABLE `pay_history` (
`TRANSACTION_ID` bigint(19) NOT NULL,
`INSTITUTION_ID` char(4) NOT NULL,
`PRODUCT_ID` char(4) NOT NULL,
`EXTERNAL_ORDER_NO` char(64) NOT NULL,
`ACCOUNT_ID` bigint(19) NOT NULL,
`CHANNEL_ID` bigint(19) NOT NULL,
`SUBJECT` varchar(128) NOT NULL,
`STATUS_CODE` char(4) NOT NULL COMMENT '状态码',
`CURRENCY_CODE` char(3) NOT NULL,
`PAY_METHOD` char(4) NOT NULL COMMENT '支付方式(AUTO:自动/DRST:主动/MANU:手动)',
`TXN_TYPE` char(4) NOT NULL,
`TXN_CODE` char(4) NOT NULL,
`TXN_NO` int(11) NOT NULL,
`STATISTICS_CODE` char(4) NOT NULL,
`CREDIT_DEBIT_FLAG` char(1) NOT NULL,
`CUSTOMER_GEN_FLAG` char(1) NOT NULL,
`ORIGINAL_TXN_AMOUNT` decimal(17,2) NOT NULL,
`TXN_AMOUNT` decimal(17,2) NOT NULL,
`DISC_AMOUNT` decimal(17,2) NOT NULL,
`GEN_FEE_AMOUNT` decimal(17,2) NOT NULL,
`POST_CASH_AMOUNT` decimal(17,2) NOT NULL,
`POST_CREDIT_AMOUNT` decimal(17,2) NOT NULL,
`STATEMENTE_FLAG` char(1) NOT NULL,
`TXN_DATE` int(8) NOT NULL,
`TXN_TIME` int(6) NOT NULL,
`PAY_DUE_TIME` bigint(14) NOT NULL,
`REQUEST_ID` char(64) NOT NULL,
`REQUEST_TIME` timestamp NOT NULL,
`SHOP_NAME` varchar(255) DEFAULT NULL,
`MOBILE_PHONE` char(13) DEFAULT NULL,
`GOODS_SIGNER` varchar(60) DEFAULT NULL,
`ADDRESS` varchar(500) DEFAULT NULL,
`ATTACH_TEXT` varchar(512) DEFAULT NULL,
`DESC_TEXT` varchar(400) DEFAULT NULL COMMENT '描述',
`PARTITION_KEY` smallint(4) NOT NULL COMMENT '分区键',
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建用户',
`CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`MODIFIED_BY` varchar(32) NOT NULL COMMENT '更新用户',
`MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`MODIFIED_NO` int(8) NOT NULL DEFAULT '0' COMMENT '更新次数',
`EXTENDED_FIELD1` varchar(4) DEFAULT NULL,
`EXTENDED_FIELD2` varchar(4) DEFAULT NULL,
`EXTENDED_FIELD3` varchar(4) DEFAULT NULL,
PRIMARY KEY (`TRANSACTION_ID`),
UNIQUE KEY `UK_EXT_IDS` (`INSTITUTION_ID`,`PRODUCT_ID`,`EXTERNAL_ORDER_NO`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of pay_history
-- ----------------------------
INSERT INTO `pay_history` VALUES ('75752798661246978', 'YXM', 'LDW', '1111111111111111111111111', '75958421027815495', '75772285618946308', '测试订单1', 'PEND', 'CNY', 'DRST', 'PYMT', 'R001', '10', 'PYMT', 'C', 'Y', '110.00', '100.00', '10.00', '0.00', '100.00', '0.00', '1', '20210924', '200331', '20210924203332', '08F2FCB68A0610A4071899DBEEA30620FD1828B19602-0', '2021-09-24 20:03:32', '测试店铺', '13718656985', '测试员', '测试收货地址', 'AAAA-BBBB-1111-2222', 'wx242002589937965a1a667c37b8fbde0000', '71', 'SYS', '2021-09-24 20:03:34', 'SYS', '2021-09-24 20:03:34', '1', null, null, null);
-- ---------------------------- -- ----------------------------
-- Table structure for status_code -- Table structure for status_code
...@@ -399,6 +353,7 @@ CREATE TABLE `status_code` ( ...@@ -399,6 +353,7 @@ CREATE TABLE `status_code` (
-- Records of status_code -- Records of status_code
-- ---------------------------- -- ----------------------------
INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'CLOS', '3', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易关闭', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null); INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'CLOS', '3', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易关闭', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null);
INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'DUE', '5', 'AUTO', 'NORM', 'N', null, 'FAIL', null, null, '交易超时', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null);
INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'FAIL', '4', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易失败', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null); INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'FAIL', '4', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易失败', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null);
INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'PEND', '1', 'AUTO', 'NORM', 'N', null, 'FAIL', 'SUCC', null, '等待中', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null); INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'PEND', '1', 'AUTO', 'NORM', 'N', null, 'FAIL', 'SUCC', null, '等待中', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null);
INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'SUCC', '2', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易成功', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null); INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'SUCC', '2', 'AUTO', 'NORM', 'Y', null, 'FAIL', null, null, '交易成功', 'SYS', '2021-09-13 18:27:19', 'SYS', '2021-09-13 18:27:19', '0', null, null, null);
...@@ -408,56 +363,60 @@ INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'SUCC', '2', 'AUTO', 'NORM', 'Y ...@@ -408,56 +363,60 @@ INSERT INTO `status_code` VALUES ('YXM', 'PYMT', 'SUCC', '2', 'AUTO', 'NORM', 'Y
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `transaction_summary`; DROP TABLE IF EXISTS `transaction_summary`;
CREATE TABLE `transaction_summary` ( CREATE TABLE `transaction_summary` (
`TXN_ID` bigint(19) NOT NULL COMMENT '交易ID', `TRANSACTION_ID` bigint(19) NOT NULL,
`ACCOUNT_ID` bigint(19) NOT NULL COMMENT '账户ID', `CHECK_CODE` char(32) NOT NULL,
`SUMMARY_NO` int(8) NOT NULL COMMENT '交易序号(0:默认值)', `INSTITUTION_ID` char(4) NOT NULL,
`INSTITUTION_ID` char(4) NOT NULL COMMENT '机构ID', `PRODUCT_ID` char(4) NOT NULL,
`PRODUCT_ID` char(4) NOT NULL COMMENT '产品ID', `EXTERNAL_ORDER_NO` char(64) NOT NULL,
`TXN_CODE` char(4) NOT NULL COMMENT '交易码', `GEN_ORDER_NO` varchar(64) NOT NULL,
`TXN_TYPE_CODE` char(4) NOT NULL COMMENT '交易类型码', `ACCOUNT_ID` bigint(19) NOT NULL,
`STATISTICS_CODE` char(4) NOT NULL COMMENT '统计码', `CHANNEL_ID` bigint(19) NOT NULL,
`GEN_SUMMARY_NO` int(8) NOT NULL COMMENT '产生交易的源交易号(0:默认值)', `SUBJECT` varchar(128) NOT NULL,
`TXN_UUID` char(32) NOT NULL COMMENT '交易全局唯一号', `STATUS_CODE` char(4) NOT NULL COMMENT '状态码',
`EXTERNAL_ORDER_NO` varchar(64) NOT NULL COMMENT '外部系统订单号', `ACCOUNT_NO` varchar(128) NOT NULL,
`REFERENCE_NO` varchar(64) NOT NULL COMMENT '参考号', `CURRENCY_CODE` char(3) NOT NULL,
`CREDIT_DEBIT_FLAG` char(1) NOT NULL COMMENT '借贷记标记', `PAY_METHOD` char(4) NOT NULL COMMENT '支付方式(AUTO:自动/DRST:主动/MANU:手动)',
`CUSTOMER_GEN_FLAG` char(1) NOT NULL COMMENT '用户发起标记(Y:是/N:否)', `TXN_TYPE` char(4) NOT NULL,
`ORIGINAL_TXN_AMOUNT` decimal(9,2) NOT NULL COMMENT '原交易金额', `TXN_CODE` char(4) NOT NULL,
`TXN_AMOUNT` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '交易金额', `TXN_NO` int(11) NOT NULL,
`POSTING_DATE` int(8) NOT NULL COMMENT '入账日期', `STATISTICS_CODE` char(4) NOT NULL,
`POSTING_AMOUNT` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '入账金额', `CREDIT_DEBIT_FLAG` char(1) NOT NULL,
`INSTITUTION_FEE_AMOUNT` decimal(9,2) NOT NULL COMMENT '机构扣除费用', `CUSTOMER_GEN_FLAG` char(1) NOT NULL,
`GEN_FEE_AMOUNT` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '产生的费用金额', `ORIGINAL_TXN_AMOUNT` decimal(17,2) NOT NULL,
`EXCHANGE_RATE` decimal(9,5) NOT NULL DEFAULT '0.00000' COMMENT '兑换费率', `TXN_AMOUNT` decimal(17,2) NOT NULL,
`MERCHANT_NAME` varchar(72) NOT NULL COMMENT '商户名称("":默认)', `DISC_AMOUNT` decimal(17,2) NOT NULL,
`COMMODITY_NO` varchar(32) NOT NULL COMMENT '商品编号("":默认)', `GEN_FEE_AMOUNT` decimal(17,2) NOT NULL,
`STATEMENTE_FLAG` char(1) NOT NULL COMMENT '交易呈现账单标记(Y-呈现/N-不呈现)', `POST_CASH_AMOUNT` decimal(17,2) NOT NULL,
`TXN_DATE` int(8) NOT NULL COMMENT '交易日期', `POST_CREDIT_AMOUNT` decimal(17,2) NOT NULL,
`TXN_TIME` int(6) NOT NULL COMMENT '交易时间', `STATEMENTE_FLAG` char(1) NOT NULL,
`CHAN_ACCT_NO` varchar(32) NOT NULL COMMENT '渠道账户号', `TXN_DATE` int(8) NOT NULL,
`CHAN_ACCT_NAME` varchar(64) NOT NULL COMMENT '渠道账户姓名', `TXN_TIME` int(6) NOT NULL,
`CHAN_CODE` varchar(16) NOT NULL COMMENT '渠道码', `PAY_DUE_TIME` bigint(14) NOT NULL,
`CHAN_NAME` varchar(128) DEFAULT NULL COMMENT '账户名称', `REQUEST_ID` varchar(64) NOT NULL,
`CHAN_ADDR` varchar(128) DEFAULT NULL COMMENT '渠道地址', `REQUEST_TIME` timestamp NOT NULL,
`REQUEST_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `SHOP_NAME` varchar(255) DEFAULT NULL,
`MOBILE_PHONE` char(15) DEFAULT NULL COMMENT '手机号', `MOBILE_PHONE` varchar(13) DEFAULT NULL,
`GOODS_SIGNER` varchar(60) DEFAULT NULL,
`ADDRESS` varchar(500) DEFAULT NULL,
`ATTACH_TEXT` varchar(512) DEFAULT NULL,
`DESC_TEXT` varchar(400) DEFAULT NULL COMMENT '描述', `DESC_TEXT` varchar(400) DEFAULT NULL COMMENT '描述',
`DETECTION_TEXT` varchar(500) DEFAULT NULL COMMENT '回溯脚本', `PARTITION_KEY` smallint(4) NOT NULL COMMENT '分区键',
`CREATED_BY` varchar(72) NOT NULL COMMENT '创建用户', `CREATED_BY` varchar(32) NOT NULL COMMENT '创建用户',
`CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`MODIFIED_BY` varchar(72) NOT NULL COMMENT '更新用户', `MODIFIED_BY` varchar(32) NOT NULL COMMENT '更新用户',
`MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`MODIFIED_NO` int(8) NOT NULL DEFAULT '0' COMMENT '更新次数', `MODIFIED_NO` int(8) NOT NULL DEFAULT '0' COMMENT '更新次数',
`PARTITION_KEY` smallint(4) NOT NULL COMMENT '分区键',
`EXTENDED_FIELD1` varchar(4) DEFAULT NULL, `EXTENDED_FIELD1` varchar(4) DEFAULT NULL,
`EXTENDED_FIELD2` varchar(4) DEFAULT NULL, `EXTENDED_FIELD2` varchar(4) DEFAULT NULL,
`EXTENDED_FIELD3` varchar(4) DEFAULT NULL, `EXTENDED_FIELD3` varchar(4) DEFAULT NULL,
PRIMARY KEY (`TXN_ID`), PRIMARY KEY (`TRANSACTION_ID`),
UNIQUE KEY `UK_ACCT_CLE` (`ACCOUNT_ID`,`SUMMARY_NO`) USING BTREE, UNIQUE KEY `UK_EXT_IDS` (`CHECK_CODE`) USING BTREE
UNIQUE KEY `UK_INST_ORD` (`INSTITUTION_ID`,`EXTERNAL_ORDER_NO`) USING BTREE, ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
KEY `IK_ACCT_CYCL_SRCH` (`ACCOUNT_ID`,`STATEMENTE_FLAG`,`SUMMARY_NO`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='This entity holds, for each billing cycle of each account, the short transaction summary reference that appears on the statement sent to the customer. \r\nIt will be generated at posting from the full transaction details and will not be maintainable. It will undergo one or more events during its lifetime and will not be deleted until all extant events are ''cleared'' and the transaction retention period reached. Creation, maintenance and deletion will all be system controlled.\r\nWhen a transaction is received into the system the account against which it will be posted will be determined by identifying the appropriate plastic application that initiated the transaction using user-defined criteria.';
-- ---------------------------- -- ----------------------------
-- Records of transaction_summary -- Records of transaction_summary
-- ---------------------------- -- ----------------------------
INSERT INTO `transaction_summary` VALUES ('75774627146563586', '3ffe82f6731f6e09255bc258d1131a75', 'YXM', 'LDW', '1111111111111111111111111', '', '75958421027815495', '75772285618946309', '测试订单1', 'PEND', 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', 'CNY', 'DRST', 'PYMT', 'R001', '17', 'PYMT', 'C', 'Y', '110.00', '100.00', '10.00', '0.00', '100.00', '0.00', '1', '20210928', '163448', '20210928170450', '0884A7CB8A0610661890B68A4820B3C70328B4C303-0', '2021-09-28 16:34:48', '测试店铺', '13718656985', '测试员', '测试收货地址', 'AAAA-BBBB-1111-2222', 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx28163412174421409c9ab45bb8158a0000&package=701882712', '71', 'SYS', '2021-09-28 16:34:51', 'SYS', '2021-09-28 16:34:51', '1', null, null, null);
INSERT INTO `transaction_summary` VALUES ('75775132633989122', '99a0e05b2e0bdf7dcdcdd673e66e6b74', 'YXM', 'LDW', '1111111111111111111111112', '', '75958421027815495', '75772285618946309', '测试订单1', 'PEND', 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', 'CNY', 'DRST', 'PYMT', 'R001', '18', 'PYMT', 'C', 'Y', '110.00', '100.00', '10.00', '0.00', '100.00', '0.00', '1', '20210928', '184322', '20210928191351', '08C1E3CB8A061096041891C5EEA30620D02E289F8806-0', '2021-09-28 18:43:22', '测试店铺', '13718656985', '测试员', '测试收货地址', 'AAAA-BBBB-1111-2222', 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2818431363002927ab607e471496540000&package=532380239', '71', 'SYS', '2021-09-28 18:43:52', 'SYS', '2021-09-28 18:43:52', '1', null, null, null);
INSERT INTO `transaction_summary` VALUES ('75797980930965508', 'eb87068bf81ec98eacda438862ab647c', 'YXM', 'LDW', '1111111111111111111111113', '', '75958421027815495', '75772285618946309', '测试订单1', 'PEND', 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', 'CNY', 'DRST', 'PYMT', 'R001', '19', 'PYMT', 'C', 'Y', '110.00', '100.00', '10.00', '0.00', '100.00', '0.00', '1', '20210928', '193538', '20210928200539', '088BFCCB8A06100C189DB78A4820C9930428DAC501-0', '2021-09-28 19:35:39', '测试店铺', '13718656985', '测试员', '测试收货地址', 'AAAA-BBBB-1111-2222', 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx28193539110439061fb25e1a67e8350000&package=704774955', '71', 'SYS', '2021-09-28 19:35:40', 'SYS', '2021-09-28 19:35:40', '1', null, null, null);
INSERT INTO `transaction_summary` VALUES ('75797981730111751', '182e268d5487e4a54183aebb47553688', 'YXM', 'LDW', '1111111111111111111111114', '', '75958421027815495', '75772285618946309', '测试订单1', 'PEND', 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', 'CNY', 'DRST', 'PYMT', 'R001', '20', 'PYMT', 'C', 'Y', '110.00', '100.00', '10.00', '0.00', '100.00', '0.00', '1', '20210928', '193551', '20210928200551', '0897FCCB8A0610E80118ADC2DE48208BC207289039-0', '2021-09-28 19:35:51', '测试店铺', '13718656985', '测试员', '测试收货地址', 'AAAA-BBBB-1111-2222', 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx28193551336948ac3a89a59ae358bf0000&package=2512202361', '71', 'SYS', '2021-09-28 19:35:51', 'SYS', '2021-09-28 19:35:51', '1', null, null, null);
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