How nb-sb/epay-sdk works
epay-sdk is a Java client for Rainbow Epay gateways, supporting V1/MD5, V2/RSA, and the legacy MZF dialect; a Spring Boot starter supplies auto-configuration. The principal workflow is application code building a payment request, EPayClient selecting and invoking a protocol adapter, and that adapter using the transport boundary to communicate with the gateway and return a typed result. The API also covers order queries, notifications, refunds, merchant queries, and order listing. Adapter implementations and polling internals were not fully excerpted, so some subsystem links are documented or marked unverified rather than inferred as calls.
Main entry points: EPayClient.java EPay Client · ProtocolContext.java Request Context · EPayAutoConfiguration.java Spring Boot Setup · EpayV1Adapter.java Epay V1 Adapter
Components 21
Application Integration
- Spring Boot Setup
epay-sdk-spring-boot-starter/src/main/java/com/nbsb/epaysdk/spring/EPayAutoConfiguration.java - Epay Properties
epay-sdk-spring-boot-starter/src/main/java/com/nbsb/epaysdk/spring/EPayProperties.java
Client API
- EPay Client
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - Payment API
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPay.java - Order Poller
epay-sdk/src/main/java/com/nbsb/epaysdk/api/OrderPoller.java - Payment Models
epay-sdk/src/main/java/com/nbsb/epaysdk/model/PaymentRequest.java - Order Models
epay-sdk/src/main/java/com/nbsb/epaysdk/model/OrderReference.java - Notification Models
epay-sdk/src/main/java/com/nbsb/epaysdk/model/NotificationRequest.java - Refund Models
epay-sdk/src/main/java/com/nbsb/epaysdk/model/RefundRequest.java - Gateway Results
epay-sdk/src/main/java/com/nbsb/epaysdk/model/GatewayResult.java - SDK Errors
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayException.java
Gateway Protocols
- Epay V1 Adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/protocol/epayv1/EpayV1Adapter.java - Epay V2 Adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/protocol/epayv2/EpayV2Adapter.java - MZF Adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/protocol/mzf/MzfLegacyAdapter.java - Adapter SPI
epay-sdk/src/main/java/com/nbsb/epaysdk/spi/ProtocolAdapter.java
Transport Runtime
- Request Context
epay-sdk/src/main/java/com/nbsb/epaysdk/spi/ProtocolContext.java - HTTP Transport SPI
epay-sdk/src/main/java/com/nbsb/epaysdk/spi/HttpTransport.java - Apache HTTP
epay-sdk/src/main/java/com/nbsb/epaysdk/internal/ApacheHttpTransport.java - Input Checks
epay-sdk/src/main/java/com/nbsb/epaysdk/internal/checks/Checks.java
Other components
- Merchant Application
- Epay Gateway
Connections 21
- Merchant Application → EPay Client: builds and calls
README.md - Merchant Application → Spring Boot Setup: configures through
- Spring Boot Setup → Epay Properties: binds properties
epay-sdk-spring-boot-starter/src/main/java/com/nbsb/epaysdk/spring/EPayAutoConfiguration.java - Spring Boot Setup → EPay Client: creates client
epay-sdk-spring-boot-starter/src/main/java/com/nbsb/epaysdk/spring/EPayAutoConfiguration.java - EPay Client → Payment API: implements
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Epay V1 Adapter: selects adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Epay V2 Adapter: selects adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → MZF Adapter: registers adapter
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Adapter SPI: dispatches operations
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Apache HTTP: creates default transport
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Order Poller: polls orders
epay-sdk/src/main/java/com/nbsb/epaysdk/api/OrderPoller.java - Epay V1 Adapter → Request Context: uses request context
epay-sdk/src/main/java/com/nbsb/epaysdk/protocol/epayv1/EpayV1Adapter.java - Epay V2 Adapter → Request Context: uses request context
epay-sdk/src/main/java/com/nbsb/epaysdk/protocol/epayv2/EpayV2Adapter.java - Request Context → HTTP Transport SPI: sends requests
epay-sdk/src/main/java/com/nbsb/epaysdk/spi/ProtocolContext.java - Apache HTTP → Epay Gateway: sends HTTP
- EPay Client → Payment Models: accepts payment request
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Order Models: accepts order reference
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Notification Models: accepts notification
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Refund Models: accepts refund request
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - EPay Client → Gateway Results: returns gateway result
epay-sdk/src/main/java/com/nbsb/epaysdk/api/EPayClient.java - Request Context → Input Checks: validates inputs
epay-sdk/src/main/java/com/nbsb/epaysdk/spi/ProtocolContext.java