auv-locker-sdk/README.md
2026-05-09 15:42:05 +08:00

3.9 KiB

AUV 智能取餐柜 Java SDK

Java SDK for AUV Smart Locker API. Maven + JDK 8 + Apache HttpClient 4.5 + Jackson.

Quick Start

AuvClient client = AuvClient.builder()
    .appId("66666")
    .secretKey("mySecret")
    .build();

// 存取业务 API
CreateOrderResponse resp = client.storage().createOrder(request);

// 辅助功能 API
DeviceStatusResponse status = client.aux().queryDeviceStatus(request);

client.close();

Project Structure

auv-locker-sdk/
├── src/main/java/com/auv/locker/
│   ├── AuvClient.java              # Unified entry point
│   ├── config/
│   │   ├── AuvConfig.java          # Configuration (appId, secretKey, timeouts)
│   │   └── GatewayType.java        # Gateway enum (STORAGE / AUX)
│   ├── http/
│   │   ├── AuvHttpClient.java      # Apache HttpClient wrapper
│   │   └── HmacMD5Util.java        # HmacMD5 signature utility
│   ├── model/
│   │   ├── common/                 # AuvRequest, AuvResponse
│   │   ├── storage/                # Storage API request/response models (11 pairs)
│   │   └── aux/                    # Aux API request/response models
│   └── service/
│       ├── StorageApiService.java  # Storage API interface (11 endpoints)
│       ├── StorageApiServiceImpl.java
│       ├── AuxApiService.java      # Aux API interface (4 endpoints)
│       └── AuxApiServiceImpl.java
└── src/test/java/com/auv/locker/
    ├── HmacMD5UtilTest.java        # Signature tests
    └── AuvClientTest.java          # Builder & config tests

API Overview

Storage API (11 endpoints)

method Description
createOrder Create storage order
addCell Add cell to existing order
cancelOrder Cancel storage order
createPreOrder Create pre-order
changePreorderToFormal Convert pre-order to formal
takeByOrder Take by order ID
takeByCode Take by pickup code
reOpenDoor Re-open door (within 60s of order)
getDeviceInfo Get device info
getCellList Get cell list
getOrderList Query orders (paginated)

Aux API (4 endpoints)

method Description
device.cell.op Single cell operation
device.cells.ops Batch cell operations (Android only)
device.status.query Query device status & cell details
device.list.query Paginated device list

Gateway URLs

API HTTP HTTPS
Storage http://plat.58auv.com/OpenApi https://plat.58auv.com/OpenApi
Aux http://openapi.58auv.com/gateway.do https://openapi.58auv.com/gateway.do

Success Codes

  • Storage API: code == 10000
  • Aux API: code == 1 && success == true

Error Codes

Code Description
10000 / 1 Success
10010 Missing parameters
10011 bizData parameter error
10012 Device not exists / offline
10013 Order already exists
10014 No available cell
10015 Invalid order
10016 Unsupported operation
10020 Signature error
10021 Duplicate pickup code, use takeByOrder
10027 Please complete previous order first
10029 Non-existent cell
10030 Same request in progress
30002 Cell allocation failed

Signature Algorithm (HmacMD5)

  1. Collect all request parameters (except digest)
  2. Sort keys by ASCII order, join with & as key=value pairs
  3. Compute HmacMD5 with secretKey
  4. URL-encode bizData before sending

Notifications (Callbacks)

notifyType Source Description
orderCompleted Storage API Order completed
orderCancel Storage API Order cancelled
cell_status_sync Aux API Cell status change
device_status_sync Aux API Device online/offline