Hakim har anställt en arme av konsulter för att bygga en payment gateway. Pengarna tog slut och detta var det som teamet producerade och ni har fått ta över tjänsten och göra lite vad ni vill med den.
Denna tjänst tar hand om betalningar. Paymentteamet har inte kommit så långt utan markerar bara betalningarna automatiskt som betalda efter 10 sekunder.
Apiet är beskrivet via Swagger som ni kan hitta direkt under <host>/swagger-ui/
- Du skapar en betalning och tillhandahåller en summa och en referens.
- När betalningen har gått igenom, så skickas ett meddelande på rabbitmq på exchange
payments-exchange
och queuepayments
mvn clean verify && docker build -t payment-gw .
för att bygga och paketera appendocker-compose up -d
för att starta appen, databasen och rabbit- Gå till swagger och trigga en betalning
- kolla i loggarna vad tjänsten skriver ut
docker-compose logs -f payment-gw
Rest finns dokumenterat i swagger men här kommer ett exempel.
POST /payment
{
"reference": "your-reference-eg-the-orderId",
"amount": 100
}
Returns 204 if successfull with no body.
Messaging: På rabbitmq skickas alla olika state-förändringar på betalningen. Idag har teamet lyckats att implementera två olika
- CREATED: Skickas när en betalning har registrerats
- PAID: Skickas när en betalning är utförd.
Message format
{
"reference":"your-reference-eg-the-orderId",
"paymentId":"123",
"status":"CREATED"
}
Det finns bra bibliotek att använda sig av. Tex denna för att komma igång med rabbitmq.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>