View a markdown version of this page

AgentCore pembayaran mulai cepat - Batuan Dasar Amazon AgentCore

AgentCore pembayaran mulai cepat

Tutorial ini memandu Anda melalui pengaturan AgentCore pembayaran dan memproses transaksi mikro pertama Anda. Pada akhirnya, agen Anda akan membayar sumber daya menggunakan protokol x402 pada jaringan uji.

Anda dapat mengatur pembayaran dengan dua cara:

  • Menggunakan keterampilan AgentCore Pembayaran — Pengalaman pengaturan otomatis yang menyediakan semua sumber daya melalui percakapan terpandu dengan agen pengkodean AI seperti Kiro, Claude Code, atau Codex. Keterampilan ini menangani perintah CLI, skrip SDK, dan kabel kerangka kerja untuk Anda.

  • Menggunakan CLI, SDK, atau Boto3 - Pengaturan manual langkah demi langkah menggunakan CLI, SDK, AWS atau AgentCore CLI secara langsung. AWS

Menggunakan keterampilan AgentCore Pembayaran

Keterampilan AgentCore Pembayaran mengotomatiskan seluruh proses penyiapan melalui pengalaman interaktif dan terpandu. Ini menyediakan sumber daya berikut:

  • PaymentCredentialProvider— Menyimpan kredensi penyedia pembayaran di AgentCore Identity.

  • Manajer Pembayaran — Sumber daya tingkat atas yang mengoordinasikan operasi pembayaran.

  • Konektor Pembayaran - Menautkan manajer ke kredensil Anda melalui CLI AgentCore .

  • Instrumen Pembayaran — Dompet kripto yang digunakan agen Anda untuk membayar pedagang atas nama pengguna.

  • Sesi Pembayaran — Konteks yang dibatasi waktu dengan batas pengeluaran.

Keterampilan ini juga menghubungkan pembayaran ke agen Anda dengan alat kerangka agnostik, sehingga berfungsi dengan Strands,, LangGraph OpenAI Agents SDK, atau kerangka kerja Python apa pun.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • AWS Akun dengan kredensi yang dikonfigurasi () aws configure

  • AWS Wilayah di mana AgentCore pembayaran tersedia — us-east-1, us-west-2, eu-central-1, atau ap-southeast-2. Lihat AWS Wilayah yang Didukung.

  • Node.js 20+ diinstal (keterampilan menginstal CLI AgentCore secara otomatis)

  • Agen yang mengakses titik akhir berbayar — Keterampilan ini memungkinkan agen Anda membayar API yang dilindungi x402. Untuk pengujian, Anda dapat menggunakan https://sandbox.node4all.com/v1/x402-test endpoint sandbox.

  • Agen Toolkit untuk AWS aws-agents plugin yang diinstal di agen pengkodean AI Anda:

    contoh
    Claude Code
    /plugin marketplace add aws/agent-toolkit-for-aws /plugin install aws-agents@agent-toolkit-for-aws
    Codex

    Plugin ditemukan secara otomatis dari manifes pasar. Untuk menambahkan marketplace, jalankan perintah berikut:

    codex plugin marketplace add aws/agent-toolkit-for-aws

Memanggil keterampilan

Keterampilan pembayaran adalah bagian dari agents-build keterampilan dalam Toolkit Agen untuk AWS. Untuk memicunya, jelaskan maksud Anda di agen pengkodean AI Anda. Contoh:

  • “Tambahkan pembayaran ke agen saya menggunakan agents-build keterampilan di aws-agents plugin”

  • “Siapkan transaksi mikro untuk agen saya menggunakan agents-build keterampilan di aws-agents plugin”

  • “Saya perlu menangani 402 Tanggapan Pembayaran yang Diperlukan menggunakan agents-build keterampilan di aws-agents plugin”

  • “Kawat agen saya untuk membayar API yang dilindungi x402 menggunakan agents-build skill in plugin” aws-agents

Keterampilan mendeteksi maksud terkait pembayaran dan memuat alur kerja pembayaran secara otomatis.

Apa yang dilakukan keterampilan

Keterampilan menjalankan proses otomatis yang menyediakan infrastruktur pembayaran Anda secara end-to-end. Keterampilan menjalankan sebagian besar langkah secara otomatis dan berhenti dua kali untuk masukan Anda:

  1. Memverifikasi atau menginstal AgentCore CLI dan menyiapkan proyek

  2. Membuat manajer pembayaran

  3. Jeda - Anda menjalankan agentcore add payment-connector untuk memasukkan rahasia penyedia Anda (kredensi Coinbase CDP atau Stripe Privy)

  4. Menyebarkan sumber daya ke AWS akun Anda () agentcore deploy -y

  5. Menghubungkan alat pembayaran kerangka kerja agnostik () ke agen Anda x402_payment_tool.py

  6. Membuat dompet per pengguna (instrumen) dan sesi terbatas anggaran melalui SDK

  7. Jeda - Anda mengotorisasi dompet (delegasi) dan mendanainya dengan testnet USDC dari situs web faucet Circle

  8. Menetapkan variabel lingkungan dan menjalankan pembayaran uji terhadap titik akhir berbayar

Sebelum menjalankan perintah konektor, dapatkan kredensi dari penyedia Anda:

Jalankan yang berhasil menunjukkan agen meneleponx402_fetch, mendeteksi402, menyelesaikan pembayaran melalui AgentCore SDK, dan coba lagi kembali 200 dengan konten berbayar.

Menggunakan CLI, SDK, atau Boto3

Bagian ini memandu Anda melalui setiap langkah secara manual menggunakan AgentCore CLI, AWS CLI, atau AWS SDK (Boto3).

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • AWS Akun dengan kredensi yang dikonfigurasi () aws configure

  • Python 3.10+ diinstal

  • AWS Wilayah di mana AgentCore pembayaran tersedia — us-east-1, us-west-2, eu-central-1, atau ap-southeast-2. Lihat AWS Wilayah yang Didukung.

Instal paket yang diperlukan:

pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools

Verifikasi kredenal Anda dikonfigurasi:

aws sts get-caller-identity
Tip

Jika Anda menginstal AgentCore CLI v0.19.0 atau yang lebih baru, Anda dapat menggunakan perintah CLI sebagai alternatif SDK di Langkah 2, 3, 5, dan 6. Setiap langkah di bawah ini menunjukkan kedua opsi.

Langkah 1: Dapatkan kredensi penyedia pembayaran

AgentCore pembayaran terhubung ke penyedia pembayaran eksternal untuk operasi dompet. Anda memerlukan kredensi dari salah satu penyedia yang didukung sebelum melanjutkan.

contoh
Coinbase CDP
  1. Masuk ke Platform Pengembang Coinbase dan buat atau pilih proyek.

  2. Buat kunci API dan catat ID Kunci API, Rahasia Kunci API, dan Rahasia Dompet.

  3. Di bawah Project > Wallets > Non-custodial Wallet > Security, aktifkan penandatanganan Delegasi.

Anda akan menggunakan tiga nilai ini di langkah berikutnya:

Kredensi Deskripsi

API Key ID

Pengidentifikasi publik untuk proyek CDP Anda

API Key Secret

Rahasia pribadi untuk menandatangani permintaan API

Wallet Secret

Rahasia untuk operasi dompet kriptografi (memperoleh alamat, menandatangani transaksi)

Privy
  1. Buat aplikasi Privy khusus di dashboard.privy.io. Jangan gunakan kembali aplikasi yang melayani tujuan lain.

  2. Salin ID Aplikasi dan Rahasia Aplikasi dari setelan aplikasi Anda.

  3. Arahkan ke Wallet Infrastructure > Authorization dan pilih New Key untuk menghasilkan P-256 key pair.

Anda akan menggunakan empat nilai ini di langkah berikutnya:

Kredensi Deskripsi

App ID

Pengidentifikasi aplikasi Privy Anda

App Secret

Rahasia untuk Auth Dasar server-ke-server

Authorization ID

Pengidentifikasi kunci publik dari P-256 key pair

Authorization Private Key

Kunci pribadi dari P-256 key pair

Untuk detail selengkapnya termasuk praktik terbaik keamanan dan rotasi kredensi, lihat Prasyarat.

Langkah 2: Simpan kredensi di Identitas AgentCore

Simpan kredensi penyedia pembayaran Anda sebagai. PaymentCredentialProvider Ini menyimpan AWS rahasia di Secrets Manager daripada di kode aplikasi Anda.

contoh
Coinbase CDP
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-coinbase-credentials", credentialProviderVendor="CoinbaseCDP", coinbaseCdpConfig={ "apiKeyId": "<YOUR_CDP_API_KEY_ID>", "apiKeySecret": "<YOUR_CDP_API_KEY_SECRET>", "walletSecret": "<YOUR_CDP_WALLET_SECRET>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")
Privy
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-privy-credentials", credentialProviderVendor="StripePrivy", stripePrivyConfig={ "appId": "<YOUR_PRIVY_APP_ID>", "appSecret": "<YOUR_PRIVY_APP_SECRET>", "authorizationId": "<YOUR_PRIVY_AUTHORIZATION_ID>", "authorizationPrivateKey": "<YOUR_PRIVY_PRIVATE_KEY_BASE64>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")

Untuk skema permintaan dan respons lengkap, lihat CreatePaymentCredentialProviderdi Referensi API.

Alternatif CLI: Kredensi toko

Dengan AgentCore CLI, penyimpanan kredensi terjadi secara otomatis ketika Anda menambahkan konektor pembayaran (Langkah 3). Lewati langkah ini jika Anda berencana untuk menggunakan jalur CLI.

Langkah 3: Buat Manajer Pembayaran dan Konektor

Manajer Pembayaran adalah sumber daya tingkat atas yang mengoordinasikan operasi pembayaran. Konektor Pembayaran menautkan manajer ke kredensi penyedia pembayaran Anda. Sebelum membuat sumber daya ini, siapkan peran IAM yang diperlukan seperti yang dijelaskan dalam peran IAM untuk AgentCore pembayaran.

contoh
Console

Untuk panduan lengkap konsol termasuk otorisasi JWT dan klaim khusus, lihat Membuat Manajer Pembayaran dan Konektor.

  1. Buka AgentCore konsol Amazon Bedrock.

  2. Di panel navigasi, di bawah Build, pilih Pembayaran.

  3. Pilih Buat Manajer Pembayaran.

  4. Masukkan Nama untuk Manajer Pembayaran Anda.

  5. Di bawah Izin, pilih Buat dan gunakan peran layanan baru (atau pilih peran yang ada).

  6. Di bawah Inbound Auth, pilih Gunakan nama pengguna IAM untuk otorisasi IAM.

  7. (Opsional) Di bagian Konektor pembayaran, pilih nama untuk konektor dan pilih autentikasi keluar yang ada atau buat yang baru dengan memilih penyedia Anda (Coinbase atau Stripe Privy) dan masukkan kredensil Anda.

  8. Pilih Buat Manajer Pembayaran.

AgentCore CLI

CLI menciptakan penyedia kredensi, Manajer Pembayaran, dan Konektor Pembayaran dalam satu aliran. Dari direktori AgentCore proyek Anda, tambahkan manajer pembayaran dan konektor bersama-sama.

Wisaya interaktif:

agentcore add payment-manager

Wizard meminta nama manajer, pola (pencegat), sakelar pembayaran otomatis, dan batas pengeluaran default. Kemudian menanyakan apakah akan menambahkan konektor dan berjalan melalui pemilihan penyedia dan input kredenal.

Non-interactive (CDP Coinbase):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_CDP_API_KEY_ID> \ --api-key-secret <YOUR_CDP_API_KEY_SECRET> \ --wallet-secret <YOUR_CDP_WALLET_SECRET>

Non-interactive (Penasihat):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_PRIVY_APP_ID> \ --app-secret <YOUR_PRIVY_APP_SECRET> \ --authorization-id <YOUR_PRIVY_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVY_PRIVATE_KEY_BASE64>

Setelah menambahkan, gunakan untuk menyediakan infrastruktur pembayaran:

agentcore deploy

Langkah penerapan membuat peran IAM, menyimpan kredensi di AgentCore Identity, dan menyediakan Manajer Pembayaran dan Konektor. Anda akan melihat “Membuat infrastruktur pembayaran...” di output.

AgentCore SDK

AgentCore SDK membuat Manajer Pembayaran, penyedia kredensi, dan konektor dalam satu panggilan.

from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") response = payment_client.create_payment_manager_with_connector( payment_manager_name="my-first-payment-manager", payment_manager_description="Payment manager for my agent.", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", payment_connector_config={ "name": "my-coinbase-connector", "description": "Coinbase CDP connector", "payment_credential_provider_config": { "name": "my-coinbase-provider", "credential_provider_vendor": "CoinbaseCDP", "credentials": { "api_key_id": "<YOUR_CDP_API_KEY_ID>", "api_key_secret": "<YOUR_CDP_API_KEY_SECRET>", "wallet_secret": "<YOUR_CDP_WALLET_SECRET>", }, }, }, wait_for_ready=True, max_wait=300, poll_interval=5, ) PAYMENT_MANAGER_ARN = response["paymentManager"]["paymentManagerArn"] PAYMENT_CONNECTOR_ID = response["paymentConnector"]["paymentConnectorId"] print(f"Payment Manager ARN: {PAYMENT_MANAGER_ARN}") print(f"Connector ID: {PAYMENT_CONNECTOR_ID}")

Untuk Stripe Privy, ganti payment_credential_provider_config dengan credential_provider_vendor: "StripePrivy" dan kredenal Privy yang sesuai.

AWS CLI

Buat Manajer Pembayaran:

aws bedrock-agentcore-control create-payment-manager \ --name "my-first-payment-manager" \ --authorizer-type AWS_IAM \ --role-arn "<YOUR_SERVICE_ROLE_ARN>" \ --region us-west-2

Setelah manajer mencapai READY status, buat penyedia kredensi dan konektor. Lihat Membuat Manajer Pembayaran dan Konektor untuk alur kerja AWS CLI selengkapnya.

AWS SDK

Pertama, buat Manajer Pembayaran (sama untuk kedua penyedia):

import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ARN = manager["paymentManagerArn"] print(f"Payment Manager created: {PAYMENT_MANAGER_ARN}") # Wait for the manager to reach READY state while True: status = client.get_payment_manager(paymentManagerArn=PAYMENT_MANAGER_ARN) if status["status"] == "READY": break print(f"Status: {status['status']}... waiting") time.sleep(5)

Kemudian buat Konektor Pembayaran untuk penyedia Anda:

CDP Coinbase:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-coinbase-connector", paymentConnectorType="CoinbaseCDP", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

Penasihat:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-privy-connector", paymentConnectorType="StripePrivy", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

Jika Anda tidak memiliki peran layanan, lihat peran IAM untuk AgentCore pembayaran untuk petunjuk cara membuatnya. Konsol juga dapat membuat peran atas nama Anda. Untuk skema permintaan dan respons lengkap, lihat CreatePaymentManagerdan CreatePaymentConnectordi Referensi API.

Langkah 4: Buat instrumen pembayaran

Instrumen pembayaran adalah dompet kripto tertanam yang digunakan agen Anda untuk membayar pedagang atas nama pengguna. Setiap instrumen dikaitkan dengan jaringan blockchain tertentu.

contoh
AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) instrument = manager.create_payment_instrument( user_id="test-user-123", payment_connector_id=PAYMENT_CONNECTOR_ID, payment_instrument_type="EMBEDDED_CRYPTO_WALLET", payment_instrument_details={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")
AWS CLI
aws bedrock-agentcore create-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --user-id "test-user-123" \ --payment-instrument-type "EMBEDDED_CRYPTO_WALLET" \ --payment-instrument-details '{ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }' \ --client-token "$(uuidgen)" \ --region us-west-2

Simpan paymentInstrumentId dan redirectUrl dari respon.

AWS SDK
import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")

Untuk skema permintaan dan respons lengkap, lihat CreatePaymentInstrumentdi Referensi API.

Mendanai dompet dan memberikan izin

Sebelum agen dapat bertransaksi, pengguna akhir harus mendanai dompet dan memberikan izin penandatanganan. Buka redirectUrl dari respons di atas di browser. Dari hub dompet, pengguna dapat:

  • Isi ulang dompet menggunakan transfer kripto, credit/debit kartu, Apple Pay, Google Pay, atau ACH

  • Memberikan izin agen untuk menandatangani transaksi atas nama mereka

Untuk lingkungan pengujian, danai dompet dengan testnet USDC.

Setelah pendanaan, jajak pendapat status instrumen hingga menjadiACTIVE:

contoh
AgentCore SDK
instrument = manager.get_payment_instrument( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Status: {instrument['status']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
while True: inst_status = dp_client.get_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) if inst_status["status"] == "ACTIVE": print("Instrument is active and funded.") break print(f"Instrument status: {inst_status['status']}... waiting for funding") time.sleep(10)

Untuk detail selengkapnya tentang aliran pendanaan menurut penyedia, lihat Mendanai dompet.

Langkah 5: Buat sesi pembayaran

Sesi pembayaran adalah konteks yang dibatasi waktu dengan batas pengeluaran opsional. Ketika sesi berakhir atau anggaran habis, agen tidak dapat melakukan pembayaran lebih lanjut dalam sesi itu.

contoh
AgentCore CLI

Saat menggunakan CLI, Anda tidak perlu membuat sesi secara manual. Lulus --auto-session ke agentcore invoke dan CLI membuat atau menggunakan kembali sesi dengan batas pengeluaran default yang Anda konfigurasikan pada manajer pembayaran.

agentcore invoke \ --prompt "your prompt here" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

Untuk menggunakan sesi tertentu yang Anda buat melalui SDK, teruskan --payment-session-id saja. --auto-session

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) session = manager.create_payment_session( user_id="test-user-123", limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, expiry_time_in_minutes=60 ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")
AWS CLI
aws bedrock-agentcore create-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --user-id "test-user-123" \ --expiry-time-in-minutes 60 \ --limits '{"maxSpendAmount": {"value": "5.00", "currency": "USD"}}' \ --client-token "$(uuidgen)" \ --region us-west-2
AWS SDK
session = dp_client.create_payment_session( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, expiryTimeInMinutes=60, limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, clientToken=str(uuid.uuid4()), ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")

Untuk skema permintaan dan respons lengkap, lihat CreatePaymentSessiondi Referensi API.

Langkah 6: Proses pembayaran dengan agen Strands

Dengan semua sumber daya di tempat, buat agen Strands yang menangani pembayaran x402 secara otomatis. Ketika agen memanggil titik akhir berbayar dan menerima respons HTTP 402, plugin pembayaran menandatangani transaksi dan mencoba ulang permintaan tersebut.

contoh
AgentCore CLI

Panggil agen yang Anda gunakan dengan konteks pembayaran. CLI meneruskan instrumen pembayaran dan sesi ke agen saat runtime, dan pencegat x402 agen menangani pembayaran secara otomatis.

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

Untuk meneruskan sesi eksplisit alih-alih membuat sesi otomatis:

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --payment-session-id <SESSION_ID> \ --payment-user-id test-user-123
AgentCore SDK

Gunakan PaymentManager kelas untuk menghasilkan header pembayaran saat Anda menerima respons HTTP 402:

import uuid from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) # When you receive a 402 response, generate payment proof payment_required_request = { "statusCode": 402, "headers": payment_required["headers"], "body": payment_required["body"], } payment_proof_headers = manager.generate_payment_header( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, payment_required_request=payment_required_request, client_token=str(uuid.uuid4()), )

payment_proof_headersberisi header bukti pembayaran. Sertakan header ini saat mencoba kembali permintaan ke titik akhir berbayar.

AWS CLI

Hubungi process-payment langsung dengan payload x402 (digunakan saat Anda menangani orkestrasi pembayaran sendiri):

aws bedrock-agentcore process-payment \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --payment-instrument-id "$INSTRUMENT_ID" \ --payment-type "CRYPTO_X402" \ --payment-input '{ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0xMERCHANT_ADDRESS", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"} } } }' \ --client-token "$(uuidgen)" \ --region us-west-2

Untuk skema permintaan dan respons lengkap, lihat ProcessPaymentdi Referensi API.

AWS SDK
from strands import Agent from strands_tools import http_request from bedrock_agentcore.payments.integrations.config import AgentCorePaymentsPluginConfig from bedrock_agentcore.payments.integrations.strands.plugin import AgentCorePaymentsPlugin config = AgentCorePaymentsPluginConfig( payment_manager_arn=PAYMENT_MANAGER_ARN, user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, region="us-west-2", ) plugin = AgentCorePaymentsPlugin(config=config) agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # The agent handles 402 responses automatically response = agent("Access the premium endpoint at https://example-x402-merchant.com/paid-api") print(response)

Untuk skema permintaan dan respons lengkap dari panggilan API yang mendasarinya, lihat ProcessPaymentdi Referensi API.

Verifikasi pembayaran

Setelah agen memproses pembayaran, periksa sesi untuk mengonfirmasi transaksi dicatat:

contoh
AgentCore SDK
session = manager.get_payment_session( user_id="test-user-123", payment_session_id=SESSION_ID ) print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")

Anda juga dapat memeriksa saldo instrumen:

balance = manager.get_payment_instrument_balance( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")
AWS CLI
aws bedrock-agentcore get-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --region us-west-2 aws bedrock-agentcore get-payment-instrument-balance \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
session_status = dp_client.get_payment_session( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId=SESSION_ID ) print(f"Session status: {session_status['status']}") print(f"Amount spent: {session_status.get('spentAmount', '0.00')} USD")

Anda juga dapat memeriksa saldo instrumen:

balance = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")

Pemecahan masalah

Masalah berikut berlaku untuk jalur penyiapan berbasis keterampilan dan manual.

Isu Solusi

Manajer Pembayaran terjebak dalam MENCIPTAKAN

Tunggu hingga 2 menit. Jika pindah ke CREATE_FAILED, periksa apakah ARN dan izin peran layanan Anda sudah benar.

“PaymentInstrument tidak aktif”

Pengguna akhir harus mendanai dompet dan memberikan izin penandatanganan melalui URL pengalihan sebelum agen dapat bertransaksi.

“Sesi kedaluwarsa atau anggaran terlampaui”

Buat sesi pembayaran baru dengan kadaluwarsa yang lebih lama atau batas pengeluaran yang lebih tinggi.

“CredentialProvider tidak ditemukan”

Verifikasi penyedia kredensi ARN cocok dengan apa yang Anda buat di Langkah 2. Pastikan wilayah konsisten di semua panggilan.

ProcessPayment mengembalikan GAGAL

Pastikan dompet memiliki saldo USDC yang cukup untuk jumlah transaksi ditambah biaya gas.

Pembersihan

Hapus sumber daya yang Anda buat selama tutorial ini:

contoh
AgentCore CLI
agentcore remove payment-connector --manager my-payment-manager --name my-coinbase-connector --yes agentcore remove payment-manager --name my-payment-manager --yes agentcore deploy

removePerintah memperbarui konfigurasi lokal. Tindak lanjut deploy meruntuhkan infrastruktur pembayaran di akun Anda.

AgentCore SDK
from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") payment_client.delete_payment_manager( payment_manager_id="<paymentManagerId>" ) print("Payment Manager deleted.")
AWS CLI
aws bedrock-agentcore delete-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-connector \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-manager \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --region us-west-2
AWS SDK
# Delete payment instrument dp_client.delete_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) # Delete payment connector client.delete_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID ) # Delete payment manager client.delete_payment_manager( paymentManagerArn=PAYMENT_MANAGER_ARN ) print("All payment resources deleted.")

Apa yang telah Anda bangun

Melalui tutorial ini, Anda membuat:

  • PaymentCredentialProvider— Kredensi penyedia pembayaran yang disimpan dalam Identitas AgentCore

  • PaymentManager— Top-level operasi pembayaran koordinasi sumber daya

  • PaymentConnector— Integrasi antara manajer Anda dan penyedia pembayaran eksternal

  • PaymentInstrument— Dompet kripto tertanam, didanai dan disahkan oleh pengguna akhir

  • PaymentSession— Konteks pembayaran terbatas waktu dan terbatas anggaran

  • Strands Agent — Agen AI yang menangani pembayaran x402 secara otomatis

Langkah selanjutnya