Hướng Dẫn Giao Dịch USDC với Circle API

Mark Ponomarev

Mark Ponomarev

23 tháng 6 2025

Hướng Dẫn Giao Dịch USDC với Circle API

USD Coin (USDC) đã nổi lên như một nền tảng vững chắc của sự ổn định và đáng tin cậy. Là một stablecoin được dự trữ đầy đủ và hỗ trợ bởi đồng đô la, USDC thu hẹp khoảng cách giữa tiền pháp định truyền thống và thế giới tài sản kỹ thuật số đang phát triển. Nó cung cấp tốc độ và phạm vi toàn cầu của tiền điện tử trong khi vẫn duy trì sự ổn định giá của đồng đô la Mỹ, biến nó thành một phương tiện lý tưởng cho thương mại, giao dịch và kiều hối trên internet.

Trọng tâm của hệ sinh thái USDC là Circle, nhà phát triển chính của stablecoin này. Circle cung cấp một bộ API cho phép các nhà phát triển và doanh nghiệp tích hợp USDC vào ứng dụng của họ một cách liền mạch. Cụ thể, Circle Mint API cung cấp một cổng mạnh mẽ để đúc USDC mới, đổi nó lấy tiền pháp định và chuyển nó qua nhiều blockchain được hỗ trợ. Đây không phải là "giao dịch" theo nghĩa đầu cơ vào biến động giá trên một sàn giao dịch thị trường mở, mà là một điều cơ bản hơn: khả năng di chuyển giá trị theo chương trình, chuyển đổi từ các kênh tài chính truyền thống vào thế giới kỹ thuật số và chuyển đổi ngược lại.

Bài viết này là hướng dẫn toàn diện của bạn để nắm vững Circle API cho các giao dịch USDC. Chúng ta sẽ bắt đầu một hành trình chi tiết, từ việc thiết lập tài khoản nhà phát triển ban đầu cho đến việc thực hiện các khoản chuyển và thanh toán phức tạp. Chúng ta sẽ đề cập đến:

Khi kết thúc hướng dẫn này, bạn sẽ có kiến thức và các ví dụ thực tế cần thiết để xây dựng các ứng dụng tinh vi tận dụng sức mạnh của một đồng đô la kỹ thuật số ổn định, toàn cầu và có thể lập trình.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời có thể tạo Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, tất cả trong một để Đội ngũ Nhà phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Bắt đầu với Circle

Trước khi bạn có thể viết một dòng mã nào, bạn cần thiết lập môi trường phát triển và lấy thông tin đăng nhập của mình. Bước cơ bản này rất quan trọng để có một quy trình tích hợp suôn sẻ.

Môi trường Sandbox so với Môi trường Production

Circle cung cấp hai môi trường riêng biệt cho các API của mình: Sandbox và Production. Hiểu rõ vai trò của chúng là bước đầu tiên để tích hợp thành công và an toàn.

Các máy chủ API cho mỗi môi trường như sau:

Môi trường URL Máy chủ API
Sandbox https://api-sandbox.circle.com
Production https://api.circle.com

Trong suốt hướng dẫn này, tất cả các ví dụ sẽ sử dụng URL sandbox. Đây là một thực tiễn tốt nhất quan trọng: luôn phát triển và kiểm thử trong môi trường sandbox trước tiên.

Tạo Tài khoản Sandbox của Bạn

Hành trình của bạn bắt đầu bằng việc tạo một tài khoản nhà phát triển Circle, tài khoản này sẽ cấp cho bạn quyền truy cập vào môi trường sandbox.

  1. Truy cập Trang web của Circle: Đi tới trang nhà phát triển chính thức của Circle.
  2. Đăng ký: Tìm tùy chọn để đăng ký tài khoản nhà phát triển hoặc sandbox. Bạn sẽ cần cung cấp một số thông tin cơ bản, chẳng hạn như địa chỉ email và mật khẩu an toàn.
  3. Xác minh Email của bạn: Sau khi gửi biểu mẫu đăng ký, bạn sẽ nhận được một email xác minh. Nhấp vào liên kết trong email này để kích hoạt tài khoản của bạn.
  4. Truy cập Bảng điều khiển: Khi tài khoản của bạn đã được xác minh, bạn có thể đăng nhập vào bảng điều khiển nhà phát triển. Bảng điều khiển này là trung tâm của bạn để quản lý ứng dụng, khóa API và xem hoạt động sandbox của bạn.

Tạo Khóa API Đầu tiên của Bạn

Khóa API là một mã thông báo bí mật duy nhất xác thực các yêu cầu của ứng dụng của bạn tới Circle API. Nó chứng minh rằng một yêu cầu đến từ bạn chứ không phải từ một bên thứ ba không được ủy quyền.

Dưới đây là cách tạo khóa API từ bảng điều khiển sandbox mới của bạn:

  1. Đăng nhập vào tài khoản sandbox nhà phát triển Circle của bạn.
  2. Điều hướng đến Phần Khóa API: Trong bảng điều khiển, tìm một phần có nhãn "API Keys" hoặc "Developer Settings".
  3. Tạo Khóa Mới: Sẽ có tùy chọn "Create a New API Key". Nhấp vào đó.
  4. Đặt tên cho Khóa của bạn: Đặt cho khóa của bạn một tên mô tả (ví dụ: "Ứng dụng Giao dịch của tôi - Thử nghiệm"). Điều này giúp bạn xác định mục đích của khóa sau này, đặc biệt nếu bạn có nhiều khóa cho các ứng dụng khác nhau.
  5. Sao chép và Bảo mật Khóa của bạn: Sau khi tạo, khóa API của bạn sẽ được hiển thị trên màn hình. Đây là lần duy nhất khóa đầy đủ sẽ được hiển thị. Bạn phải sao chép nó ngay lập tức và lưu trữ nó ở một vị trí an toàn, chẳng hạn như trình quản lý mật khẩu hoặc tệp biến môi trường cho dự án của bạn. Không mã hóa cứng khóa API của bạn trực tiếp trong mã nguồn.

Khóa API của bạn là một phần thông tin nhạy cảm. Bất kỳ ai có nó đều có thể thực hiện các yêu cầu thay mặt cho tài khoản của bạn. Hãy xử lý nó với mức độ bảo mật tương tự như bạn xử lý mật khẩu.


Xác thực và Thiết lập Ban đầu

Với khóa API trong tay, giờ đây bạn đã sẵn sàng thực hiện các lệnh gọi đầu tiên tới Circle API. Bước đầu tiên là nắm vững quy trình xác thực và kiểm tra kết nối của bạn để đảm bảo mọi thứ được cấu hình đúng cách.

Xác thực API: Mã thông báo Bearer

Circle API sử dụng lược đồ xác thực Mã thông báo Bearer. Đây là một phương pháp xác thực HTTP tiêu chuẩn, trong đó mọi yêu cầu API phải bao gồm một tiêu đề Authorization chứa khóa API của bạn.

Định dạng tiêu đề là: Authorization: Bearer YOUR_API_KEY

Bạn phải thay thế YOUR_API_KEY bằng khóa bí mật thực tế mà bạn đã tạo trong chương trước.

Kiểm tra Kết nối của Bạn

Trước khi đi sâu vào các giao dịch phức tạp, điều cần thiết là thực hiện hai bài kiểm tra đơn giản: một để kiểm tra kết nối mạng cơ bản đến các máy chủ Circle API và một để xác minh rằng khóa API của bạn đã được cấu hình đúng cách.

Kiểm tra Kết nối Thô với /ping

Điểm cuối /ping là một kiểm tra sức khỏe đơn giản. Nó không yêu cầu xác thực và được sử dụng để xác nhận rằng bạn có thể tiếp cận các máy chủ Circle API.

Dưới đây là cách gọi nó bằng cURL, một công cụ dòng lệnh phổ biến để thực hiện các yêu cầu HTTP:

curl -H 'Accept: application/json' \
  -X GET --url https://api-sandbox.circle.com/ping

Phản hồi Thành công:

Nếu kết nối của bạn thành công, API sẽ trả về một đối tượng JSON đơn giản:

{
  "message": "pong"
}

Nếu bạn nhận được phản hồi này, bạn đã thiết lập thành công kết nối với môi trường sandbox. Nếu không, hãy kiểm tra kết nối mạng, tường lửa của bạn hoặc bất kỳ lỗi chính tả nào trong URL.

Kiểm tra Khóa API của Bạn với /v1/configuration

Bây giờ, hãy kiểm tra xem khóa API của bạn có hợp lệ và được định dạng đúng cách hay không. Điểm cuối /v1/configuration truy xuất thông tin cấu hình cơ bản cho tài khoản của bạn và yêu cầu xác thực.

Đây là lệnh cURL. Hãy nhớ thay thế ${YOUR_API_KEY} bằng khóa API thực tế của bạn. Để bảo mật, tốt nhất nên sử dụng biến môi trường.

# It's best practice to store your API key in an environment variable
# export YOUR_API_KEY='YOUR_KEY_HERE'

curl -H 'Accept: application/json' \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -X GET --url https://api-sandbox.circle.com/v1/configuration

Phản hồi Thành công:

Một yêu cầu thành công sẽ trả về một đối tượng JSON chứa ID ví chính của bạn. masterWalletId là định danh duy nhất cho ví chính được liên kết với tài khoản của bạn nơi tiền của bạn được giữ.

{
  "data": {
    "payments": {
      "masterWalletId": "1234567890"
    }
  }
}

Phản hồi Lỗi:

Nếu có vấn đề với khóa API của bạn hoặc cách bạn đã định dạng tiêu đề Authorization, bạn sẽ nhận được lỗi 401 Unauthorized.

{
  "code": 401,
  "message": "Malformed authorization. Are the credentials properly encoded?"
}

Nếu bạn thấy lỗi này, hãy kiểm tra kỹ những điều sau:

Sử dụng SDK của Circle để Tích hợp Đơn giản hơn

Mặc dù bạn luôn có thể tương tác trực tiếp với API bằng các yêu cầu HTTP, Circle cung cấp Bộ công cụ phát triển phần mềm (SDK) cho các ngôn ngữ lập trình phổ biến như Node.js, Python và Java. Các SDK này xử lý mã boilerplate cho xác thực, định dạng yêu cầu và phân tích phản hồi, giúp quá trình phát triển của bạn nhanh hơn và ít lỗi hơn.

Dưới đây là một ví dụ ngắn gọn về cách bạn có thể khởi tạo Circle Node.js SDK:

// Install the SDK first: npm install @circle-fin/circle-sdk

import { Circle, CircleEnvironments } from "@circle-fin/circle-sdk";

const circle = new Circle(
  process.env.CIRCLE_API_KEY, // API key from environment variable
  CircleEnvironments.sandbox   // Pointing to the sandbox environment
);

async function getConfiguration() {
  try {
    const response = await circle.core.getConfiguration();
    console.log(response.data.payments.masterWalletId);
  } catch (error) {
    console.error(error.response.data);
  }
}

getConfiguration();

Sử dụng SDK giúp trừu tượng hóa các chi tiết cấp thấp, cho phép bạn tập trung vào logic nghiệp vụ của ứng dụng. Chúng tôi khuyên bạn nên sử dụng SDK cho bất kỳ dự án nghiêm túc nào.


Các Khái niệm Cốt lõi và Tài nguyên API

Để sử dụng Circle API một cách hiệu quả, bạn phải hiểu mô hình dữ liệu cơ bản của nó. API được xây dựng xung quanh một tập hợp các tài nguyên—các đối tượng JSON đại diện cho các thực thể cốt lõi trong hệ thống, như thanh toán, ví và chuyển khoản.

Tổng quan về các Tài nguyên API

Các tài nguyên của Circle có thể được phân loại thành nhiều nhóm:

Tài nguyên Chính: Chúng đại diện cho các hành động tài chính chính mà bạn có thể thực hiện.

Phương thức và Công cụ:

Tài nguyên Lồng ghép: Đây là các đối tượng thường được nhúng trong các tài nguyên khác để cung cấp thông tin chi tiết.

Tìm hiểu sâu: Đối tượng Payment

Một payment (thanh toán) là cách bạn nhận tiền. Mặc dù API hỗ trợ thanh toán bằng thẻ, nhưng đối với các trường hợp sử dụng USDC, bạn thường sẽ xử lý các khoản thanh toán nạp tiền vào ví Circle của mình.

Ví dụ về đối tượng Payment:

{
  "id": "e665ea6e-3a53-4f93-a85e-45178d48d9ea",
  "type": "payment",
  "merchantId": "c680d087-7b41-40aa-95a2-68febcdddb22",
  "merchantWalletId": "1000002853",
  "amount": {
    "amount": "10.00",
    "currency": "USD"
  },
  "source": {
    "id": "86461e9f-db1a-487f-915b-641138062e7c",
    "type": "card"
  },
  "description": "New customer payment",
  "status": "confirmed",
  "fees": {
    "amount": "0.58",
    "currency": "USD"
  },
  "createDate": "2024-01-10T02:29:53.888Z",
  "updateDate": "2024-01-10T02:32:19.421Z"
}

Các thuộc tính chính:

Tìm hiểu sâu: Đối tượng Transfer

Một transfer (chuyển khoản) có lẽ là đối tượng quan trọng nhất để "giao dịch" hoặc di chuyển USDC. Nó đại diện cho sự di chuyển của tiền kỹ thuật số.

Ví dụ về đối tượng Transfer:

{
  "id": "c332d75a-3870-410c-b26a-93e5a3ab90e8",
  "source": {
    "type": "wallet",
    "id": "1000002853"
  },
  "destination": {
    "type": "blockchain",
    "address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
    "chain": "ETH"
  },
  "amount": {
    "amount": "150.50",
    "currency": "USD"
  },
  "status": "pending",
  "createDate": "2024-05-15T18:44:03.484Z",
  "updateDate": "2024-05-15T18:44:03.484Z"
}

Các thuộc tính chính:

Đối tượng Nguồn và Đích

Các đối tượng lồng ghép này rất quan trọng vì chúng định nghĩa luồng tiền trong bất kỳ giao dịch nào.

Trường type của chúng xác định loại nguồn hoặc đích:

Các Chuỗi và Tiền tệ được Hỗ trợ

Circle không phụ thuộc vào chuỗi và liên tục mở rộng hỗ trợ của mình. Tính đến cuối năm 2024, USDC có sẵn trên nhiều blockchain lớn, bao gồm:

Bạn phải chỉ định định danh chain chính xác khi thực hiện chuyển khoản. Đối với tiền pháp định, API chủ yếu hỗ trợ USDEUR. currency trong đối tượng Money luôn phải được đặt là USD khi xử lý các khoản chuyển USDC.


Thực hiện Giao dịch: Vòng đời Hoàn chỉnh

Bây giờ chúng ta đi vào trọng tâm của vấn đề: sử dụng API để chuyển tiền. Chúng ta sẽ đi qua một vòng đời hoàn chỉnh: nạp tiền pháp định để có USDC, chuyển USDC đó đến một địa chỉ bên ngoài và cuối cùng rút nó về lại tài khoản ngân hàng pháp định.

Bước 1: Nạp Tiền Pháp định với một Payment

Đối với nhiều ứng dụng, bước đầu tiên là chuyển đổi tiền pháp định từ khách hàng thành USDC trong ví Circle của bạn. Điểm cuối API Create Payment được sử dụng cho mục đích này. Mặc dù API hỗ trợ nhiều nguồn thanh toán khác nhau, chúng ta sẽ tập trung vào khái niệm.

Giả sử một khách hàng đang thanh toán cho bạn 500 đô la. Bạn sẽ thực hiện một yêu cầu POST tới /v1/payments.

Yêu cầu API để Tạo một Thanh toán:

curl -X POST \
  https://api-sandbox.circle.com/v1/payments \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
        "idempotencyKey": "your-unique-uuid-here-for-payment",
        "source": {
          "id": "some-card-or-bank-id",
          "type": "card"
        },
        "amount": {
          "amount": "500.00",
          "currency": "USD"
        },
        "description": "Payment for services rendered"
      }'

Lưu ý Quan trọng: idempotencyKey rất quan trọng ở đây. Đó là một ID duy nhất (ở định dạng UUID) mà bạn tạo cho yêu cầu này. Nếu bạn gửi cùng một yêu cầu hai lần (ví dụ: do lỗi mạng), Circle sẽ nhận ra khóa và chỉ xử lý thanh toán một lần. Chúng ta sẽ đề cập chi tiết hơn về điều này trong chương tiếp theo.

Khi khoản thanh toán này được xử lý và status của nó trở thành confirmed (đã xác nhận) hoặc paid (đã thanh toán), số lượng USDC tương đương (trừ phí) sẽ được ghi có vào merchantWalletId của bạn.

Bước 2: Kiểm tra Số dư Ví của Bạn

Sau khi nhận được khoản thanh toán, bạn sẽ muốn xác minh rằng tiền đã đến. Bạn có thể kiểm tra số dư của bất kỳ ví nào của mình, nhưng phổ biến nhất là ví chính của bạn.

Yêu cầu API để Lấy Số dư:

curl -X GET \
  https://api-sandbox.circle.com/v1/wallets/${YOUR_WALLET_ID}/balances \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Thay thế ${YOUR_WALLET_ID} bằng masterWalletId mà bạn đã truy xuất trước đó.

Phản hồi API:

Phản hồi sẽ là một danh sách các số dư, một cho mỗi loại tiền tệ bạn nắm giữ.

{
  "data": {
    "available": [
      {
        "amount": "495.50",
        "currency": "USD"
      }
    ],
    "unsettled": [
      {
        "amount": "0.00",
        "currency": "USD"
      }
    ]
  }
}

Số dư available (khả dụng) là số tiền bạn có thể chuyển hoặc thanh toán ngay lập tức.

Bước 3: Chuyển USDC trên Chuỗi

Đây là cốt lõi của việc sử dụng USDC. Bạn có thể chuyển tiền từ ví của mình đến bất kỳ địa chỉ bên ngoài nào trên một blockchain được hỗ trợ. Điều này hoàn hảo để thanh toán cho nhà cung cấp, chuyển tiền đến một giao thức DeFi hoặc gửi giá trị cho người dùng.

Giả sử bạn muốn gửi 100 USDC đến một địa chỉ Ethereum.

Yêu cầu API để Tạo một Chuyển khoản:

curl -X POST \
  https://api-sandbox.circle.com/v1/transfers \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
        "idempotencyKey": "another-unique-uuid-for-transfer",
        "source": {
          "type": "wallet",
          "id": "1000002853"
        },
        "destination": {
          "type": "blockchain",
          "address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
          "chain": "ETH"
        },
        "amount": {
          "amount": "100.00",
          "currency": "USD"
        }
      }'

Phân tích Cấu trúc Yêu cầu:

API sẽ phản hồi bằng một đối tượng Transfer, ban đầu với statuspending (đang chờ xử lý).

Hiểu về Xác nhận Blockchain

Các giao dịch trên chuỗi không tức thì. Một khoản chuyển khoản phải được phát sóng đến mạng và sau đó được xác nhận bởi các thợ đào hoặc người xác thực. status của khoản chuyển khoản của bạn sẽ chỉ thay đổi thành complete (hoàn tất) sau khi nó đã nhận đủ số lượng xác nhận trên blockchain. Circle quản lý sự phức tạp này cho bạn. Bạn có thể theo dõi trạng thái bằng cách thăm dò điểm cuối GET /v1/transfers/{id} hoặc, tốt hơn, bằng cách sử dụng webhook (được đề cập trong chương tiếp theo) để nhận thông báo khi khoản chuyển khoản hoàn tất.

Bước 4: Rút USDC về Tiền Pháp định với một Payout

Bước cuối cùng trong vòng đời là chuyển đổi USDC của bạn trở lại thành tiền pháp định trong một tài khoản ngân hàng. Điều này được thực hiện thông qua một payout (thanh toán ra). Trước khi bạn có thể tạo một khoản thanh toán ra, bạn phải liên kết và xác minh một tài khoản ngân hàng, điều này sẽ tạo ra một đối tượng Wire Account.

Khi bạn đã thiết lập một tài khoản ngân hàng đích (với id của riêng nó), bạn có thể tạo khoản thanh toán ra.

Yêu cầu API để Tạo một Thanh toán ra:

curl -X POST \
  https://api-sandbox.circle.com/v1/payouts \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
        "idempotencyKey": "yet-another-unique-uuid-for-payout",
        "destination": {
          "type": "wire",
          "id": "your-bank-account-uuid-here"
        },
        "amount": {
          "amount": "250.00",
          "currency": "USD"
        }
      }'

API sẽ phản hồi bằng một đối tượng Payout. status sẽ là pending (đang chờ xử lý) ban đầu và sẽ chuyển sang complete (hoàn tất) khi tiền đã được gửi thành công đến ngân hàng đích.


Các Tính năng Nâng cao và Thực tiễn Tốt nhất

Để xây dựng một ứng dụng thực sự mạnh mẽ và có khả năng mở rộng, bạn cần vượt ra ngoài các lệnh gọi API cơ bản và tận dụng các tính năng nâng cao mà Circle cung cấp. Các tính năng này được thiết kế để đảm bảo tính toàn vẹn dữ liệu, cung cấp cập nhật thời gian thực và làm cho ứng dụng của bạn trở nên kiên cường.

Yêu cầu Bất biến: Ngăn chặn Chi tiêu Kép

Chúng ta đã đề cập đến idempotencyKey nhiều lần, nhưng tầm quan trọng của nó không thể bị phóng đại. Trong các hệ thống tài chính, việc vô tình thực hiện một thao tác hai lần (như gửi thanh toán hoặc chuyển khoản) có thể gây ra thảm họa. Các vấn đề mạng có thể khiến một yêu cầu hết thời gian chờ, ngay cả khi máy chủ đã xử lý thành công. Nếu không có tính bất biến, ứng dụng của bạn có thể tự động thử lại yêu cầu, dẫn đến một giao dịch trùng lặp.

Cách hoạt động:

Điều này đảm bảo rằng một yêu cầu cụ thể chỉ có thể được thực hiện một lần duy nhất, bất kể nó được gửi bao nhiêu lần.

Thực tiễn Tốt nhất: Luôn tạo và gửi một idempotencyKey cho mọi thao tác POST.

Cập nhật Thời gian thực với Webhook

Việc liên tục thăm dò một API để kiểm tra trạng thái của một giao dịch (GET /v1/transfers/{id}) là không hiệu quả và chậm. Phương pháp hiện đại, đúng đắn là sử dụng webhook.

Webhook là một tin nhắn tự động được gửi từ một ứng dụng (Circle) đến một ứng dụng khác (của bạn) khi một sự kiện cụ thể xảy ra. Bạn có thể cấu hình một URL trong bảng điều khiển Circle của mình nơi bạn muốn nhận các thông báo này.

Khi trạng thái của một khoản thanh toán, chuyển khoản hoặc thanh toán ra thay đổi, Circle sẽ gửi một yêu cầu POST đến URL đã cấu hình của bạn với một tải trọng thông báo chứa đối tượng đã cập nhật.

Ví dụ về Tải trọng Thông báo cho một Chuyển khoản Đã hoàn tất:

{
  "notification": {
    "id": "notification-uuid",
    "type": "transfers",
    "subscriptionId": "your-subscription-id"
  },
  "transfer": {
    "id": "c332d75a-3870-410c-b26a-93e5a3ab90e8",
    "source": { ... },
    "destination": { ... },
    "amount": {
      "amount": "100.00",
      "currency": "USD"
    },
    "status": "complete",
    "transactionHash": "0x123abc...",
    "createDate": "2024-05-15T18:44:03.484Z",
    "updateDate": "2024-05-15T18:48:12.123Z"
  }
}

Bằng cách lắng nghe các thông báo này, ứng dụng của bạn có thể phản ứng ngay lập tức với các sự kiện như một khoản chuyển khoản hoàn tất hoặc một khoản thanh toán thất bại, mang lại trải nghiệm người dùng tốt hơn nhiều và cho phép tự động hóa thời gian thực.

Phân trang và Lọc: Xử lý Tập dữ liệu Lớn

Khi ứng dụng của bạn phát triển, bạn sẽ tích lũy hàng nghìn khoản thanh toán, chuyển khoản và các bản ghi khác. Việc yêu cầu tất cả chúng cùng một lúc bằng cách sử dụng điểm cuối GET như /v1/transfers sẽ chậm và khó quản lý.

Circle API sử dụng phân trang dựa trên con trỏ để giải quyết vấn đề này. Khi bạn liệt kê các tài nguyên, phản hồi sẽ chỉ chứa một số lượng mục giới hạn ("trang"). Bạn có thể kiểm soát kích thước của trang này bằng tham số pageSize. Để lấy trang kết quả tiếp theo hoặc trước đó, bạn sử dụng các tham số pageAfter hoặc pageBefore, truyền ID của mục cuối cùng hoặc đầu tiên bạn đã thấy.

Ví dụ: Lấy trang đầu tiên của 20 chuyển khoản:
GET /v1/transfers?pageSize=20

Ví dụ: Lấy trang tiếp theo của 20 chuyển khoản:
GET /v1/transfers?pageSize=20&pageAfter={id_of_last_transfer_from_previous_page}

Bạn cũng có thể lọc kết quả dựa trên các khoảng thời gian (dấu thời gian fromto) và các thuộc tính cụ thể khác của tài nguyên.

Xử lý Lỗi: Xây dựng một Ứng dụng Kiên cường

Mọi thứ có thể và sẽ xảy ra sai sót. Một yêu cầu API có thể thất bại do đầu vào không hợp lệ, không đủ tiền hoặc sự cố máy chủ tạm thời. Một ứng dụng mạnh mẽ phải dự đoán và xử lý các lỗi này một cách khéo léo.

Circle API sử dụng các mã trạng thái HTTP tiêu chuẩn để chỉ ra kết quả của một yêu cầu.

Khi một lỗi xảy ra, phần thân phản hồi API sẽ chứa một đối tượng JSON với nhiều chi tiết hơn.

Ví dụ về Phản hồi Lỗi (400 Bad Request):

{
  "code": 2,
  "message": "Invalid or missing parameter. See details for more information.",
  "errors": [
    {
      "location": "body",
      "message": "destination address is invalid",
      "param": "destination.address"
    }
  ]
}

Mã của bạn luôn phải được bao bọc trong các khối try/catch (hoặc tương đương với ngôn ngữ của bạn) để xử lý các ngoại lệ tiềm ẩn từ các lệnh gọi API. Bạn nên ghi lại chi tiết lỗi và, nếu thích hợp, hiển thị một thông báo hữu ích cho người dùng.


Kết luận: Nâng tầm Tương lai Tài chính

Chúng ta đã cùng nhau trải qua toàn bộ quá trình sử dụng Circle API để giao dịch với USDC. Từ việc thiết lập sandbox ban đầu và xác thực cho đến việc thực hiện các khoản thanh toán, chuyển khoản và thanh toán ra, giờ đây bạn đã có kiến thức nền tảng để xây dựng các ứng dụng tài chính mạnh mẽ. Chúng ta cũng đã khám phá các tính năng nâng cao như tính bất biến, webhook và xử lý lỗi, những yếu tố cần thiết để tạo ra các hệ thống chuyên nghiệp, sẵn sàng cho môi trường sản xuất.

Circle API không chỉ cho phép bạn di chuyển một loại tiền kỹ thuật số; nó cung cấp các đường ray có thể lập trình cho một hệ thống tài chính mới, bản địa internet. Bằng cách trừu tượng hóa sự phức tạp của công nghệ blockchain và cung cấp một API rõ ràng, định hướng tài nguyên, Circle trao quyền cho các nhà phát triển đổi mới và xây dựng thế hệ tiếp theo của thương mại toàn cầu, dịch vụ tài chính và thanh toán ngang hàng.

Khả năng là vô hạn. Các công cụ nằm trong tay bạn. Giờ thì, hãy bắt tay vào xây dựng một thứ gì đó tuyệt vời.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời có thể tạo Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, tất cả trong một để Đội ngũ Nhà phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API