AP2 Checkout (mock)
/install ap2-checkout
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)
- Clone AP2 and set
AP2_HOMEto the repository root (the folder that containscode/):
export AP2_HOME="/path/to/AP2"
- 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
- 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"
-
Enable skills in
~/.openclaw/openclaw.json:mcporterandap2-checkout→enabled: true. Restart the gateway. -
Verify (optional): run
scripts/check-backend.shfrom this skill folder withAP2_HOMEset.
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)
- Set config →
hnp+cardorx402. - Build
item_idas\x3Cslug>_0(lowercase, non-alphanumeric →_). Do not callsearch_inventoryfor shoes. mcporter call ap2-merchant.check_product item_id=... constraint_price_cap=200- Mandate summary → user approval →
register_trusted_surface_approval. - Sign mandates —
mandate_requestmust 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}"
}'
- Poll:
mcporter call ap2-buyer.check_constraints session_id=CHAT_ID price=299 available=false - 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"
- When
meets_constraintsis true:assemble_cart→create_checkout→ payment/checkout presentations →issue_payment_credential(presence_mode=hnp) →complete_checkout→verify_checkout_receipt_tool. Emitpurchase_completeJSON and stop.
HP flow (buy now)
- Set config →
hp+cardorx402. search_inventoryorcheck_product→assemble_cart.- Once:
create_hp_open_mandates(nocheckout_jwtyet). create_checkoutwithopen_checkout_mandate_idandpayment_method.- Checkout summary → user 确认 →
register_trusted_surface_approval. assemble_and_sign_immediate_mandateswithcheckout_jwt,checkout_jwt_hash,amount_cents, etc.issue_payment_credential(presence_mode=hp) →complete_checkout→purchase_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_method → clear_open_mandate_session_tool → re-approve → sign again.
Stop backend
cd "$AP2_HOME/code/samples/python/scenarios/a2a/unified" && ./openclaw/stop_ap2_backend.sh
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ap2-checkout - After installation, invoke the skill by name or use
/ap2-checkout - Provide required inputs per the skill's parameter spec and get structured output
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.