> ## Documentation Index
> Fetch the complete documentation index at: https://ifdocdemo.lumivescence.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tham khảo SDK

> Các SDK của InFlow cho Node.js, Python, Go và Rust: package, lệnh cài đặt, phiên bản runtime, các tính năng mà SDK hỗ trợ và ví dụ.

Các SDK của InFlow triển khai thanh toán qua MPP và x402 cho người bán và người mua bằng bốn ngôn ngữ. Mỗi SDK cũng có một module cho người bán để xác minh theo Visa Trusted Agent Protocol (TAP).

| Ngôn ngữ | Repository | Package | Runtime | Phiên bản mới nhất |
| - | - | - | - | - |
| Node.js và TypeScript | `inflowpayai/inflow-node` | `@inflowpayai/*` trên npm | Node 22 trở lên | Xem [các package](#node-js-và-typescript) |
| Python | `inflowpayai/inflow-python` | `inflowpay` trên PyPI | Python 3.11 trở lên | ![Phiên bản mới nhất của inflowpay](https://img.shields.io/pypi/v/inflowpay?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| Go | `inflowpayai/inflow-go` | `github.com/inflowpayai/inflow-go` | Go 1.26 trở lên | ![Phiên bản mới nhất của inflow-go](https://img.shields.io/github/v/tag/inflowpayai/inflow-go?sort=semver\&label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| Rust | `inflowpayai/inflow-rust` | Các crate `inflow-*` trên crates.io | Rust 1.93 trở lên | ![Phiên bản mới nhất của các crate inflow](https://img.shields.io/crates/v/inflow-mpp-seller?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |

Cả bốn SDK đều chưa đến phiên bản 1.0. Một phiên bản minor có thể chứa các thay đổi API không tương thích. Một phiên bản patch chỉ chứa các bản sửa lỗi tương thích. InFlow hỗ trợ bản phát hành ổn định mới nhất của mỗi SDK.

Để ghi danh (AEP) và khám phá (ODP), dùng SDK của các giao thức đó. Xem [SDK của AEP và ODP](#sdk-của-aep-và-odp).

## Môi trường

Mỗi SDK nhận một giá trị môi trường. Giá trị mặc định là production.

| Môi trường | Host API |
| - | - |
| Sandbox | `https://sandbox.inflowpay.ai` |
| Production | `https://api.inflowpay.ai` |

Môi trường phải khớp với dashboard cấp API key. Trong các ví dụ, mọi SDK đọc key từ `INFLOW_API_KEY`. Người bán dùng MPP cũng cần `MPP_SECRET_KEY`.

## Node.js và TypeScript

| Package | Vai trò | Nội dung | Mới nhất |
| - | - | - | - |
| `@inflowpayai/x402` | Dùng chung | Các kiểu dữ liệu cốt lõi và một HTTP client cho x402. | ![Phiên bản mới nhất của @inflowpayai/x402](https://img.shields.io/npm/v/@inflowpayai/x402?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/x402-seller` | Người bán | Một client cho facilitator và một client cho người bán. | ![Phiên bản mới nhất của @inflowpayai/x402-seller](https://img.shields.io/npm/v/@inflowpayai/x402-seller?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/x402-buyer` | Người mua | Một lớp con của `x402Client` từ foundation, dành cho người mua. | ![Phiên bản mới nhất của @inflowpayai/x402-buyer](https://img.shields.io/npm/v/@inflowpayai/x402-buyer?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/mpp` | Dùng chung | Các định nghĩa MPP, kiểu dữ liệu truyền tải, một codec và một HTTP client. | ![Phiên bản mới nhất của @inflowpayai/mpp](https://img.shields.io/npm/v/@inflowpayai/mpp?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/mpp-seller` | Người bán | Các phương thức thanh toán InFlow, Tempo, Stripe và Visa CARD phía người bán cho `mppx`, gói thuê bao InFlow và nhiều khoản thu trên một endpoint. | ![Phiên bản mới nhất của @inflowpayai/mpp-seller](https://img.shields.io/npm/v/@inflowpayai/mpp-seller?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/mpp-buyer` | Người mua | Phương thức thanh toán InFlow phía người mua cho `mppx`, kèm một driver cho endpoint của người mua. | ![Phiên bản mới nhất của @inflowpayai/mpp-buyer](https://img.shields.io/npm/v/@inflowpayai/mpp-buyer?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |
| `@inflowpayai/tap-seller` | Người bán | Xác minh cục bộ chữ ký trên request của trusted agent. | ![Phiên bản mới nhất của @inflowpayai/tap-seller](https://img.shields.io/npm/v/@inflowpayai/tap-seller?label=latest\&labelColor=1A1A1A\&color=CAFA3A) |

| Trường hợp dùng | Lệnh |
| - | - |
| Người bán x402 trên Express | `pnpm add @inflowpayai/x402-seller @x402/express @x402/core @x402/extensions express` |
| Người bán x402 trên Fastify | `pnpm add @inflowpayai/x402-seller @x402/fastify @x402/core @x402/extensions fastify` |
| Người bán x402 trên Next 16 App Router | `pnpm add @inflowpayai/x402-seller @x402/next @x402/core @x402/extensions next` |
| Người mua x402 | `pnpm add @inflowpayai/x402-buyer @x402/core` |
| Người bán MPP | `pnpm add @inflowpayai/mpp-seller mppx@^0.8.17` |
| Người mua MPP | `pnpm add @inflowpayai/mpp-buyer mppx@^0.8.17` |

Các package khai báo `engines.node: >=22.0.0`.

## Python

Cả bản phân phối và namespace import đều là `inflowpay`. Các extra chọn giao thức và framework.

| Extra | Phần bổ sung |
| - | - |
| `mpp` | Thư viện thanh toán MPP. |
| `x402` | Thư viện thanh toán x402. |
| `evm`, `svm` | Các dependency cho ví bên ngoài của x402. |
| `mcp` | Các dependency MCP cho cả hai giao thức. |
| `fastapi` | Tích hợp FastAPI tùy chọn. |
| `tap` | Xác minh TAP cho người bán. |

| Trường hợp dùng | Lệnh |
| - | - |
| Người bán MPP | `pip install 'inflowpay[mpp,fastapi]' uvicorn` |
| Người bán x402 | `pip install 'inflowpay[x402,fastapi]' uvicorn` |
| Người mua MPP | `pip install 'inflowpay[mpp]'` |
| Người mua x402 | `pip install 'inflowpay[x402]'` |
| Người bán TAP | `pip install 'inflowpay[tap,fastapi]' uvicorn` |

Các client không phụ thuộc vào FastAPI. Các client này cũng hoạt động với các framework bất đồng bộ khác. HTTP client là `httpx`.

## Go

```bash theme={null}
go get github.com/inflowpayai/inflow-go@v0.3.2
```

| Package | Vai trò |
| - | - |
| `mpp/seller` | Người bán MPP. `Protect` trả về một `http.Handler` chuẩn. |
| `mpp/buyer` | Người mua MPP. |
| `x402/seller` | Người bán x402, với middleware `nethttp` của upstream. |
| `x402/buyer` | Người mua x402. `x402/buyer/eip7702` thêm hỗ trợ EIP-7702. |
| `tap/seller` | Xác minh TAP cho người bán. |

SDK Go hoạt động với `net/http`. Đặt `Environment: inflow.Sandbox` để kiểm thử.

## Rust

| Crate | Nội dung |
| - | - |
| `inflow-core` | Code dùng chung cho các crate khác. |
| `inflow-mpp` | Code MPP dùng chung. |
| `inflow-mpp-seller` | Offer có chữ ký, kiểm tra tính hợp lệ và quyết toán cho các khoản thu InFlow, Tempo, Stripe và Visa CARD. |
| `inflow-mpp-buyer` | Một quy trình credential tường minh cho các challenge của MPP. |
| `inflow-x402` | Code x402 dùng chung. |
| `inflow-x402-seller` | Người bán x402. |
| `inflow-x402-buyer` | Người mua x402. |
| `inflow-x402-axum` | Các endpoint có bảo vệ, tùy chọn, cho Axum và Tower, dùng middleware x402 của upstream. |
| `inflow-tap-seller` | Xác minh TAP cho người bán. |

Thêm các crate vào `Cargo.toml`.

```toml theme={null}
[dependencies]
inflow-mpp-seller = "0.4.1"
```

Với người bán MPP, thêm `inflow-mpp-seller`, `inflow-mpp` và `serde_json`. Handler người bán MPP chạy bên trong mọi HTTP framework dùng runtime Tokio của ứng dụng của bạn.

## Khác biệt về tính năng

Kiểm tra bảng này trước khi bạn chọn một ngôn ngữ.

| Tính năng | Node.js | Python | Go | Rust |
| - | - | - | - | - |
| Gói thuê bao cho người bán MPP | Có | Không | Có | Không |
| Nhiều offer InFlow trên một endpoint | Có | Không | Có | Không nêu |
| MPP qua MCP | Có, cho người mua | Có, cho người mua | Không | Có, với MCP client của riêng bạn |
| Phương thức thanh toán Stripe và Visa CARD phía người bán | Có | Có | Có | Có |
| Tích hợp framework | Express, Fastify, Hono, Next.js | FastAPI | `net/http` | Axum và Tower, cho x402 |

Chấp nhận Stripe chỉ dành cho người bán. Các SDK người mua của InFlow không tạo token Stripe. Layer Axum x402 của Rust từ chối các endpoint `upto` tự động, vì middleware của upstream quyết toán toàn bộ số tiền đã ủy quyền.

## Ví dụ

Mỗi repository có các ví dụ sandbox chạy được trong thư mục `examples`.

Các ví dụ Node.js dùng các package trong repository, không dùng các package từ npm. Trước khi bạn chạy một ví dụ, chạy `pnpm install` và `pnpm build` tại thư mục gốc của repository. Nếu không build, một ví dụ có thể thất bại với một lỗi như `does not provide an export named …`.

| Ngôn ngữ | Ví dụ |
| - | - |
| Node.js | `x402-seller-express`, `x402-seller-hono`, `x402-seller-fastify`, `x402-seller-next`, `x402-buyer-fetch`, `x402-buyer-axios`, `x402-buyer-x402-evm`, `x402-buyer-x402-svm`, `x402-facilitator`, `mpp-aep-seller-express`, `mpp-card-seller-express`, `mpp-seller-express`, `mpp-seller-hono`, `mpp-buyer-fetch`, `mpp-buyer-manual` |
| Python | `examples.mpp_seller`, `examples.mpp_buyer`, `examples.x402_seller`, `examples.x402_buyer`, `examples.tap_seller` |
| Go | Người bán MPP, người mua MPP, người bán x402, người mua x402 và người bán TAP |
| Rust | `mpp-seller`, `mpp-buyer`, `x402-seller`, `x402-buyer`, `payment-status`, `tap-seller` |

Chạy một ví dụ Python từ repository bằng `uv run --locked python -m examples.mpp_seller`. Chạy một ví dụ Rust bằng `cargo run --locked -p inflow-examples --bin mpp-seller`. Chạy một ví dụ Go bằng `go run ./examples/mpp-seller`.

`mpp-aep-seller-express` đặt bước ghi danh AEP trước một endpoint MPP. `mpp-card-seller-express` chấp nhận thanh toán USD bằng network token của Visa.

Các ví dụ `mpp-seller-express` và `mpp-seller-hono` phục vụ các endpoint này trên `http://localhost:3000`.

| Endpoint | Giá trong ví dụ MPP |
| - | - |
| `GET /api/widgets` | 0.01 USDC |
| `POST /api/upload` | 0.10 USDC |
| `GET /api/subscribe` | 1.00 USDC mỗi tháng |
| `GET /api/checkout` | 1.0 USD hoặc 0.0095 USDC |
| `GET /free` | Miễn phí |

## SDK của AEP và ODP

Dùng các SDK này để [ghi danh agent](https://ifdocdemo.lumivescence.com/vi/sellers/enable-enrollment.md) và để [niêm yết sản phẩm](https://ifdocdemo.lumivescence.com/vi/sellers/make-products-discoverable.md). Mỗi repository có các package cho từng vai trò. Người bán cài đặt package service.

### AEP

Các SDK của AEP nằm trong tổ chức [aep-foundation](https://github.com/aep-foundation) trên GitHub.

| Ngôn ngữ | Repository | Package |
| - | - | - |
| Go | `aep-go` | Module `github.com/aep-foundation/aep-go` với các package `aep`, `agent`, `service` và `platform` |
| Java | `aep-java` | Maven group `foundation.aep`: `aep-core`, `aep-agent`, `aep-service`, `aep-platform` và `aep-bom`. Adapter: `aep-httpserver`, `aep-servlet` và `aep-spring-webmvc`. JSON provider: `aep-json-jackson2` và `aep-json-jackson3`. |
| Node.js | `aep-node` | `@aep-foundation/core`, `@aep-foundation/agent`, `@aep-foundation/service` và `@aep-foundation/platform`. Adapter: `@aep-foundation/express`, `@aep-foundation/fastify`, `@aep-foundation/hono` và `@aep-foundation/next`. |
| Python | `aep-python` | `agent-enrollment-protocol` trên PyPI, với các module `core`, `agent`, `service` và `platform`. Package này cần Python 3.11 trở lên. |
| Rust | `aep-rust` | `aep-core`, `aep-agent`, `aep-service` và `aep-platform`. Adapter: `aep-axum` và `aep-tower`. |

### ODP

Các SDK của ODP nằm trong tổ chức [offering-protocol](https://github.com/offering-protocol) trên GitHub.

| Ngôn ngữ | Repository | Package |
| - | - | - |
| Go | `odp-go` | Module `github.com/offering-protocol/odp-go` với các package `agent`, `directory` và `service` |
| Java | `odp-java` | Maven group `org.offeringprotocol`: `odp-core`, `odp-agent`, `odp-directory`, `odp-service` và `odp-bom`. JSON provider: `odp-json-jackson2` và `odp-json-jackson3`. |
| Node.js | `odp-node` | `@offering-protocol/agent`, `@offering-protocol/directory` và `@offering-protocol/service` |
| Python | `odp-python` | `offering-protocol` trên PyPI, với các module `core`, `directory`, `agent` và `service`. Package này cần Python 3.11 trở lên. |
| Rust | `odp-rust` | `odp-core`, `odp-agent`, `odp-directory` và `odp-service` |

***

Với một tích hợp mới, dùng các SDK. Với một tích hợp hiện có dùng REST API của InFlow, xem [tài liệu tham khảo REST API](https://app.inflowpay.ai/documentation/api/).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.