Tích hợp MQTT & API

Tích hợp MQTT và API cho điều khiển phía máy

Hướng dẫn đường kết nối giữa backend, bộ điều khiển QuLink và máy vending hoặc self-service. Endpoint, topic, xác thực và payload được xác nhận theo firmware.

HTTPS APIMQTT topicsIdempotent commandsEvent callbacks
QuLink MQTT and API controller board for vending machines

Transport choice

HTTPS or MQTT?

Both can exist in one project. The choice depends on whether you need a response now or a stream of events.

Use caseHTTPS APIMQTT
Backend sends a commandRequest / responsePublish to command topic
Backend receives eventsWebhook or pollingSubscribe to event topic
Best fitServer-triggered actionsReal-time status and telemetry
Failure handlingHTTP status + retryQoS + reconnect + idempotency

The exact transport available on a machine depends on the controller, firmware, and network path.

Độ phù hợp dự án

Cho đội ngũ kết nối máy với backend riêng

Tín hiệu nhu cầu

  • Your backend or app needs to trigger a vend, relay, pulse, unlock, or timed session.
  • Your platform uses HTTPS, webhooks, or MQTT and wants the machine-side contract in one place.
  • You need event identity, retries, and offline behavior defined before a sample.
  • You want to keep your own payment provider, schema, and dashboard.

Cần gửi gì

  • Ảnh máy hoặc bo mạch hiện tại
  • Ghi chú giao diện hoặc đấu dây
  • Hành động mục tiêu sau API hoặc thanh toán
  • Có cần upload dữ liệu không

Không phù hợp nếu

  • You need payment acquiring, settlement, or wallet balance.
  • The machine has no controllable interface or usable event source.
  • You need a fixed API contract before the controller and firmware are confirmed.

Mô hình tích hợp

Một hợp đồng, hai transport

HTTPS cho lệnh và phản hồi, MQTT cho sự kiện thời gian thực. Device identity, topic, xác thực và QoS được xác nhận theo dự án.

API transport
HTTPS REST; JSON request and response
MQTT transport
MQTT 3.1.1 over TLS 1.2; QoS 1; keepalive 60s
Device identity
Project-issued device_id
Command reference
reference_id is used for idempotency
Event identity
event_id, occurred_at, device_id, result
Authentication
HTTPS Bearer token; optional HMAC-SHA256
Error model
unauthorized, device_offline, timeout, invalid_command, machine_fault

Quy trình

Từ ảnh máy đến quy trình đã kiểm chứng.

Confirm the machine interface

Send the controller label, wiring photos, and the action the machine must perform.

Define the command contract

Confirm command names, slot or channel mapping, timeout, and result fields.

Connect the transport

Issue device identity, token, topic prefix, TLS mode, and QoS for the project.

Test one machine

Validate command, machine action, event identity, retry, and reconnect on a sample.

Ví dụ API

Ví dụ lệnh server hoặc webhook cho hành động phía máy.

Các trường lệnh phụ thuộc vào giao diện máy, cấu hình firmware và việc thanh toán hay ứng dụng của bạn kích hoạt hành động.

POST /v1/devices/{device_id}/commands
Authorization: Bearer 
Content-Type: application/json

{
  "command": "vend",
  "slot": "B04",
  "reference_id": "ORDER-1001",
  "timeout_ms": 15000
}

# MQTT topic map
devices/{device_id}/commands
devices/{device_id}/events

Project RFQ

Cho chúng tôi biết máy cần làm gì, gửi gì, hoặc báo cáo gì.

Gửi model máy, interface controller, hành động đích và trường dữ liệu. Chúng tôi xác nhận hợp đồng API/MQTT và mẫu thử.

A good first message

If you are unsure about the exact interface, send what you have. Photos often answer more than a long spec.

  • Machine type and target country
  • Machine photo, board photo, or wiring photo
  • Action after payment or API command
  • Need data upload? expected quantity?
Fastest first step
  • Send a machine photo
  • Describe the action after API or payment
  • Tell us if data upload is needed
Tùy chọn: công ty, số lượng, giao diện và nhu cầu dữ liệu

Một mô tả ngắn là đủ. Chúng tôi thường phản hồi trong 24 giờ.

Có ảnh máy hoặc bo mạch? Gửi qua WhatsApp — chúng tôi thường xem ảnh trước.

FAQ

Câu hỏi thường gặp trước khi test mẫu.

Do you support MQTT?

MQTT 3.1.1 over TLS 1.2 with QoS 1 is the baseline. Broker, topic prefix, and authentication are confirmed per firmware profile.

Can we use our own backend?

Yes. The controller can deliver commands and events to your own API, webhook, or broker. The exact flow is confirmed on a sample.

How do you prevent duplicate commands?

The contract uses reference_id and event_id. Retry and deduplication behavior is confirmed in the firmware profile and tested on one machine.

What happens when the network is offline?

Event buffering and retry are part of the integration plan. Capacity, power-cycle retention, and backfill behavior must be tested before making a persistent-cache claim.

Gửi ảnh máy Gửi yêu cầu dự án