- .NET 5
-
Unsuccessful card_number: 4111111111111111
-
Only Visa card accepted, RegexValidation : ^4[0-9]{12}(?:[0-9]{3})?$ (ref https://www.regular-expressions.info/creditcard.html)
-
Payment Status: Succeed=1 , Failed=2
Method: POST
URI: /api/v1.0/payment
e.g of valid request:
{
"card": {
"cardNumber": "4111111111111122",
"expirationDate": "06/21",
"cvv": "123"
},
"amount": 100,
"currency": "USD",
"beneficiaryAlias": "merchant-njaka"
}
Method: GET
URI: /api/v1.0/payment/{paymentId}
e.g payment details
{
"paymentId": "00f15e68-c88a-4074-8f0b-2cc02b3d6a64",
"card": {
"cardNumber": "411111XXXXXX1122",
"expirationDate": "2021-06-30T23:59:59",
"cvv": "123"
},
"amount": 100,
"currency": "USD",
"beneficiaryAlias": "merchant-njaka",
"status": 1,
"paymentDate": "2020-06-18T00:05:20.0491589+02:00"
}
Download (EventStoreDB 5.0.8)
https://eventstore.com/downloads/
Extract and using command run the command above to Start
EventStore.ClusterNode.exe --db ./db --log ./logs
Build image
docker build -t njakaraz/paymentgateway:latest
Image pushed to Registry
docker push njakaraz/paymentgateway:latest
Run
docker run -it --rm -p 5053:80 njakaraz/paymentgateway --name paymentgateway
Access: http://localhost:5053/index.html
- HealthCheck : {baseUrl}/health
- Metrics : {baseUrl}/metrics
- Onion Architecture
- FluentMediator for handling events (https://github.com/ivanpaulovich/FluentMediator)
- Metrics using prometheus
- Event Store to EventSourcing (https://eventstore.com/downloads/)
- InMemory Database
- Native .Net Core DI
- Api documentation with Swagger