# jianhuasun/xwcg-java-sdk architecture

> Architecture diagram of the GitHub repository jianhuasun/xwcg-java-sdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jianhuasun/xwcg-java-sdk
- Repository: https://github.com/jianhuasun/xwcg-java-sdk

## Overview

This repository is a Java SDK for a Lanmao/XWCg bank-depository interface. A merchant application builds typed request data and calls the request service, which submits gateway or direct-connect requests and returns typed responses. For gateway operations, the platform calls the merchant’s callback endpoint; the merchant uses the response parser to verify the signature and deserialize the payload. The README also documents account, deposit/withdrawal, transaction, and query interfaces. The sampled excerpts show representative service and parsing behavior; wiring for individual unsampled methods is summarized at subsystem level.

Main entry points: [`src/main/java/xyz/sunjianhua/service/LanmaoLyReqService.java`](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyReqService.java) (Request service), [`src/main/java/xyz/sunjianhua/service/LanmaoLyRspParseService.java`](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyRspParseService.java) (Callback parser), [`src/main/java/xyz/sunjianhua/data/response`](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response) (Account responses), [`src/main/java/xyz/sunjianhua/util/AppUtil.java`](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/AppUtil.java) (Parameter and signature utilities)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_account["Accounts"]
  node_accountdata["Account DTOs"]
  node_accountresponses["Account responses"]
end

subgraph group_money["Funds and transactions"]
  node_fundsdto["Funds and transaction DTOs"]
  node_fundresponses["Funds and transaction responses"]
end

subgraph group_query["Queries"]
  node_querydto["Query DTOs"]
  node_queryresponses["Query responses"]
end

subgraph group_sdk["SDK transport"]
  node_reqservice["Request service"]
  node_rspservice["Callback parser"]
  node_config["SDK configuration<br/>[AppConfig.java]"]
  node_apputil["Parameter and signature utilities<br/>[AppUtil.java]"]
  node_http["HTTP client helper"]
  node_web["Gateway form utilities<br/>[WebUtils.java]"]
end

node_merchant(("Merchant application"))
node_gateway{{"Depository platform"}}
node_callback(("Merchant callback endpoint"))

node_merchant -->|"builds requests"| node_accountdata
node_merchant -->|"builds requests"| node_fundsdto
node_merchant -->|"builds requests"| node_querydto
node_merchant -->|"calls methods"| node_reqservice
node_reqservice -->|"submits requests"| node_gateway
node_reqservice -->|"returns typed data"| node_accountresponses
node_reqservice -->|"returns typed data"| node_fundresponses
node_reqservice -->|"returns typed data"| node_queryresponses
node_gateway -.->|"sends callbacks"| node_callback
node_callback -->|"passes request"| node_rspservice
node_rspservice -->|"parses payload"| node_accountresponses
node_rspservice -->|"parses payload"| node_fundresponses
node_rspservice -->|"verifies signatures"| node_apputil
node_reqservice -->|"creates parameters"| node_apputil
node_reqservice -->|"reads endpoints"| node_config
node_reqservice -->|"creates gateway form"| node_web
node_reqservice -->|"posts direct requests"| node_http

click node_accountdata "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request"
click node_fundsdto "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request"
click node_querydto "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request"
click node_reqservice "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyReqService.java"
click node_accountresponses "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response"
click node_fundresponses "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response"
click node_queryresponses "https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response"
click node_rspservice "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyRspParseService.java"
click node_config "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/AppConfig.java"
click node_apputil "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/AppUtil.java"
click node_http "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/HttpClientHelper.java"
click node_web "https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/WebUtils.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_accountdata,node_accountresponses toneBlue
class node_fundsdto,node_fundresponses toneAmber
class node_querydto,node_queryresponses toneMint
class node_reqservice,node_rspservice,node_config,node_apputil,node_http,node_web toneRose
class node_merchant,node_gateway,node_callback toneIndigo
```

## Components

### Accounts

- [Account DTOs](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request): `src/main/java/xyz/sunjianhua/data/request`
- [Account responses](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response): `src/main/java/xyz/sunjianhua/data/response`

### Funds and transactions

- [Funds and transaction DTOs](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request): `src/main/java/xyz/sunjianhua/data/request`
- [Funds and transaction responses](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response): `src/main/java/xyz/sunjianhua/data/response`

### Queries

- [Query DTOs](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/request): `src/main/java/xyz/sunjianhua/data/request`
- [Query responses](https://github.com/jianhuasun/xwcg-java-sdk/tree/master/src/main/java/xyz/sunjianhua/data/response): `src/main/java/xyz/sunjianhua/data/response`

### SDK transport

- [Request service](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyReqService.java): `src/main/java/xyz/sunjianhua/service/LanmaoLyReqService.java`
- [Callback parser](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/service/LanmaoLyRspParseService.java): `src/main/java/xyz/sunjianhua/service/LanmaoLyRspParseService.java`
- [SDK configuration](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/AppConfig.java): `src/main/java/xyz/sunjianhua/util/AppConfig.java`
- [Parameter and signature utilities](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/AppUtil.java): `src/main/java/xyz/sunjianhua/util/AppUtil.java`
- [HTTP client helper](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/HttpClientHelper.java): `src/main/java/xyz/sunjianhua/util/HttpClientHelper.java`
- [Gateway form utilities](https://github.com/jianhuasun/xwcg-java-sdk/blob/master/src/main/java/xyz/sunjianhua/util/WebUtils.java): `src/main/java/xyz/sunjianhua/util/WebUtils.java`

### Other components

- **Merchant application**
- **Depository platform**
- **Merchant callback endpoint**

## Connections

- Merchant application → Account DTOs: builds requests
- Merchant application → Funds and transaction DTOs: builds requests
- Merchant application → Query DTOs: builds requests
- Merchant application → Request service: calls methods
- Request service → Depository platform: submits requests
- Request service → Account responses: returns typed data
- Request service → Funds and transaction responses: returns typed data
- Request service → Query responses: returns typed data
- Depository platform → Merchant callback endpoint: sends callbacks
- Merchant callback endpoint → Callback parser: passes request
- Callback parser → Account responses: parses payload
- Callback parser → Funds and transaction responses: parses payload
- Callback parser → Parameter and signature utilities: verifies signatures
- Request service → Parameter and signature utilities: creates parameters
- Request service → SDK configuration: reads endpoints
- Request service → Gateway form utilities: creates gateway form
- Request service → HTTP client helper: posts direct requests
