快速上手
🚀 快速开始指南
本指南将帮助您快速开始 Agentic Commerce Protocol (ACP) 的集成,从申请访问到完成基础实现。
第一步:申请访问权限
商户申请
- 访问 ChatGPT 商户申请页面
- 填写完整的商户信息:
- 公司基本信息
- 产品类别和规模
- 现有电商平台信息
- 技术实施计划
特殊情况
- Etsy 商户: 美国地区自动符合条件
- Shopify 商户: 平台商户无需额外申请
- 其他商户: 通过申请流程逐步开放
第二步:准备产品数据
数据格式选择
支持多种格式:
- TSV (推荐) - Tab分隔值
- CSV - 逗号分隔值
- XML - 可扩展标记语言
- JSON - JavaScript对象表示法
必需字段
{
"id": "prod_12345",
"title": "商品名称",
"description": "详细商品描述",
"price": "29.99",
"currency": "CNY",
"availability": "in_stock",
"image_url": "https://example.com/image.jpg"
}推荐字段
{
"category": "分类路径",
"brand": "品牌名称",
"weight": "重量信息",
"shipping_cost": "运费",
"reviews": {
"average_rating": 4.8,
"review_count": 156
}
}第三步:实现核心 API
智能体结账端点
创建结账会话
POST /checkout_sessions
Content-Type: application/json
Authorization: Bearer <token>
API-Version: 2025-09-29
Idempotency-Key: <unique-key>
{
"items": [
{
"id": "prod_12345",
"quantity": 1
}
],
"buyer": {
"first_name": "张",
"last_name": "三",
"email": "[email protected]"
},
"fulfillment_address": {
"name": "张三",
"line_one": "北京市朝阳区建国路1号",
"city": "北京",
"state": "BJ",
"country": "CN",
"postal_code": "100001"
}
}响应格式
{
"id": "checkout_session_123",
"payment_provider": {
"provider": "stripe",
"supported_payment_methods": ["card"]
},
"status": "ready_for_payment",
"currency": "cny",
"line_items": [
{
"id": "line_item_456",
"item": { "id": "prod_12345", "quantity": 1 },
"base_amount": 2999,
"discount": 0,
"subtotal": 2999,
"tax": 300,
"total": 3299
}
],
"totals": [
{ "type": "subtotal", "display_text": "小计", "amount": 2999 },
{ "type": "tax", "display_text": "税费", "amount": 300 },
{ "type": "total", "display_text": "总计", "amount": 3299 }
]
}订单状态查询
GET /checkout_sessions/{checkout_session_id}
Authorization: Bearer <token>
API-Version: 2025-09-29
Response:
{
"id": "checkout_session_123",
"status": "completed",
"order": {
"id": "ord_xyz789",
"checkout_session_id": "checkout_session_123",
"permalink_url": "https://acplib.com/orders/ord_xyz789"
}
}第四步:集成支付处理
委托支付端点
创建支付委托令牌
POST /agentic_commerce/delegate_payment
Content-Type: application/json
Authorization: Bearer <token>
API-Version: 2025-09-29
Idempotency-Key: <unique-key>
Signature: <base64url-signature>
Timestamp: 2025-09-29T11:00:00Z
{
"payment_method": {
"type": "card",
"card_number_type": "fpan",
"virtual": false,
"number": "4242424242424242",
"exp_month": "12",
"exp_year": "2026",
"name": "张三",
"cvc": "123",
"display_card_funding_type": "credit",
"display_brand": "visa",
"display_last4": "4242",
"metadata": {}
},
"allowance": {
"reason": "one_time",
"max_amount": 3299,
"currency": "cny",
"checkout_session_id": "checkout_session_123",
"merchant_id": "acplib",
"expires_at": "2025-10-09T07:20:50.52Z"
},
"billing_address": {
"name": "张三",
"line_one": "北京市朝阳区建国路1号",
"city": "北京",
"state": "BJ",
"country": "CN",
"postal_code": "100001"
},
"risk_signals": [
{ "type": "card_testing", "score": 10, "action": "authorized" }
],
"metadata": { "source": "chatgpt" }
}响应格式
{
"id": "vt_01J8Z3WXYZ9ABC",
"created": "2025-09-29T11:00:00Z",
"metadata": {
"source": "agent_checkout",
"merchant_id": "acplib",
"idempotency_key": "idem_abc123"
}
}第五步:设置 Webhook
Webhook 端点
app.post('/acp/webhook', (req, res) => {
// 验证HMAC签名
const signature = req.headers['merchant-signature'];
const payload = JSON.stringify(req.body);
const expectedSignature = crypto
.createHmac('sha256', process.env.WEBHOOK_SECRET)
.update(payload)
.digest('hex');
if (signature !== expectedSignature) {
return res.status(401).send('Invalid signature');
}
const { event_type, order_id, data } = req.body;
switch (event_type) {
case 'order_created':
// 处理订单创建事件
console.log('订单已创建:', order_id);
break;
case 'order_updated':
// 处理订单更新事件
console.log('订单已更新:', order_id, data.status);
break;
default:
console.log('未知事件类型:', event_type);
}
res.status(200).send('OK');
});事件类型
order_created- 订单创建order_updated- 订单状态更新- 支付状态变更
- 发货状态更新
- 退款处理
- 订单取消
第六步:测试验证
沙盒测试
基于OpenAI生产认证要求,完成以下端到端测试:
会话创建和地址处理
- 创建带有和不带配送地址的结账会话
- 验证提供有效地址后返回配送选项和税费总计
支付令牌化测试
- 创建委托支付令牌
- 验证规范JSON序列化和签名生成
订单完成流程
- 使用令牌化支付完成订单
- 确认响应包含completed状态的订单对象
错误场景处理
- 测试缺少必需字段 (invalid_request/400)
- 模拟库存不足 (out_of_stock)
- 模拟支付拒绝 (payment_declined)
幂等性验证
- 使用相同Idempotency-Key重复请求
- 验证参数不匹配返回409冲突
验证清单
- ✅ API版本头
API-Version: 2025-09-29 - ✅ 所有货币金额使用整数最小单位
- ✅ 实现幂等性语义和冲突检测
- ✅ 返回权威购物车状态
- ✅ HMAC签名验证Webhook事件
- ✅ 错误响应使用扁平对象格式
第七步:生产部署
安全要求
- TLS配置: 使用TLS 1.2+和有效公共证书
- PCI合规: 确保支付数据处理符合PCI DSS
- IP白名单: 将OpenAI IP地址加入白名单
- 签名验证: 实施请求签名和Webhook HMAC验证
性能要求
- 响应时间: API响应时间 < 2秒
- 可用性: 99.9%+ 服务可用性
- 并发处理: 支持高并发请求
- 监控告警: 实时监控和告警机制
合规检查
- 强制HTTPS和API版本控制
- 返回权威购物车状态
- 使用整数最小单位表示金额
- 实现完整的CRUD操作
- 发出订单生命周期Webhook事件
- 处理幂等性和冲突检测
详细的生产部署指南请参考 生产部署文档。
🛠️ 开发工具
官方 SDK
# Node.js
npm install @acp/commerce-sdk
# Python
pip install acp-commerce
# PHP
composer require acp/commerce-sdk测试工具
📞 获取帮助
技术支持
- 📧 邮箱: [email protected]
- 💬 社区: 开发者论坛
- 📚 文档: 完整技术文档
官方资源
社区资源
通过以上步骤,您就能快速上手 ACP 协议的集成,为用户提供创新的 AI 驱动购物体验!