నిజమైన డబ్బు లేకుండా ఏజెంట్ చెల్లింపులను పరీక్షించండి.
Swap your API key for a sk_test_ key - that alone puts you on Base Sepolia. Fund the agent's wallet from the public Base Sepolia USDC faucet, make a real test payment with payments.create (test funds, no real money), and tunnel your local webhook through ngrok. The response shapes match live, so a flow that passes in test passes in production. Exercise the failure paths, not just the happy one.
మీరు ప్రారంభించడానికి ముందు.
- ప్రత్యక్షంగా పనిచేసే ఇంటిగ్రేషన్ (లేదా కనీసం ప్రత్యక్ష-ఆకారంలో) - add-payments-to-agentని చూడండి.
- A
sk_test_API కీ మరియు డాష్బోర్డ్ నుండి సరిపోయే పరీక్ష సంతకం రహస్యం. - డెవలప్మెంట్-టైమ్ వెబ్హుక్ డెలివరీ కోసం ngrok (లేదా ఏదైనా HTTPS టన్నెల్).
- ఒక ప్రత్యేక అభివృద్ధి వాతావరణం - ప్రత్యేక ఎన్వ్ వేరియబుల్స్, ప్రత్యేక డేటాబేస్ (లేదా కనీసం ప్రత్యేక పట్టికలు), ప్రత్యేక వెబ్హుక్ URL.
- వెబ్హుక్ నమూనాల గైడ్తో సౌకర్యం - ఈ గైడ్ మీరు పరీక్షించడానికి ఒక హ్యాండ్లర్ ఉందని అనుకుంటుంది.
పరీక్ష కీకి మార్చండి.
A sk_test_ కీ Base Sepoliaలో లావాదేవీ చేస్తుంది; A sk_live_ కీ Base మైన్నెట్లో లావాదేవీ చేస్తుంది. ప్రిఫిక్స్ నెట్వర్క్ను ఎంచుకుంటుంది - ప్రత్యేక నెట్వర్క్ env var లేదు, మరియు ఒక పరీక్ష కీ మైన్నెట్ నిధులను కదలించలదు. కాబట్టి మీరు అభివృద్ధి వాతావరణానికి మారుస్తున్నది కీ (మరియు పరీక్ష వెబ్హుక్ సీక్రెట్) మాత్రమే.
# .env.development
# A sk_test_ key picks Base Sepolia automatically - there is no network env var.
BLOCKCHAIN0X_API_KEY=sk_test_01J9...
BLOCKCHAIN0X_WEBHOOK_SECRET=... # the test webhook's secret, from the dashboardఫాసెట్ నుండి ఏజెంట్ యొక్క వాలెట్కు నిధులు అందించండి.
టెస్ట్ USDC కు ఆర్థిక విలువ లేదు కానీ ఇది ప్రత్యక్ష USDC లాగా ప్రవర్తిస్తుంది: సమాన ప్రతిస్పందన ఆకారాలు, సమాన బ్యాలెన్స్ ట్రాకింగ్. దీన్ని మింట్ చేసే SDK కాల్ లేదు - మీరు ఏజెంట్ యొక్క వాలెట్ చిరునామాను పబ్లిక్ బేస్ సెపోలియా USDC ఫాసెట్ నుండి నిధులు అందిస్తారు. డాష్బోర్డ్లో లేదా ఏజెంట్ యొక్క పబ్లిక్ పేజీలో చిరునామాను కనుగొనండి (లేదా SDK తో ఏజెంట్ను చదవండి), ఆపై దానిని ఫాసెట్లో పేస్ట్ చేయండి.
import { createClient } from "@blockchain0x/node";
const client = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! }); // sk_test_
// Look up the agent; its wallet address is shown in the dashboard and on the
// agent's public page. Fund THAT address from the Base Sepolia USDC faucet -
// there is no SDK call that mints test funds.
const agent = await client.agents.get("agt_123");
console.log(agent.id);from blockchain0x import Client
client = Client() # reads BLOCKCHAIN0X_API_KEY (sk_test_)
# The agent's wallet address is in the dashboard / on its public page.
# Paste it into the public Base Sepolia USDC faucet to fund it.
agent = client.agents.get("agt_123")
print(agent["id"])ఒక నిజమైన పరీక్ష చెల్లింపు చేయండి.
వాలెట్ ఫండెడ్ అయినప్పుడు, మీ sk_test_ కీపై payments.create ను కాల్ చేయండి. ఇది Base Sepolia పై పరీక్ష ఫండ్స్ ఉపయోగించి నిజమైన బదిలీ, మరియు ఇది mainnet ఎలా ఉంటుందో అలాగే payment.received వెబ్హుక్ను కాల్ చేస్తుంది - కాబట్టి మీరు నిజమైన కోడ్ మార్గాన్ని ఉపయోగిస్తారు, అనుకరణ కాదు. మీ టన్నెల్ చేసిన హ్యాండ్లర్ వద్ద ఈవెంట్ చేరడం చూడండి.
// On a sk_test_ key this is a REAL transfer on Base Sepolia (test funds, no
// real money). It fires the payment.received webhook just like mainnet does.
const tx = await client.payments.create({
agentId: "agt_123",
to: "0xRecipientOnSepolia",
amountWei: "10000", // 0.01 USDC
});
console.log(tx); // watch payment.received arrive at your webhooktx = client.payments.create(body={
"agentId": "agt_123",
"to": "0xRecipientOnSepolia",
"amountWei": "10000", # 0.01 USDC
})
print(tx) # watch payment.received arrive at your webhookకనీసం వ్యాయామం చేయడానికి మూడు దృశ్యాలు: ఒక చెల్లింపు చేరడం (సంతోషకరమైన మార్గం, payment.received), ఒక చెల్లింపు ఎప్పుడూ చేరదు (వెబ్హుక్ను ఒక చనిపోయిన URLకు సూచించండి మరియు మీ సమన్వయం స్వీప్ చిక్కుకున్న ఉద్యోగాన్ని పట్టుకుంటుందో లేదో నిర్ధారించండి - చాలా బృందాలు నిర్లక్ష్యం చేసే మార్గం), మరియు వెబ్హుక్ మళ్లీ ప్రయత్నించండి (మొదటి సారి 500ని బలవంతం చేయండి మరియు రెండవది 200, తరువాత మీ ఐడెంపొటెన్సీ డుప్లికేట్ పనిని దాటించిందో లేదో నిర్ధారించండి).
మీ స్థానిక హ్యాండ్లర్కు వెబ్హుక్లను టన్నెల్ చేయండి.
టెస్ట్ చెల్లింపులు మీరు టెస్ట్ వెబ్హుక్ కోసం కాన్ఫిగర్ చేసిన URL కు నిజమైన వెబ్హుక్స్ను పంపిస్తాయి. స్థానిక అభివృద్ధి కోసం, మీ లాప్టాప్కు HTTPS టన్నెల్ ఇవ్వండి. ngrok అత్యంత సరళమైన ఎంపిక; ఏ రివర్స్-టన్నెల్ సాధనం పనిచేస్తుంది.
# Tunnel your local webhook endpoint to a public HTTPS URL.
$ ngrok http 3000
# Forwarding https://abc123.ngrok.app -> http://localhost:3000
# Paste the URL in the dashboard under Webhooks for your test
# environment - test and live keep separate webhook config.టెస్ట్ మరియు ప్రత్యక్షం వేరు కీలు మరియు వేరు వెబ్హుక్ కాన్ఫిగరేషన్ను ఉపయోగిస్తాయి, కాబట్టి మీరు మీ స్థానిక టన్నెల్ టెస్ట్ ఈవెంట్లను నిర్వహిస్తున్నప్పుడు ఉత్పత్తిని మీ నిజమైన ఎండ్పాయింట్కు చూపించవచ్చు.
తప్పుగా కాన్ఫిగర్ చేసిన కీలు మీద త్వరగా విఫలమవ్వండి.
పరీక్ష/ప్రత్యక్ష కీలు చుట్టూ అత్యంత సాధారణ ఉత్పత్తి సంఘటన నిశ్శబ్దంగా ఉంటుంది: ఒక మోహరించడం పరీక్ష కీతో ఉంటుంది, చెల్లింపులు రావు, హెచ్చరికలు తదుపరి వ్యాపార రోజు తర్వాత మాత్రమే ఫైర్ అవుతాయి. బూట్ వద్ద దీనిని బ్లాక్ చేయండి: env మరియు కీ ప్రిఫిక్స్ సరిపోలకపోతే ప్రారంభించడానికి నిరాకరించండి.
// Fail fast if test/live get mixed up.
const apiKey = process.env.BLOCKCHAIN0X_API_KEY!;
const env = process.env.NODE_ENV;
if (env === "production" && apiKey.startsWith("sk_test_")) {
throw new Error("Test key in production environment - aborting boot.");
}
if (env !== "production" && apiKey.startsWith("sk_live_")) {
throw new Error("Live key in non-production environment - aborting boot.");
}import os, sys
api_key = os.environ["BLOCKCHAIN0X_API_KEY"]
env = os.environ.get("ENV", "development")
if env == "production" and api_key.startswith("sk_test_"):
sys.exit("Test key in production environment - aborting boot.")
if env != "production" and api_key.startswith("sk_live_"):
sys.exit("Live key in non-production environment - aborting boot.")తర్వాత బాధించే ఐదు పరీక్షా తప్పులు.
Base Sepolia తన స్వంత చైన్ అని మర్చిపోతున్నారు
A sk_test_ కీ Base Sepoliaలో లావాదేవీ చేస్తుంది, Base మైన్నెట్లో కాదు. బ్లాక్ ఎక్స్ప్లోరర్లు, వాలెట్ చిరునామాలు, మరియు గ్యాస్ టోకెన్లు అన్నీ వేరే వేరే ఉన్నాయి. నిజమైన Base చిరునామాను ఒక పరీక్షలో కాపీ చేయడం, అది విఫలమవడం చూడడం, మరియు API విఫలమైంది అని అనుకోవడం సాధారణమైన గందరగోళం. Base Sepolia USDC ఫాసెట్ నుండి ఏజెంట్ యొక్క వాలెట్ చిరునామాను నిధి చేయండి మరియు ఆ చైన్లో ఉన్న చిరునామాలకు చెల్లించండి.
ఫెయిల్యూర్ మార్గాలను పరీక్షించడం లేదు
చాలా టీమ్లు సంతోషంగా ఉండే మార్గాన్ని పరీక్షిస్తాయి - payment.received ను ప్రేరేపించే చెల్లింపు - ఆపై షిప్పింగ్ చేసి, వారి చెల్లించని మార్గం విరిగిపోయిందని తెలుసుకుంటారు. దీన్ని వ్యాయామం చేయండి: వెబ్హుక్ను ఒక చనిపోయిన URL కు సూచించండి మరియు మీ పునఃసమీకరణ స్వీప్ చిక్కిన పనిని పట్టుకుంటుందో లేదో నిర్ధారించండి, మీ హ్యాండ్లర్ నుండి 500ని బలవంతం చేయండి మరియు పునరావృతం idempotent గా ఉందో లేదో ధృవీకరించండి, మరియు payments.create యొక్క 503 (చెయిన్ అడాప్టర్ వాయిర్డ్ చేయబడలేదు) నిర్వహించబడుతున్నదో లేదో తనిఖీ చేయండి. పరీక్షా వాతావరణాలు చౌకగా ఉంటాయి; ఉత్పత్తి డీబగ్గింగ్ ఖరీదైనది.
Webhook URL ఇంకా ఉత్పత్తిలో ngrokని సూచిస్తుంది
కీ ప్రిఫిక్స్లను మార్చడం గుర్తుంచుకోవడం సులభం; వెబ్హుక్ URLని నవీకరించడం మర్చిపోవడం సులభం. మీరు మీ లాప్టాప్ నుండి ngrok టన్నెల్కు ఇంకా చూపిస్తున్న URLతో ప్రత్యక్షంగా వెళ్ళితే, మొదటి ఉత్పత్తి చెల్లింపు ఒక వెబ్హుక్ను ఖాళీకి కాలుస్తుంది. వెబ్హుక్ URL మార్పును డిప్లాయ్ చెక్లిస్ట్లో భాగంగా పరిగణించండి, ఒకసారి సెటింగ్గా కాదు.
ప్రత్యక్ష సమయానికి ప్రాక్సీగా టెస్ట్నెట్ సమయాన్ని నమ్మడం
Base Sepolia, Base mainnet లాగా ఒకే విధంగా ప్రవర్తించదు - block timing మరియు congestion భిన్నంగా ఉంటాయి. Mainnet throughput ను load-test చేయడానికి testnet ను ఉపయోగించవద్దు, మరియు మీ testnet latency production లోనూ అదే ఉంటుందని ఊహించవద్దు. నిజమైన సంఖ్యలు కావాలనప్పుడు, sk_live_ key తో చిన్న మొత్తంలో mainnet smoke test రన్ చేయండి.
సाझా డేటాబేస్లలో పరీక్ష ఫిక్చర్లను వదిలించడం
మీ అభివృద్ధి మరియు ఉత్పత్తి వాతావరణాలు ఒక డేటాబేస్ను పంచుకుంటే (కాదు), పరీక్షా ఈవెంట్లు ప్రత్యక్ష ఈవెంట్లతో ఒకే పట్టికలో ఉంటాయి మరియు మీ ఐడెంపొటెన్సీ డిడూప్ను పగులగొడుతాయి (ఈవెంట్ ID ప్రిఫిక్స్ భిన్నంగా ఉంటుంది కానీ పంక్తి నిజంగా ఉంది). కనీసం, ప్రతి వాతావరణానికి వెబ్హుక్_ఈవెంట్స్ పట్టికను వేరుచేయండి. మెరుగైనది: పూర్తిగా వేరే DBలు. ఇది ఒకసారి కరిస్తే అధికంగా కనిపించే నియమాలలో ఒకటి.
పరీక్షా లూప్ మీ అభివృద్ధి చక్రంలో ఉన్నప్పుడు.
ఒక ఆరోగ్యకరమైన పరీక్ష చక్రం ఏర్పాటు చేయబడినప్పుడు, మిగతా పని ఎక్కువగా కఠినతరం చేయడం: లోడ్ కింద నమ్మదగిన వెబ్హుక్ నిర్వహణ, ఒక తుది భద్రతా చెక్లిస్ట్, మరియు మీరు పక్కన నడుపుతున్న ఏ పూర్వ చెల్లింపు ప్రదాత నుండి మైగ్రేషన్లు.
డెవలపర్లు ఎక్కువగా అడిగే వెబ్హుక్ ప్యాటర్న్స్
ప్రత్యక్షంగా వెళ్లడానికి ముందు మీ ఏజెంట్ వాలెట్ను సురక్షితంగా ఉంచండి
ఏజెంట్-చాలించబడిన API యాక్సెస్ కొరకు Stripe నుండి Blockchain0x కు మిగ్రేట్ చేయండి
docs.blockchain0x.com వద్ద పూర్తి సూచన. టెస్ట్నెట్ వివరాలు: బేస్ చైన్ గ్లోసరీ. ఉత్పత్తి ఉపరితలం: చెల్లింపు API.