本目录包含 AP2(智能体支付协议)实现的示例代码。
AP2 是基于 ANP(智能体协商协议)构建的协议,用于智能体之间的安全支付和交易流程。支持多种签名算法,包括 RS256 和 ES256K。
文件: ap2_complete_flow.py
同时启动商户服务与购物者客户端,快速回放从 CartMandate 创建到收据发放的完整 AP2 流程。
运行:
uv run python examples/python/ap2_examples/ap2_complete_flow.py文件: merchant_server.py, shopper_client.py
将职责拆分成两个独立进程,便于分别调试 HTTP API、部署到不同主机或演示真实网络交互。
运行步骤:
-
终端 A:启动商户服务(默认绑定本机 IP)
uv run python examples/python/ap2_examples/merchant_server.py
可选参数:
--host 0.0.0.0、--port 8889 -
终端 B:启动购物者客户端,并指向商户 URL
uv run python examples/python/ap2_examples/shopper_client.py \ --merchant-url http://<merchant-host>:<port> \ --merchant-did did:wba:didhost.cc:public
若使用仓库内置的公用 DID/证书,上述参数可省略,默认即为本地演示配置。
文件: merchant_agent.py, shopper_agent.py
封装了常用的构建/验证逻辑,不包含 HTTP 服务。可在更复杂的集成场景或测试中直接复用。
| 算法 | 描述 | 密钥类型 | 签名大小 | 使用场景 |
|---|---|---|---|---|
| RS256 | 使用 SHA-256 的 RSASSA-PKCS1-v1_5 | RSA (2048+ 位) | ~256 字节 | 通用场景 |
| ES256K | 使用 secp256k1 和 SHA-256 的 ECDSA | EC (secp256k1) | ~70 字节 | 区块链/加密货币 |
- 包含购物车信息
- 由商户使用
merchant_authorization签名 - 包含二维码支付数据
- 由购物者验证
- 包含支付确认信息
- 由用户使用
user_authorization签名 - 通过
cart_hash引用 CartMandate - 由商户验证
所有示例需要:
pyjwt- JWT 编码/解码cryptography- 加密原语pydantic- 数据验证
这些依赖已包含在项目依赖中。
添加新示例时:
- 遵循现有代码结构
- 包含详细注释
- 添加错误处理
- 更新本 README
- 提交前测试示例