← Back to Skills Marketplace
xielianghai

AP2 Checkout (mock)

by xielianghai · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ pending
32
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install ap2-checkout
Description
AP2 Agent-to-Agent mock checkout (SuperShoe). HP/HNP with card or x402 via mcporter and local mock MCP. No real payments.
README (SKILL.md)

AP2 Checkout (mock)

Drive the AP2 unified demo purchase flow via mcporter against local mock MCP servers (merchant, buyer, credentials provider, MPP). All settlement is simulated.

One-command install (recommended for demo)

From your AP2 clone (installs skill, patches OpenClaw, starts mock backend):

cd "$AP2_HOME"
npx -y file:code/samples/python/scenarios/a2a/unified/clawhub/npm/ap2-agent-checkout install

Then restart the OpenClaw gateway. Manual steps below are only needed if you skip the installer.

First-time setup (manual)

  1. Clone AP2 and set AP2_HOME to the repository root (the folder that contains code/):
export AP2_HOME="/path/to/AP2"
  1. Start the mock backend (triggers 8091–8094, MCP HTTP 8100–8103):
cd "$AP2_HOME/code/samples/python/scenarios/a2a/unified"
chmod +x openclaw/start_ap2_backend.sh openclaw/stop_ap2_backend.sh
./openclaw/start_ap2_backend.sh
  1. Point mcporter at this skill's mcporter.json (after ClawHub install, use the skill directory):
# After clawhub install (adjust if your skills dir differs):
export MCPORTER_CONFIG="$HOME/.openclaw/workspace/skills/ap2-checkout/mcporter.json"
  1. Enable skills in ~/.openclaw/openclaw.json: mcporter and ap2-checkoutenabled: true. Restart the gateway.

  2. Verify (optional): run scripts/check-backend.sh from this skill folder with AP2_HOME set.

See references/setup.md for ports and troubleshooting.

Session identity

Use a stable session_id per chat (Feishu channel + peer id, or any unique string). Pass it to every ap2-buyer.* tool.

mcporter list ap2-buyer --schema
mcporter list ap2-merchant --schema

Mode selection (always first)

User intent presence_mode payment_method
Drop / monitor / buy when price drops hnp card or x402 if user says crypto
Buy now / in stock today hp card or x402 if user says so
mcporter call ap2-buyer.set_ap2_session_config_tool \
  session_id=CHAT_ID presence_mode=hnp payment_method=card merchant=shoe
mcporter call ap2-buyer.get_ap2_session_config_tool session_id=CHAT_ID

Follow merchant_instruction from get_ap2_session_config.

Trusted Surface (user approval)

Before signing mandates, show a clear summary (item, price cap, payment rail). Wait for explicit yes / approve / 确认.

mcporter call ap2-buyer.register_trusted_surface_approval \
  session_id=CHAT_ID price_cap=200 payment_method=card \
  item_id=supershoe_limited_edition_gold_sneaker_womens_9_0

Plain-text budget or "pay by card" alone is not approval.

HNP flow (delegated drop)

  1. Set config → hnp + card or x402.
  2. Build item_id as \x3Cslug>_0 (lowercase, non-alphanumeric → _). Do not call search_inventory for shoes.
  3. mcporter call ap2-merchant.check_product item_id=... constraint_price_cap=200
  4. Mandate summary → user approval → register_trusted_surface_approval.
  5. Sign mandates — mandate_request must be a JSON string inside --args:
mcporter call ap2-buyer.assemble_and_sign_mandates --args '{
  "session_id": "CHAT_ID",
  "mandate_request": "{\"item_id\":\"...\",\"price_cap\":200,\"qty\":1}"
}'
  1. Poll: mcporter call ap2-buyer.check_constraints session_id=CHAT_ID price=299 available=false
  2. If stock 0, user runs (replace ITEM_ID and PRICE from tool results):
curl -X POST "http://127.0.0.1:8091/trigger-price-drop?item_id=ITEM_ID&price=199&stock=10"
  1. When meets_constraints is true: assemble_cartcreate_checkout → payment/checkout presentations → issue_payment_credential (presence_mode=hnp) → complete_checkoutverify_checkout_receipt_tool. Emit purchase_complete JSON and stop.

HP flow (buy now)

  1. Set config → hp + card or x402.
  2. search_inventory or check_productassemble_cart.
  3. Once: create_hp_open_mandates (no checkout_jwt yet).
  4. create_checkout with open_checkout_mandate_id and payment_method.
  5. Checkout summary → user 确认register_trusted_surface_approval.
  6. assemble_and_sign_immediate_mandates with checkout_jwt, checkout_jwt_hash, amount_cents, etc.
  7. issue_payment_credential (presence_mode=hp) → complete_checkoutpurchase_complete.

Never call create_hp_open_mandates twice per purchase. Never re-run assemble_cart / create_checkout after user confirmed.

Payment rail switch

set_ap2_session_config_tool with new payment_methodclear_open_mandate_session_tool → re-approve → sign again.

Stop backend

cd "$AP2_HOME/code/samples/python/scenarios/a2a/unified" && ./openclaw/stop_ap2_backend.sh
Capability Tags
crypto
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ap2-checkout
  3. After installation, invoke the skill by name or use /ap2-checkout
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
One-command npx installer docs; clawhub install ap2-checkout; AP2_INSTALL_QUICK backend
v1.0.0
Publish AP2 mock checkout skill for openclaw + mcporter
Metadata
Slug ap2-checkout
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is AP2 Checkout (mock)?

AP2 Agent-to-Agent mock checkout (SuperShoe). HP/HNP with card or x402 via mcporter and local mock MCP. No real payments. It is an AI Agent Skill for Claude Code / OpenClaw, with 32 downloads so far.

How do I install AP2 Checkout (mock)?

Run "/install ap2-checkout" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AP2 Checkout (mock) free?

Yes, AP2 Checkout (mock) is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AP2 Checkout (mock) support?

AP2 Checkout (mock) is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AP2 Checkout (mock)?

It is built and maintained by xielianghai (@xielianghai); the current version is v1.0.1.

💬 Comments