Buy Anything
购买任意商品
通过Rye结账功能购买亚马逊和Shopify店铺的商品。就像在你的聊天应用里拥有一个私人购物助手。
何时使用
当用户出现以下情况时,激活此功能:

- 分享亚马逊产品链接 (amazon.com/dp/...)
- 分享Shopify店铺产品链接 (任何 *.myshopify.com 或使用自定义域名的Shopify店铺)
- 提及"买"、"订购"或"购买"并附带产品链接
- 希望从在线商店购买商品时
重要:工作原理说明
- 切勿自行尝试使用 web_fetch 或阅读工具获取产品URL
- Rye API 会处理所有产品信息查询——你只需传递URL
- 在结账前你无需了解产品详情
- 只需收集收货地址并设置支付卡信息,然后调用API即可
- Rye API 会验证URL并返回产品详情——如果URL不受支持或无效,API将返回错误信息
结账流程
- 用户提供产品URL- 确认你将协助他们购买
- 收集收货地址(或使用记忆中保存的地址)
- 通过 BasisTheory 设置卡片(或使用记忆中保存的 BT 令牌)
- 使用 bash 向 Rye API 提交订单(参见步骤 2)
- 显示订单确认信息来自 API 响应
- 将 BT 令牌/地址保存到记忆供未来购买使用(请先询问许可)
步骤 1:通过 BasisTheory 安全捕获卡片信息
如果用户的记忆中没有保存 BasisTheory 令牌,请通过浏览器安全地捕获他们的卡片信息。
尝试在用户的浏览器中打开卡片捕获页面:
open "https://mcp.rye.com/bt-card-capture" 2>/dev/null || xdg-open "https://mcp.rye.com/bt-card-capture" 2>/dev/null
如果命令失败(例如,平台不支持),请提供可点击的链接:https://mcp.rye.com/bt-card-capture
告诉用户:“我已在您的浏览器中打开了一个安全的卡片信息输入页面。请在那里输入您的卡片详细信息并点击提交。您的卡片信息绝不会经过此聊天——它会直接发送到 BasisTheory 的 PCI 合规保险库。提交后,请复制页面上显示的令牌并粘贴回此处。”
等待用户粘贴令牌(一个类似d1ff0c32-...的UUID)。
如果用户内存中已保存有BT令牌,则完全跳过此步骤并使用保存的令牌。
如果购买因CVC/CVV相关错误而失败(例如“信息缺失”、支付会话问题),则保存令牌的CVC可能已过期(BasisTheory会在24小时后清除CVC)。打开CVC刷新页面:
open "https://mcp.rye.com/bt-cvc-refresh?token_id=SAVED_TOKEN_ID" 2>/dev/null || xdg-open "https://mcp.rye.com/bt-cvc-refresh?token_id=SAVED_TOKEN_ID" 2>/dev/null
如果命令失败,请提供可点击的链接作为URL替代。
告诉用户:“您保存的卡片安全码已过期。我已打开一个页面,仅需重新输入您的CVC——无需重新输入完整的卡片信息。完成后关闭标签页,我将重试。”
然后使用相同的保存令牌重试购买。
步骤2:向Rye提交订单
合作伙伴端点通过合作伙伴路径进行身份验证——无需API密钥请求头。仅接受发往/partners/clawdbot/的请求。
curl -s -X POST https://api.rye.com/api/v1/partners/clawdbot/purchase \
-H "Content-Type: application/json" \
-d '{
"productUrl": "https://www.example-store.com/products/cool-thing",
"quantity": 1,
"buyer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "+14155551234",
"address1": "123 Main St",
"city": "San Francisco",
"province": "CA",
"postalCode": "94102",
"country": "US"
},
"paymentMethod": {
"type": "basis_theory_token",
"basisTheoryToken": "d1ff0c32-..."
},
"constraints": {
"maxTotalPrice": 50000
}
}'
constraints.maxTotalPrice:用户的消费限额,单位为美分(例如500美元=50000)。如果总额超过此限制,API将拒绝订单。如果用户表示“无限制”,则省略约束条件完全空白的字段。
POST响应包含一个id字段(例如ci_abc123)。使用此ID来轮询订单状态。
步骤3:轮询订单状态
提交订单后,使用POST响应中的id来轮询最终结果:
curl -s https://api.rye.com/api/v1/partners/clawdbot/purchase/CHECKOUT_INTENT_ID
将CHECKOUT_INTENT_ID替换为实际的ID(例如ci_abc123)。
每5秒轮询一次,直到状态变为最终状态。响应中的state将是以下之一:
retrieving_offer— 正在获取产品详情和定价(继续轮询)placing_order— 订单正在向商店提交(继续轮询)已完成— 订单提交成功(停止轮询)失败— 订单失败(停止轮询)
当已完成时,向用户显示:
- 产品名称来自
offer.product.title - 总额来自
offer.cost.total(格式化为美元,数值单位为美分) - 订单ID来自
orderId(如存在)
当失败时,向用户显示failureReason.message。
定价与配送
API会自动验证商店。如果提交了不受支持的URL,API将返回错误——请告知用户仅支持Amazon和Shopify商店。
- Shopify商店标准商店定价——我们不加价
- 亚马逊: 收取3%费用以覆盖交易成本
- 亚马逊订单金额低于15美元需支付6.99美元运费
- 亚马逊订单金额满15美元及以上可享受免费Prime两日达配送
- 亚马逊订单通过第三方亚马逊账户处理(非用户个人亚马逊账户)
- 用户将收到包含确认信息和订单详情的电子邮件
- 如需退货或退款,请引导用户联系support@rye.com
对话示例
User: Buy this for me https://amazon.com/dp/B0DJLKV4N9
You: I'll help you buy that! Where should I ship it?
(Need: name, address, city, state, zip, email, phone)
User: John Doe, 123 Main St, San Francisco CA 94102, john@example.com, +14155551234
You: Got it! What's your maximum purchase price? (I'll warn you if an order exceeds this)
Say "no limit" to skip this.
User: $500
You: Max set to $500. I'm opening a secure card entry page in your browser now.
Please enter your card details there — your card info never touches this chat.
After submitting, copy the token shown on the page and paste it here.
[Opens https://mcp.rye.com/bt-card-capture]
User: d1ff0c32-a1b2-4c3d-8e4f-567890abcdef
You: Got it! Submitting your order...
[POST to purchase API with the BT token, gets back ci_abc123]
You: Order submitted! Waiting for confirmation...
[Polls GET /purchase/ci_abc123 every 5 seconds]
You: Order confirmed!
Product: Wireless Earbuds Pro
Total: $358.44 (includes 3% service fee)
Order ID: RYE-ABC123
Would you like me to save your card token and address for faster checkout next time?
消费限额
首次购买前,询问用户设定的最高购买价格,并存储在记忆中
- 若订单总额(含所有费用)超出限额,则提醒用户并请求确认
- 用户可告知“无限制”以禁用此检查
存储
保存的数据仅存储在用户设备上的代理本地内存中——不会同步到云端或在设备间共享
首次成功购买后(经用户许可):
- 将BasisTheory令牌ID保存至记忆中以供未来购买使用(非原始卡片详情——令牌是一个不透明的ID,无法逆向还原为卡号)
- 将送货地址保存至记忆
- 将最高购买价格保存至记忆
- 后续购买时,直接复用已保存的BT令牌——无需再次输入卡片信息
- 使用已保存令牌下单前,务必与用户确认
- 若用户要求移除已保存卡片,请告知其需请求您从记忆中遗忘令牌。如需同时从BasisTheory的存储库撤销令牌,请引导其联系support@rye.com


微信扫一扫,打赏作者吧~