

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建付款会话
<a name="payments-create-session"></a>

付款会话是一种有时限的付款环境，可以选择强制执行支出预算。当会话到期或达到预算时，该会话内的其他付款请求将被拒绝。有关完整的请求和响应架构，请参阅 API 参考[CreatePaymentSession](https://docs.amazonaws.cn/bedrock-agentcore/latest/APIReference/API_CreatePaymentSession.html)中的。

**提示**  
您可以使用 Amazon 代理工具包中的 AgentCore 付款技能自动执行此页面上的步骤。该技能是 ** aws-agents ** 插件的一部分，它允许 AI 编码代理使用 `agentcore` CLI 创建您的支付管理器、连接器、凭证提供商、支付工具和会话，并为您的代理添加流程付款工具。有关详细信息，请参阅上的[ GitHub](payments-getting-started.md)[快速入门和](https://github.com/aws/agent-toolkit-for-aws/tree/main)Amazon 代理工具包。

**Example**  

```
from bedrock_agentcore.payments import PaymentManager

manager = PaymentManager(
    payment_manager_arn=mgr["paymentManagerArn"],
    region_name="us-west-2"
)

# Create payment session with payment limits
session = manager.create_payment_session(
    user_id="test-user-123",
    limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}},
    expiry_time_in_minutes=60
)
```

```
aws bedrock-agentcore create-payment-session \
    --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \
    --user-id "test-user-123" \
    --expiry-time-in-minutes 60 \
    --limits '{"maxSpendAmount": {"value": "100.00", "currency": "USD"}}' \
    --client-token "$(uuidgen)" \
    --region us-west-2
```

```
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 session with payment limits
session = dp_client.create_payment_session(
    userId="test-user-123",
    paymentManagerArn=PAYMENT_MANAGER_ARN,
    expiryTimeInMinutes=120,
    limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}},
    clientToken=str(uuid.uuid4()),
)
```

**提示**  
如果您使用 AgentCore CLI (v0.19.0\+)，请传递`--auto-session``agentcore invoke`到创建或重复使用付款管理器上配置的默认支出限额的会话。这样就无需为大多数工作流程手动创建会话。

## 获取付款会话
<a name="payments-create-session-get"></a>

**Example**  

```
session = manager.get_payment_session(
    user_id="test-user-123",
    payment_session_id="payment-session-abc123"
)
print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")
```

```
aws bedrock-agentcore get-payment-session \
    --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \
    --payment-session-id "payment-session-abc123" \
    --region us-west-2
```

```
response = dp_client.get_payment_session(
    paymentManagerArn=PAYMENT_MANAGER_ARN,
    paymentSessionId="payment-session-abc123"
)
print(f"Status: {response['status']}")
print(f"Spent: {response['spentAmount']} / {response['limits']['maxSpendAmount']['value']}")
```