V1__create_payments_and_idempotency.sql
Bridget/payment_solutions/src/main/resources/db/migration/V1__create_payments_and_idempotency.sql
CREATE TABLE payments (
id UUID PRIMARY KEY,
status VARCHAR(32) NOT NULL,
card_number_last_four INTEGER NOT NULL,
expiry_month INTEGER NOT NULL,
expiry_year INTEGER NOT NULL,
currency VARCHAR(3) NOT NULL,
amount INTEGER NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_payments_created_at ON payments (created_at);
CREATE TABLE idempotency_requests (
idempotency_key VARCHAR(255) PRIMARY KEY,
request_fingerprint CHAR(64) NOT NULL,
http_status INTEGER NOT NULL,
response_json TEXT NOT NULL,
payment_id UUID REFERENCES payments (id),
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_idempotency_created_at ON idempotency_requests (created_at);
相关文章
PaymentGatewayApplication.java
PaymentGatewayApplication.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/PaymentGatewayApplication.java).
阅读文章 →ApplicationConfiguration.java
ApplicationConfiguration.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/ApplicationConfiguration.java).
阅读文章 →RequestResponseLogger.java
RequestResponseLogger.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/RequestResponseLogger.java).
阅读文章 →PaymentGatewayController.java
PaymentGatewayController.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/controller/PaymentGatewayController.java).
阅读文章 →PaymentStatus.java
PaymentStatus.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/enums/PaymentStatus.java).
阅读文章 →BankErrorException.java
BankErrorException.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/exception/BankErrorException.java).
阅读文章 →