खरे पैसे न वापरता एजंट पेमेंट्सची चाचणी करा.
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 पहा.
- एक
sk_test_API की आणि डॅशबोर्डवरून जुळणारा चाचणी साइनिंग गुप्त. - विकास-वेळी वेबहुक वितरणासाठी ngrok (किंवा कोणतीही HTTPS टनल).
- एक स्वतंत्र विकास वातावरण - भिन्न env vars, भिन्न डेटाबेस (किंवा किमान भिन्न टेबल), भिन्न वेबहुक URL.
- Comfort with the webhook patterns guide - हा मार्गदर्शक assumes तुम्हाला चाचणीसाठी एक हँडलर आहे.
चाचणी कीवर स्विच करा.
एक sk_test_ की Base Sepolia वर व्यवहार करते; एक 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 कॉल नाही - तुम्ही सार्वजनिक Base Sepolia 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"])एक वास्तविक चाचणी पेमेंट करा.
Wallet मध्ये निधी आल्यावर तुमच्या sk_test_ key वर payments.create कॉल करा. Base Sepolia वर test funds वापरून हा प्रत्यक्ष transfer आहे, आणि तो payment.received webhook mainnet प्रमाणेच trigger करतो - त्यामुळे तुम्ही simulation नाही, तर खरा code path तपासता. Event तुमच्या tunnelled handler वर येताना पहा.
// 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 हा त्याचा स्वतःचा चेन आहे हे विसरणे
एक sk_test_ की Base Sepolia वर व्यवहार करते, मुख्य नेटवर्कवर नाही. ब्लॉक एक्सप्लोरर्स, वॉलेट पत्ते, आणि गॅस टोकन सर्व वेगळे आहेत. एक सामान्य गोंधळ म्हणजे वास्तविक Base पत्ता चाचणीमध्ये कॉपी करणे, ते अपयशी होईल आणि API तुटले आहे असे विचारणे. Base Sepolia USDC नळातून एजंटच्या वॉलेट पत्त्यावर निधी भरा आणि त्या चेनवर अस्तित्वात असलेल्या पत्त्यांना पैसे द्या.
अयशस्वी मार्गांची चाचणी करत नाही
अधिकांश संघ आनंददायी मार्गाची चाचणी घेतात - एक पेमेंट जे payment.received चालवते - नंतर शिप करतात आणि नंतर त्यांच्या न भरलेल्या मार्गात बिघाड झाल्याचे समजतात. याचा अभ्यास करा: वेबहुक एका मृत URL कडे लक्ष द्या आणि तुमचा समायोजन स्वेप स्टक जॉब पकडतो याची पुष्टी करा, तुमच्या हँडलरकडून 500 मजबूर करा आणि पुनर्प्रयत्न आयडेम्पोटेंट आहे याची पडताळणी करा, आणि payments.create चा 503 (चेन अडॅप्टर वायर्ड नाही) हाताळला जातो याची तपासणी करा. चाचणी वातावरण स्वस्त आहेत; उत्पादन डिबगिंग महाग आहे.
Webhook URL अद्याप उत्पादनात ngrok कडे निर्देशित आहे
की प्रीफिक्स बदलणे लक्षात ठेवणे सोपे आहे; वेबहुक URL अद्यतनित करणे विसरणे सोपे आहे. जर आपण आपल्या लॅपटॉपवरील ngrok टनेलवर अद्याप URL लक्षित करून थेट गेलात, तर पहिला उत्पादन पेमेंट एक वेबहुक शून्यात फेकतो. वेबहुक URL बदलणे तैनात चेकलिस्टचा भाग म्हणून विचार करा, एकदाच सेटिंग म्हणून नाही.
जिवंत वेळेसाठी प्रॉक्सी म्हणून चाचणी वेळेवर विश्वास ठेवणे
Base Sepolia Base मुख्यनेटसारखे वागत नाही - ब्लॉक टाइमिंग आणि कोंडी वेगळी आहे. मुख्यनेट थ्रूपुट लोड-टेस्ट करण्यासाठी टेस्टनेट वापरू नका, आणि तुमच्या टेस्टनेट लेटन्सीला तुम्ही उत्पादनात काय पाहाल असे गृहीत धरू नका. तुम्हाला वास्तविक संख्यांची आवश्यकता असताना, sk_live_ कीसह लहान रक्कम मुख्यनेट स्मोक टेस्ट चालवा.
सामायिक डेटाबेसमध्ये चाचणी फिक्स्चर सोडणे
जर तुमच्या dev आणि prod वातावरणांनी एक डेटाबेस सामायिक केला (नका), तर चाचणी इव्हेंट्स लाइव्ह इव्हेंट्ससह त्याच टेबलमध्ये येतात आणि तुमच्या आयडेम्पोटेन्सी डेडुपला तोडतात (इव्हेंट ID प्रीफिक्स वेगळा आहे पण पंक्ती खरी आहे). किमान, प्रत्येक वातावरणासाठी webhook_events टेबल पृथक करा. चांगले: संपूर्णपणे वेगळे DBs. हे एक नियम आहे जो एकदा चावल्यास अत्यधिक दिसतो.
एकदा चाचणी लूप तुमच्या विकास चक्रात.
चांगला test loop तयार झाल्यावर उरलेले काम मुख्यतः hardening चे असते: load खाली विश्वसनीय webhook handling, अंतिम security checklist, आणि तुम्ही सोबत चालवत असलेल्या जुन्या payment provider कडून migrations.
डेव्हलपर्स सर्वात जास्त विचारतात त्या वेबहुक पॅटर्न
लाइव्ह होण्यापूर्वी तुमचा एजंट वॉलेट सुरक्षित करा
एजंट-चालित API प्रवेशासाठी Stripe वरून Blockchain0x कडे स्थलांतर करा
पूर्ण संदर्भ docs.blockchain0x.com येथे आहे. टेस्टनेट तपशील: Base chain glossary. उत्पादन पृष्ठ: Payment API.