എജന്റ്-ചലിപ്പിച്ച API ആക്സസിന് Stripe-ൽ നിന്ന് Blockchain0x-ലേക്ക് മാറ്റുക.
Stripe മാറ്റാൻ അനുവദിക്കരുത്; ഇത് കൂടാതെ പ്രവർത്തിക്കുക. ഓരോ സംരക്ഷിത എൻഡ്പോയിന്റിനും ഒരു ഏക ഗേറ്റ് രണ്ട് ഓത്തന്റിക്കേഷൻ മാർഗങ്ങൾ നൽകുന്നു: ഒരു സജീവ Stripe സബ്സ്ക്രിപ്ഷൻ (മനുഷ്യർക്ക്), അല്ലെങ്കിൽ x402 സ്വീകരണ-പക്ഷം അഡാപ്റ്റർ (ഏജന്റുകൾക്കായി), ഇത് 402 വെല്ലുവിളി നൽകുകയും വീണ്ടും ശ്രമിക്കുമ്പോൾ X-Payment ഹെഡർ സ്ഥിരീകരിക്കുകയും ചെയ്യുന്നു. ഹാൻഡ്ലർ ലാജിക് മാറ്റുന്നില്ല.
നിങ്ങൾ തുടങ്ങുന്നതിന് മുമ്പ്.
- കുറഞ്ഞത് ഒരു സജീവ ഉൽപ്പന്നം/വില (സബ്സ്ക്രിപ്ഷൻ അല്ലെങ്കിൽ ഒറ്റക്കുറിപ്പ്) ഉള്ള പ്രവർത്തനശേഷിയുള്ള Stripe ഇന്റഗ്രേഷൻ.
- ഒരു Blockchain0x ഏജന്റ് പ്രൊഫൈലും API കീയും (കാണുക add-payments-to-agent).
- നിങ്ങളുടെ വെബ് ഫ്രെയിംവർക്കിൽ നിലവിൽ നിങ്ങൾ സ്റ്റ്രൈപ്പ് വിളിക്കുന്ന ഒരു ഓതർ/മിഡിൽവെയർ ലെയർ.
- ഒരു ഫീച്ചർ-ഫ്ലാഗ് യന്ത്രം (env var, LaunchDarkly, ലളിതമായ ബൂലിയൻ - വീണ്ടും വിന്യസിക്കാതെ പെരുമാറ്റം മാറ്റാൻ നിങ്ങളെ അനുവദിക്കുന്ന എന്തെങ്കിലും).
- x402 pattern ന്റെ മനസ്സിലാക്കൽ - താഴെയുള്ള ഡെക്കോറേറ്റർ ഇത് നടപ്പിലാക്കുന്നു.
ഡ്യുവൽ-ഓത്തന്റിക്കേഷൻ ഗേറ്റ് എഴുതുക.
ഗേറ്റ് ഒരു ഒറ്റ ഗ്ലൂയുടെ ഭാഗമാണ്. ഇത് ആദ്യം ഒരു സജീവ Stripe സബ്സ്ക്രിപ്ഷൻ പരിശോധിക്കുന്നു (മനുഷ്യ പാത); ഇല്ലെങ്കിൽ, ഇത് x402 സ്വീകരണ-പക്ഷ അഡാപ്റ്ററിലേക്ക് (ഏജന്റ് പാത) അഭ്യർത്ഥന കൈമാറുന്നു, ഇത് 402 ചലഞ്ച് നൽകുന്നു, ഏജന്റ് വീണ്ടും ശ്രമിക്കുമ്പോൾ X-Payment ഹെഡർ സ്ഥിരീകരിക്കുന്നു. Node ഉദാഹരണം createX402Middleware ഉപയോഗിക്കുന്നു; ഒരു Python സേവനം കൈകൊണ്ട് ഒരേ വയർ സംസാരിക്കുന്നു.
import express from "express";
import Stripe from "stripe";
import { createClient } from "@blockchain0x/node";
import { createX402Middleware } from "@blockchain0x/x402/server/express";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
// Agents pay via x402: this middleware issues the 402 challenge and verifies
// the X-Payment header on the retry. Configure price + recipient per the docs.
const x402 = createX402Middleware({ sdk });
// Humans with an active Stripe subscription skip the paywall; everyone else
// falls through to the x402 challenge.
function stripeOrX402(req: express.Request, res: express.Response, next: express.NextFunction) {
const customer = req.cookies?.stripe_customer_id;
if (!customer) return x402(req, res, next); // agent path
stripe.subscriptions
.list({ customer, status: "active", limit: 1 })
.then((subs) => (subs.data.length > 0 ? next() : x402(req, res, next)))
.catch(next);
}from functools import wraps
from flask import request, jsonify
import stripe, os
stripe.api_key = os.environ["STRIPE_SECRET_KEY"]
# The x402 receive-side adapter is Node; a Python service speaks the wire
# directly: advertise requirements in a 402, accept a resent X-Payment header.
def stripe_or_x402(resource: str):
def decorator(fn):
@wraps(fn)
def wrapper(*args, **kwargs):
# 1. Human path: active Stripe subscription.
customer_id = request.cookies.get("stripe_customer_id")
if customer_id:
subs = stripe.Subscription.list(customer=customer_id, status="active", limit=1)
if subs["data"]:
return fn(*args, **kwargs)
# 2. Agent path: a valid X-Payment header ("exact-usdc:<base64(json)>")
# means the caller paid; verify it, then let the request through.
if request.headers.get("X-Payment"):
return fn(*args, **kwargs)
# 3. No auth - advertise the x402 requirements in a 402.
return jsonify({
"version": 1,
"resource": resource,
"accepts": [{"scheme": "exact-usdc", "network": "eip155:8453"}],
}), 402
return wrapper
return decoratorഅത് എന്റ്പോയിന്റിലേക്ക് പ്രയോഗിക്കുക.
ഹാൻഡ്ലർ തന്നെ മാറുന്നില്ല - ഡികോറേറ്റർ ഓത്തന്റിക്കേഷൻ/പേയ്മെന്റ് തത്വങ്ങൾ കൈകാര്യം ചെയ്യുന്നു, തുടർന്ന് പേയ്മെന്റ് തീർന്നാൽ മാത്രമേ നിലവിലെ നടപ്പിലാക്കലിലേക്ക് മുന്നോട്ട് പോകുകയുള്ളു. ഇത് മൈഗ്രേഷൻ കുറഞ്ഞ അപകടം ആക്കുന്നു: മനുഷ്യ പ്രവാഹങ്ങൾ സ്പർശിക്കപ്പെടുന്നില്ല, നിങ്ങൾക്ക് ഒരു മാറ്റം പാത മാത്രമേ ചേർത്തു.
// Apply the gate to the endpoint. The x402 middleware handles the 402
// challenge and the X-Payment verification; your handler only runs once paid.
app.get("/api/premium-feature",
stripeOrX402,
async (req, res) => {
const result = await runPremiumFeature();
res.json(result);
},
);@app.get("/api/premium-feature")
@stripe_or_x402("/api/premium-feature")
def premium_feature():
return run_premium_feature()shadow mode-ൽ rollout ചെയ്ത്, തുടർന്ന് enabled mode-ലേക്ക്.
എല്ലാവർക്കും ഒരേസമയം രണ്ട് paths-ഉം ഓൺ ചെയ്യരുത്. സുരക്ഷിത rollout pattern നാല് ഘട്ടങ്ങളാണ് - shadow, silent agent enablement, public agent enablement, observe. Stripe flow മുഴുവൻ മാറ്റമില്ലാതെ തുടരുന്നു; agent traffic ക്രമേണ ഉയരുന്നു.
# Rollout plan: keep Stripe-only working while you add the agent path.
# Week 1 - shadow mode
# - Deploy the decorator with the agent-path branch behind a feature flag (off).
# - Human Stripe flow continues unchanged.
# - Sandbox-test the agent path against Base Sepolia.
# Week 2 - silent agent enablement
# - Turn the agent-path branch on for a single internal agent.
# - Verify the 402 issues correctly and settlement works end-to-end.
# - Wire alerting on the 402-issued / 402-settled rate.
# Week 3 - public agent enablement
# - Document the x402 contract in your developer docs.
# - Announce to existing customers building agents.
# - Continue measuring: human Stripe flow should be unchanged.
# Week 4+ - observe
# - Track the ratio of agent settlements to human subscriptions.
# - As agent traffic grows, you may decide to keep Stripe only for humans
# and let everything else go through x402. That is a later decision -
# the architecture above supports either trajectory.ഡ്യുവൽ-റെയിൽ വേദനകരമാക്കുന്ന നാലു പിശകുകൾ.
അതിനെ വർദ്ധിപ്പിക്കുന്നതിനുപകരം Stripe മാറ്റാൻ ശ്രമിക്കുന്നു
Stripe ഒരു തവണത്തെ മനുഷ്യ ചെക്ക്ഔട്ടുകൾക്കും മനുഷ്യ സബ്സ്ക്രിപ്ഷനുകൾക്കും ശരിയാണ്. Stripe-ൽ ഏജന്റ് ഗതാഗതം നിർബന്ധിതമാക്കാൻ ശ്രമിക്കുന്നത് (പ്രതി-കാൾ ഇൻവോയിസുകൾ, ഡൈനാമിക് വിലനിർണ്ണയം) കാർഡ്-നെറ്റ്വർക്കിന്റെ കുറഞ്ഞതിനെതിരെ തകരാറിലാകും. വിജയകരമായ മാതൃക വർദ്ധനവാണ്: Stripe എന്തിൽ നല്ലതാണ് (മനുഷ്യർ കാർഡുകൾ ഉപയോഗിച്ച് പണമിടപാട് ചെയ്യുന്നത്) എന്നതിൽ തുടരുക, Stripe-ന് രൂപകൽപ്പന ചെയ്തിട്ടില്ലാത്ത ഗതാഗതത്തിനായി x402 / ഏജന്റ് പണമിടപാടുകൾ ചേർക്കുക. ഒന്നോ മറ്റോ തിരഞ്ഞെടുക്കരുത്.
402 ന്റെ പകരം പ്രതിയോഗികൾക്ക് 401 തിരികെ നൽകുന്നു
മിക്ക നിലവിലുള്ള എൻഡ്പോയിന്റുകൾക്ക് Stripe സെഷൻ ഇല്ലാത്തപ്പോൾ 401 അനധികൃതമായി തിരിച്ചുവരുന്നു. ഏജന്റുകൾ 401-ൽ എന്ത് ചെയ്യണമെന്ന് അറിയുന്നില്ല - അവർ 'പണമടയ്ക്കാൻ തുടരുക' സിഗ്നലായ 402 പണമടവ് ആവശ്യമാണ് എന്നതിനെ മാത്രം മനസ്സിലാക്കുന്നു. ഗേറ്റ് വേണം വ്യത്യാസപ്പെടുത്തുക: 'ഈ വിളിക്കാവുന്നവൻ അനധികൃതമാണ്, പണമടയ്ക്കാൻ കഴിയുന്നില്ല' (സത്യമായ 401, 401 തിരിച്ചുവരിക) എങ്കിൽ 'ഈ വിളിക്കാവുന്നവൻ സ്ഥിരീകരിക്കപ്പെട്ടിട്ടില്ല, പക്ഷേ പണമടയ്ക്കാൻ കഴിയും' (x402 402 ചലഞ്ച് തിരിച്ചുവരിക).
ഏജന്റുകൾ Stripe വിലക്കയറ്റം ഒഴിവാക്കാൻ അനുവദിക്കുന്നു
നിങ്ങളുടെ Stripe സബ്സ്ക്രിപ്ഷൻ $20/മാസം അനിയന്ത്രിത വിളികൾക്കായുള്ളതാണ്, നിങ്ങളുടെ x402 ഉദ്ധരണി $0.01/വിളിയാണ്, ഒരു ഏജന്റ് സാങ്കേതികമായി $0.01 ഒരിക്കൽ പണമടച്ച് ഒരു വിളി നേടാൻ കഴിയും, എവിടെ മനുഷ്യൻ $20-നായി പലതും പണമടയ്ക്കുന്നു. ഇത് ഇടക്കാല ഉപയോഗ ഏജന്റ് ട്രാഫിക്കിന് ശരിയാണ്, ഉയർന്ന വോളിയം ഏജന്റ് ട്രാഫിക്കിന് തകരാറാണ്. ഒരു ഭാരമുള്ള ഏജന്റ് സ്വാഭാവികമായി സബ്സ്ക്രിപ്ഷൻ തീവ്രതയെ അടയാളപ്പെടുത്തുന്നതിന്, ഓരോ വിളിക്കുള്ള വില ക്രമീകരിക്കുക - പിന്നെ അവരെ മാറ്റാൻ ഓപ്ഷൻ നൽകുക.
എന്ത് പാതയിൽ പോയി എന്ന് ലോഗ് ചെയ്യുന്നത് ഇല്ല
ഒരു ഡീബഗ്ഗിംഗ് അഭ്യർത്ഥന വരുന്നു: 'ഈ ഉപഭോക്താവ് അവർ പണമടച്ചതായി പറയുന്നു, എന്നാൽ ഞങ്ങൾ വിതരണം ചെയ്തില്ല'. നിങ്ങൾ വിളിയെ അംഗീകരിച്ച ഏത് ഓത്തൻ പാത രേഖപ്പെടുത്താത്ത പക്ഷം, നിങ്ങൾ Stripe-ന്റെ രേഖകൾക്കോ Blockchain0x-ന്റെ രേഖകൾക്കോ നോക്കേണ്ടതാണെന്ന് അറിയുന്നില്ല. തീരുമാനത്തെ എപ്പോഴും രേഖപ്പെടുത്തുക: ഏത് ശാഖ പൊരുത്തപ്പെട്ടു, customer_id അല്ലെങ്കിൽ X-Payment / ഇടപാട് പരാമർശം, കൂടാതെ ഒരു korelation ID. ഇതില്ലെങ്കിൽ, ഓരോ ഡ്യുവൽ-റെയിൽ സംഭവവും triage ചെയ്യാൻ ഇരട്ടി സമയം എടുക്കുന്നു.
ഡ്യുവൽ-റെയിൽ പ്രവർത്തനക്ഷമമായാൽ.
ആർക്കിടെക്ചർ സ്ഥാപിതമായാൽ, ശേഷിക്കുന്നത് പ്രവർത്തനപരമാണ്. വെബ്ഹുക്ക് ശക്തി Stripe നും Blockchain0x ഇവന്റ് സ്ട്രീമുകൾക്കും കൈകാര്യം ചെയ്യുന്നു. ചെലവു നിയന്ത്രണങ്ങൾ നിങ്ങൾ പ്രവർത്തിക്കുന്ന ഏത് എജന്റുകളെയും സംരക്ഷിക്കുന്നു. പ്രീ-ലോഞ്ച് സുരക്ഷാ അവലോകനം ഒരു സിംഗിൾ-റെയിൽ ഇന്റഗ്രേഷനായി ബാധകമാണ്.
ഡെവലപ്പർമാർ ഏറ്റവും കൂടുതൽ ചോദിക്കുന്ന വെബ്ഹുക്ക് മാതൃകകൾ
പ്രോംപ്റ്റ് ഇഞ്ചക്ഷൻ തരണം ചെയ്യുന്ന ഏജന്റ് ചെലവുകൾ നിയന്ത്രണങ്ങൾ സജ്ജമാക്കുക
ജീവിതത്തിലേക്ക് പോകുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഏജന്റ് വാലറ്റ് സുരക്ഷിതമാക്കുക
മുഴുവൻ റഫറൻസ് docs.blockchain0x.comൽ. ബന്ധപ്പെട്ട ഉൽപ്പന്ന ഉപരിതലങ്ങൾ: പേയ്മെന്റ് API. താരതമ്യ ഫ്രെയിമിംഗ്: താരതമ്യങ്ങൾ.