View a markdown version of this page

AgentCore pembayaran mulai cepat - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AgentCore pembayaran mulai cepat

Tutorial ini memandu Anda melalui pengaturan AgentCore pembayaran dan pemrosesan 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, AWS SDK, atau AgentCore CLI secara langsung. AWS

Anda dapat memberikan kredenSIAL dengan dua cara saat Anda membuat konektor Coinbase. Dengan Quick create (disarankan), Anda mengotorisasi melalui Coinbase dan ketentuan AgentCore pembayaran dan menyimpan kredenSIAL untuk Anda — tidak ada kunci untuk dibuat atau ditempel. Dengan Manual, Anda menyediakan kunci API Coinbase yang Anda buat sendiri. Stripe (Privy) hanya menggunakan aliran manual. Dengan Quick create, Anda melewati Langkah 1 dan 2 dari pengaturan manual.

Menggunakan keterampilan AgentCore Pembayaran

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

  • PaymentCredentialProvider— Menyimpan kredentif penyedia pembayaran di AgentCore Identitas.

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

  • Pembayaran Connector — Menghubungkan manajer ke kredensibilitas Anda melalui AgentCore CLI.

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

  • Sesi Pembayaran — Konteks terbatas waktu dengan batas pengeluaran.

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

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • AWS Akun dengan kredenSIAL dikonfigurasi (aws configure)

  • Wil AWS ayah tempat AgentCore pembayaran tersedia — Lihat Wilayah yang Di AWS dukung.

  • Langganan Coinbase AWS Marketplace (hanya Coinbase) — Jika Anda menggunakan Coinbase sebagai penyedia pembayaran Anda, Anda harus berlangganan daftar Coinbase Wallets for Pay AgentCore ments di Marketplace. AWS Dengan langganan ini, biaya penggunaan dompet Coinbase Anda dikonsolidasikan ke dalam AWS tagihan bulanan Anda berdasarkan harga Coinbase di situs web Coinbase. Lihat Ber langganan Dompet Coinbase untuk AgentCore Pembayaran di AWS Marketplace.

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

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

  • Toolkit Agen 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 pasar, 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 dalam aws-agents plugin”

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

  • “Saya perlu menangani 402 tanggapan Pembayaran yang Diperlukan menggunakan agents-build skill in aws-agents plugin”

  • “Hubungi agen saya untuk membayar API yang dilindungi x402 menggunakan agents-build keterampilan dalam 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 ujung ke ujung. 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 menambahkan konektor pembayaran. Untuk Coinbase dengan Quick create (disarankan), Anda mengotorisasi melalui Coinbase dan AgentCore pembayaran menyediakan kredenSIAL untuk Anda — tidak ada rahasia untuk dimasukkan. Untuk manual Coinbase atau Stripe (Privy), Anda berlari agentcore add payment-connector untuk memasukkan rahasia penyedia Anda.

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

  5. Menyampaikan alat pembayaran agnostik kerangka kerja () 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 https://faucet.circle.com/

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

Jika Anda menggunakan alur manual (manual Coinbase atau Stripe Privy), dapatkan kredenSIAL dari penyedia Anda sebelum menambahkan konektor. Dengan Coinbase Quick create, Anda melewatkan ini — Anda mengotorisasi melalui Coinbase alih-alih menempelkan kunci.

Proses yang berhasil menunjukkan agen memanggilx402_fetch, mendeteksi402, menyelesaikan pembayaran melalui AgentCore SDK, dan mencoba 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:

Instal paket yang diperlukan:

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

Verifikasi kredenSIAL Anda telah dikonfigurasi:

aws sts get-caller-identity
Tip

Jika Anda telah 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 kredentif penyedia pembayaran (alur manual)

Langkah 1 dan 2 berlaku untuk alur kredensi manual — Coinbase (manual) atau Stripe (Privy).

catatan

Menggunakan Quick create untuk Coinbase (disarankan). Lewati Langkah 1 dan 2 dan lihat Langkah 3. AgentCore pembayaran menyediakan kredenSIAL Coinbase untuk Anda setelah Anda mengotorisasi melalui Coinbase — Anda tidak mendapatkan atau menyimpan kunci apa pun.

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

contoh
Coinbase CDP
  1. Masuk ke Platform Pengembang Coinbase dan buat atau masuk ke akun Anda. Pilih proyek.

  2. Arahkan ke dasbor Kunci API Anda, pilih Buat Kunci API rahasia, dan catat ID Kunci API dan Rahasia Kunci API. Kembali ke proyek Anda.

  3. Di bawah Produk > Dompet > Non-custodial Dompet > Keamanan, pilih Buat baru di bawah Buat rahasia Dompet dan catat Rahasia Dompet.

  4. Di bawah Produk > Dom pet > Dom Non-custodial pet > Keamanan, aktifkan Penandatanganan yang didelegasikan.

Anda akan menggunakan nilai-nilai ini pada langkah berikutnya:

Kredensimen 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 (mendapatkan alamat, menandatangani transaksi)

Privy
  1. Buat aplikasi Privy khusus di dash board.privy.io. Jangan menggunakan kembali aplikasi yang melayani tujuan lain.

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

  3. Arahkan ke Wallet Infra structure > Authorization dan pilih New Key untuk menghasilkan pasangan P-256 kunci.

Anda akan menggunakan empat nilai ini pada langkah berikutnya:

Kredensimen Deskripsi

App ID

Pengidentifikasi aplikasi Privy Anda

App Secret

Rahasia untuk Auth Dasar server-ke-server

Authorization ID

Pengidentifikasi kunci publik dari pasangan P-256 kunci

Authorization Private Key

Kunci pribadi dari pasangan P-256 kunci

Untuk detail lengkap termasuk praktik terbaik keamanan dan rotasi kredensia, lihat Pras yarat.

Langkah 2: Simpan kredenSIAL di AgentCore Identitas (alur manual)

Simpan kredentif penyedia pembayaran Anda sebagai PaymentCredentialProvider. Ini menyimpan AWS rahasia di Manajer Rahasia daripada di kode aplikasi Anda. Jika Anda menggunakan Coinbase Quick create, lewati langkah ini. AgentCore pembayaran membuat dan menyimpan penyedia kredensia untuk Anda di Langkah 3.

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 CreatePaymentCredentialProvider di Referensi API.

Alternatif CLI: Simpan kredenSIAL

Dengan AgentCore CLI, penyimpanan kredensi terjadi secara otomatis saat 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. Pembayaran Connector menghubungkan manajer ke kredensibilitas penyedia pembayaran Anda. Sebelum membuat sumber daya ini, atur peran IAM yang diperlukan seperti yang dijelaskan dalam Peran IAM untuk AgentCore pembayaran.

Pertama, buat Manajer Pembay aran (umum untuk semua penyedia):

contoh
Console
  1. Buka AgentCore konsol https://console.aws.amazon.com/bedrock-agentcore/ Amazon Bedrock.

  2. Di panel navigasi, di bawah Build, pilih Pay ments.

  3. Pilih Buat Manajer Pembayaran, masukkan Nama, dan di bawah Izin pilih Buat dan gunakan peran layanan baru (atau pilih peran yang ada).

  4. Di bawah Auth Masuk, pilih Gunakan nama pengguna IAM.

  5. Pilih Buat Manajer Pembayaran. Anda menambahkan konektor di bagian penyedia di bawah ini.

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

AgentCore CLI
agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00

Tambahkan konektor di bagian penyedia di bawah ini, lalu jalankanagentcore deploy.

AgentCore SDK
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-west-2") manager = payment_client.create_payment_manager( name="my-first-payment-manager", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", ) PAYMENT_MANAGER_ID = manager["paymentManagerId"]

Gunakan PAYMENT_MANAGER_ID dengan payment_client untuk membuat konektor di bagian penyedia di bawah ini.

AWS CLI
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

Tunggu sampai manajer menjangkauREADY, lalu buat konektor di bagian penyedia di bawah ini.

AWS SDK
import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ID = manager["paymentManagerId"] while client.get_payment_manager(paymentManagerId=PAYMENT_MANAGER_ID)["status"] != "READY": time.sleep(5)

Kemudian buat Pembayaran Connector untuk penyedia Anda. Pilih bagian Coinbase (Buat cepat atau Manual) atau bagian Stripe (Privy).

Coinbase - Buat cepat (disarankan)

Dengan Quick create, Anda tidak mendapatkan atau menyimpan kredenSIAL Coinbase. Di konsol, Anda menyelesaikan ini dengan memilih Quick Create with Coinbase. Dengan AWS CLI, AWS SDK, AgentCore CLI, atau AgentCore SDK, lewati provisionMode=QUICK_CREATE dengan daftar kredensi kosong. Konektor mulai masuk PENDING_AUTHENTICATION dan mengembalikan sebuahauthorizationUrl. Anda membuka yang dikembalikan authorizationUrl di browser. Setelah Anda mengotorisasi melalui Coinbase, AgentCore pembayaran menyediakan kredenSIAL dan memindahkan konektor ke. READY

contoh
Console
  1. Di bagian Pembayaran konektor, pilih Tambahkan autentikasi keluar > Buat autentikasi pembayaran, dan untuk Penyedia pembayaran pilih Coinbase.

  2. Pilih Cepat buat konfigurasi - disarankan, lalu pilih Buat autentikasi pembayaran.

  3. Jendela Coinbase terbuka — masuk atau daftar dan otorisasi (tautkan) akun CDP Coinbase Anda.

  4. AgentCore pembayaran menyediakan kunci Coinbase CDP API dan rahasia Dompet dan menyimpannya untuk Anda. Konektor bergerak dari PENDING_AUTHENTICATION keREADY.

AgentCore CLI
agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --provision-mode QUICK_CREATE agentcore deploy

CLI membuka alur otorisasi Coinbase. Setelah Anda mengotorisasi, layanan menyediakan kredenSIAL dan konektor mencapaiREADY.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[], provision_mode="QUICK_CREATE", ) # Open connector["authorizationUrl"], authorize through Coinbase, # then poll get_payment_connector until status == "READY".
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[]' \ --provision-mode QUICK_CREATE \ --region us-west-2

Tanggapannya termasuk status: PENDING_AUTHENTICATION danauthorizationUrl. Buka URL di browser dan lengkapi otorisasi Coinbase, lalu jajak pendapat hingga konektornyaREADY:

aws bedrock-agentcore-control get-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --payment-connector-id "<PAYMENT_CONNECTOR_ID>" \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[], provisionMode="QUICK_CREATE", ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(connector["status"], connector.get("authorizationUrl")) # PENDING_AUTHENTICATION https://... # Open the authorizationUrl, authorize, then poll get_payment_connector until READY.

Coinbase — Manual

Gunakan kredentif Coinbase CDP yang Anda buat sendiri (Langkah 1—2). Buat penyedia kredensi, lalu buat konektor yang mereferensikan ARN-nya. Untuk panduan manual Kon sol atau AgentCore CLI, lihat Membuat Manajer Pembayaran dan Konektor.

contoh
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_API_KEY_ID> \ --api-key-secret <YOUR_API_KEY_SECRET> \ --wallet-secret <YOUR_WALLET_SECRET> agentcore deploy

CLI menyimpan kredenSIAL di AgentCore Identity dan membuat konektor saat Anda menjalankanagentcore deploy.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[ {"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[{"coinbaseCDP":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[{"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

Stripe (Privy) - Manual

Stripe (Privy) hanya menggunakan alur manual. Buat penyedia kredensia dari kredenSIAL Privy Anda (Langkah 1—2), lalu buat konektor yang mereferensikan ARN-nya. Untuk panduan manual Kon sol atau AgentCore CLI, lihat Membuat Manajer Pembayaran dan Konektor.

contoh
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_APP_ID> \ --app-secret <YOUR_APP_SECRET> \ --authorization-id <YOUR_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVATE_KEY_BASE64> agentcore deploy

CLI menyimpan kredenSIAL di AgentCore Identity dan membuat konektor saat Anda menjalankanagentcore deploy.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-privy-connector", connector_type="StripePrivy", credential_provider_configurations=[ {"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-privy-connector" \ --type StripePrivy \ --credential-provider-configurations '[{"stripePrivy":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-privy-connector", type="StripePrivy", credentialProviderConfigurations=[{"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

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 CreatePaymentManager dan CreatePaymentConnector di Referensi API AgentCore Kontrol Amazon Bedrock.

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 tanggapan.

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 CreatePaymentInstrument di Referensi API.

Danai dompet dan berikan 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

  • Berikan izin agen untuk menandatangani transaksi atas nama mereka

Untuk lingkungan pengujian, danai dompet dengan testnet USDC.

Setelah pendanaan, jajak pendapat status instrumen sampai 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 Pendanaan dompet.

Langkah 5: Buat sesi pembayaran

Sesi pembayaran adalah konteks terbatas 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. Teruskan --auto-session ke agentcore invoke dan CLI membuat atau menggunakan kembali sesi dengan batas pengeluaran default yang Anda konfigurasikan pada pengelola 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, lewati al --payment-session-id ih-alih--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 CreatePaymentSession di Referensi API.

Langkah 6: Memproses 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 kembali permintaan.

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 melewati sesi eksplisit alih-alih membuat sesi secara 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

Panggil 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 ProcessPayment di 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 ProcessPayment di 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 pengaturan berbasis keterampilan dan manual.

Isu Solusi

Manajer Pembayaran terjebak dalam MEMBUAT

Tunggu hingga 2 menit. Jika pindah ke CREATE_FAILED, periksa apakah ARN peran layanan Anda dan izin 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 batas waktu yang lebih lama atau batas pengeluaran yang lebih tinggi.

“CredentialProvider tidak ditemukan”

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

ProcessPayment mengembalikan GAGAL

Periksa apakah 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

Per remove intah memperbarui konfigurasi lokal. Tindak deploy lanjut meruntuhkan infrastruktur pembayaran di akun Anda.

AgentCore SDK
from bedrock_agentcore.payments.client 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— Kredentif penyedia pembayaran disimpan di AgentCore Identitas

  • PaymentManager— Top-level sumber daya mengoordinasikan operasi pembayaran

  • 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