View a markdown version of this page

创建付款工具 - Amazon Bedrock AgentCore

创建付款工具

支付工具代表一种嵌入式加密钱包,代理使用该钱包代表用户向商家付款。每种工具都与特定的区块链网络相关联。ETHEREUM网络价值涵盖以太坊主网和所有支持的 EVM-compatible 第 2 层网络(Base、Arbitrum 等)。有关完整的请求和响应架构,请参阅 API 参考CreatePaymentInstrument中的。

提示

您可以使用 AWS 代理工具包中的 “ AgentCore 付款” 技能自动执行此页面上的步骤。该技能是 aws- agents 插件的一部分,它允许 AI 编码代理使用 CL agentcore I 创建您的支付管理器、连接器、凭证提供商、支付工具和会话,并向您的代理添加 x402 支付工具。有关详细信息,请参阅上的快速入门和AWS 代理工具包。 GitHub

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=mgr["paymentManagerArn"], region_name="us-west-2" ) # Create payment instrument (Ethereum) 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": "myemail@example.com" } }] }}, )

对于与 Solana 兼容的链,请使用枚举SOLANA进行网络输入。

AWS CLI
aws bedrock-agentcore create-payment-instrument \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-connector-id "my-connector-id" \ --user-id "test-user-123" \ --payment-instrument-type "EMBEDDED_CRYPTO_WALLET" \ --payment-instrument-details '{ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "myemail@example.com"}}] } }' \ --client-token "$(uuidgen)" \ --region us-west-2

对于与 Solana 兼容的链,请使用"network": "SOLANA"

AWS SDK
import boto3 import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") # Create payment instrument (Ethereum) 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": "myemail@example.com" } }] }, }, clientToken=str(uuid.uuid4()), )

对于与 Solana 兼容的链,请使用枚举SOLANA进行网络输入。

注意

支付工具创建后,最终用户必须为该工具注资并授予签名权限,然后代理才能处理付款。有关详细说明,请参阅向钱包注资并授予代理权限

获取付款工具

AgentCore SDK
instrument = manager.get_payment_instrument( user_id="test-user-123", payment_instrument_id="payment-instrument-abc123" ) print(f"Status: {instrument['status']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-instrument-id "payment-instrument-abc123" \ --user-id "test-user-123" \ --region us-west-2
AWS SDK
response = dp_client.get_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId="payment-instrument-abc123" ) print(f"Status: {response['status']}, Network: {response['paymentInstrumentDetails']['embeddedCryptoWallet']['network']}")

列出付款工具

AgentCore SDK
instruments = manager.list_payment_instruments( user_id="test-user-123" ) for inst in instruments['paymentInstruments']: print(f"{inst['paymentInstrumentId']} - {inst['status']}")
AWS CLI
aws bedrock-agentcore list-payment-instruments \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --user-id "test-user-123" \ --region us-west-2
AWS SDK
response = dp_client.list_payment_instruments( paymentManagerArn=PAYMENT_MANAGER_ARN, userId="test-user-123" ) for inst in response['paymentInstruments']: print(f"{inst['paymentInstrumentId']} - {inst['status']}")

检查仪器平衡

AgentCore SDK
balance = manager.get_payment_instrument_balance( user_id="test-user-123", payment_instrument_id="payment-instrument-abc123" ) print(f"Balance: {balance['amount']} {balance['currency']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument-balance \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-instrument-id "payment-instrument-abc123" \ --region us-west-2
AWS SDK
response = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId="payment-instrument-abc123" ) print(f"Balance: {response['amount']} {response['currency']}")

删除付款工具

AgentCore SDK
manager.delete_payment_instrument( user_id="test-user-123", payment_instrument_id="payment-instrument-abc123" )
AWS CLI
aws bedrock-agentcore delete-payment-instrument \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-instrument-id "payment-instrument-abc123" \ --region us-west-2
AWS SDK
dp_client.delete_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId="payment-instrument-abc123" )