പ്രധാന ഉള്ളടക്കത്തിലേക്ക് കടക്കുക
LearnGuidesStripe-ൽ നിന്ന് മാറ്റുക
ഗൈഡ്

എജന്റ്-ചലിപ്പിച്ച API ആക്സസിന് Stripe-ൽ നിന്ന് Blockchain0x-ലേക്ക് മാറ്റുക.

20 minutes
ചുരുക്കം ഉത്തരം

Stripe മാറ്റാൻ അനുവദിക്കരുത്; ഇത് കൂടാതെ പ്രവർത്തിക്കുക. ഓരോ സംരക്ഷിത എൻഡ്‌പോയിന്റിനും ഒരു ഏക ഗേറ്റ് രണ്ട് ഓത്തന്റിക്കേഷൻ മാർഗങ്ങൾ നൽകുന്നു: ഒരു സജീവ Stripe സബ്സ്ക്രിപ്ഷൻ (മനുഷ്യർക്ക്), അല്ലെങ്കിൽ x402 സ്വീകരണ-പക്ഷം അഡാപ്റ്റർ (ഏജന്റുകൾക്കായി), ഇത് 402 വെല്ലുവിളി നൽകുകയും വീണ്ടും ശ്രമിക്കുമ്പോൾ X-Payment ഹെഡർ സ്ഥിരീകരിക്കുകയും ചെയ്യുന്നു. ഹാൻഡ്ലർ ലാജിക് മാറ്റുന്നില്ല.

മുൻകൂർ ആവശ്യങ്ങൾ

നിങ്ങൾ തുടങ്ങുന്നതിന് മുമ്പ്.

  • കുറഞ്ഞത് ഒരു സജീവ ഉൽപ്പന്നം/വില (സബ്സ്ക്രിപ്ഷൻ അല്ലെങ്കിൽ ഒറ്റക്കുറിപ്പ്) ഉള്ള പ്രവർത്തനശേഷിയുള്ള Stripe ഇന്റഗ്രേഷൻ.
  • ഒരു Blockchain0x ഏജന്റ് പ്രൊഫൈലും API കീയും (കാണുക add-payments-to-agent).
  • നിങ്ങളുടെ വെബ് ഫ്രെയിംവർക്കിൽ നിലവിൽ നിങ്ങൾ സ്റ്റ്രൈപ്പ് വിളിക്കുന്ന ഒരു ഓതർ/മിഡിൽവെയർ ലെയർ.
  • ഒരു ഫീച്ചർ-ഫ്ലാഗ് യന്ത്രം (env var, LaunchDarkly, ലളിതമായ ബൂലിയൻ - വീണ്ടും വിന്യസിക്കാതെ പെരുമാറ്റം മാറ്റാൻ നിങ്ങളെ അനുവദിക്കുന്ന എന്തെങ്കിലും).
  • x402 pattern ന്റെ മനസ്സിലാക്കൽ - താഴെയുള്ള ഡെക്കോറേറ്റർ ഇത് നടപ്പിലാക്കുന്നു.
ചുവടു 1 OF 3

ഡ്യുവൽ-ഓത്തന്റിക്കേഷൻ ഗേറ്റ് എഴുതുക.

ഗേറ്റ് ഒരു ഒറ്റ ഗ്ലൂയുടെ ഭാഗമാണ്. ഇത് ആദ്യം ഒരു സജീവ Stripe സബ്സ്ക്രിപ്ഷൻ പരിശോധിക്കുന്നു (മനുഷ്യ പാത); ഇല്ലെങ്കിൽ, ഇത് x402 സ്വീകരണ-പക്ഷ അഡാപ്റ്ററിലേക്ക് (ഏജന്റ് പാത) അഭ്യർത്ഥന കൈമാറുന്നു, ഇത് 402 ചലഞ്ച് നൽകുന്നു, ഏജന്റ് വീണ്ടും ശ്രമിക്കുമ്പോൾ X-Payment ഹെഡർ സ്ഥിരീകരിക്കുന്നു. Node ഉദാഹരണം createX402Middleware ഉപയോഗിക്കുന്നു; ഒരു Python സേവനം കൈകൊണ്ട് ഒരേ വയർ സംസാരിക്കുന്നു.

TypeScript (Express)
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);
}
Python (Flask)
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
ചുവടു 2 OF 3

അത് എന്റ്പോയിന്റിലേക്ക് പ്രയോഗിക്കുക.

ഹാൻഡ്ലർ തന്നെ മാറുന്നില്ല - ഡികോറേറ്റർ ഓത്തന്റിക്കേഷൻ/പേയ്മെന്റ് തത്വങ്ങൾ കൈകാര്യം ചെയ്യുന്നു, തുടർന്ന് പേയ്മെന്റ് തീർന്നാൽ മാത്രമേ നിലവിലെ നടപ്പിലാക്കലിലേക്ക് മുന്നോട്ട് പോകുകയുള്ളു. ഇത് മൈഗ്രേഷൻ കുറഞ്ഞ അപകടം ആക്കുന്നു: മനുഷ്യ പ്രവാഹങ്ങൾ സ്പർശിക്കപ്പെടുന്നില്ല, നിങ്ങൾക്ക് ഒരു മാറ്റം പാത മാത്രമേ ചേർത്തു.

TypeScript
// 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);
  },
);
Python
@app.get("/api/premium-feature")
@stripe_or_x402("/api/premium-feature")
def premium_feature():
    return run_premium_feature()
ചുവടു 3 OF 3

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. താരതമ്യ ഫ്രെയിമിംഗ്: താരതമ്യങ്ങൾ.

അവസാനമായി അവലോകനം ചെയ്തത്: 2026-05-15. CC BY 4.0 പ്രകാരം പ്രസിദ്ധീകരിച്ചു.

Stripe നിലനിർത്തുക. ഏജന്റുകൾ ചേർക്കുക.

ഒരു ഡെക്കറേറ്റർ. രണ്ട് പേമന്റ് റെയിൽസ്. നിലവിലുള്ള ഉപഭോക്താക്കൾക്കായി ശൂന്യമായ മാറ്റം. ആരംഭിക്കാൻ സൗജന്യമാണ്.