உண்மையான பணம் இல்லாமல் முகவர் பணங்களை சோதிக்கவும்.
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 குழாயும்) வளர்ச்சி நேரத்தில் webhook வழங்கலுக்கு.
- ஒரு தனிப்பட்ட மேம்பாட்டு சூழல் - தனித்துவமான சுற்றுப்புற மாறிகள், தனித்துவமான தரவுத்தொகுப்பு (அல்லது குறைந்தது தனித்துவமான அட்டவணைகள்), தனித்துவமான வலைக்குறிப்பு URL.
- webhook patterns guide உடன் வசதி - இந்த வழிகாட்டி நீங்கள் சோதிக்க ஒரு கையாளுநர் உள்ளதாகக் கருதுகிறது.
சோதனை விசைக்கு மாறவும்.
ஒரு sk_test_ விசை Base Sepolia இல் பரிமாற்றம் செய்கிறது; ஒரு sk_live_ விசை Base மெய்நெட் இல் பரிமாற்றம் செய்கிறது. முன்னுருவானது நெட்வொர்க் ஐ தேர்வு செய்கிறது - தனித்த நெட்வொர்க் சுற்றுப்புற மாறி இல்லை, மற்றும் ஒரு சோதனை விசை மெய்நெட் நிதிகளை நகர்த்த முடியாது. எனவே, நீங்கள் ஒரு மேம்பாட்டு சூழலுக்கு மாற்றும் அனைத்தும் விசை (மற்றும் சோதனை webhook ரகசியம்) ஆகும்.
# .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"])ஒரு உண்மையான சோதனை செலவுகளைச் செய்யவும்.
வாலெட் நிதியுதவியுடன், உங்கள் 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), ஒரு பணம் ஒருபோதும் இறங்காது (webhook ஐ ஒரு இறந்த URL க்கு குறிக்கவும் மற்றும் உங்கள் சமன்வயம் சுத்தம் சிக்கிய வேலை பிடிக்கிறதா என்பதை உறுதிப்படுத்தவும் - பெரும்பாலான குழுக்கள் புறக்கணிக்கும் பாதை), மற்றும் ஒரு webhook மீண்டும் முயற்சி (முதல் முறையில் 500 ஐ கட்டாயமாக்கவும் மற்றும் இரண்டாவது முறையில் 200 ஐ கட்டாயமாக்கவும், பிறகு உங்கள் idempotency மறுபடியும் வேலை தவிர்க்கப்பட்டது என்பதை உறுதிப்படுத்தவும்).
உங்கள் உள்ளக கைப்பாட்டிற்கு வெப்ஹுக் களை நுழைக்கவும்.
சோதனை கட்டணங்கள் நீங்கள் சோதனை வலைப்பின்னலுக்காக அமைத்த 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 மெய்நெட் அல்ல. பிளாக் ஆராய்ச்சியாளர்கள், பணப்பை முகவரிகள், மற்றும் எரிபொருள் நாணயங்கள் அனைத்தும் தனித்துவமானவை. ஒரு பொதுவான குழப்பம் ஒரு உண்மையான Base முகவரியை ஒரு சோதனையில் நகலெடுக்கிறது, அது தோல்வியுற்றதைப் பார்க்கிறது, மற்றும் API உடைப்பு என்று நினைக்கிறது. Base Sepolia USDC கிணற்றிலிருந்து முகவரின் பணப்பை முகவரியை நிதியுதவி செய்யவும் மற்றும் அந்த சங்கத்தில் உள்ள முகவரிகளை செலுத்தவும்.
தோல்வி பாதைகளை சோதிக்கவில்லை
அதிகமான அணிகள் மகிழ்ச்சி பாதையை சோதிக்கிறார்கள் - payment.received ஐ செயல்படுத்தும் ஒரு செலவு - பின்னர் கப்பலில் மற்றும் பிறகு அவர்களின் செலுத்தப்படாத பாதை உடைந்துவிட்டது என்பதை கண்டுபிடிக்கிறார்கள். அதை பயிற்சி செய்யவும்: வெப்ஹூக்கைப் ஒரு மரண URL க்கு நோக்குங்கள் மற்றும் உங்கள் சரிசெய்யும் சுத்திகரிப்பு சிக்கிய வேலை பிடிக்கிறது என்பதை உறுதிப்படுத்தவும், உங்கள் கையாளுநரிடமிருந்து 500 ஐ கட்டாயமாக்கவும் மற்றும் மீண்டும் முயற்சிக்கையை அடிப்படையாகக் கொண்டது என்பதை உறுதிப்படுத்தவும், payments.create இன் 503 (சேனைக் இணைப்பாளர் இணைக்கப்படவில்லை) கையாளப்படுகிறதா என்பதைச் சரிபார்க்கவும். சோதனை சூழல்கள் மலிவானவை; உற்பத்தி பிழைதிருத்தம் விலையுயர்ந்தது.
Webhook URL இன்னும் உற்பத்தியில் ngrok க்கு குறிக்கோளாக உள்ளது
விசை முன்னுரிமைகளை மாறுவது நினைவில் வைக்க எளிது; வெப்ஹுக் URL ஐ புதுப்பிப்பது மறக்க எளிது. நீங்கள் உங்கள் லேப்டாப்பில் இருந்து ngrok குழாய்க்கு இன்னும் நோக்கி URL உடன் நேரில் செல்லும் போது, முதல் உற்பத்தி பணம் வெப்ஹுக் வெறுமையில் அடிக்கிறது. வெப்ஹுக் URL மாற்றத்தை ஒரு முறை அமைப்பாக அல்லாமல், வெளியீட்டு சரிபார்ப்பு பட்டியலின் ஒரு பகுதியாகக் கருதவும்.
சோதனை நெட்வொர்க் நேரத்தை நேரடி நேரத்திற்கான பிரதியாக நம்புதல்
Base Sepolia Base mainnet போலவே நடிக்கவில்லை - பிளாக் நேரம் மற்றும் நெரிசல் மாறுபடுகிறது. Mainnet throughput ஐ சோதிக்க testnet ஐப் பயன்படுத்த வேண்டாம், மற்றும் உங்கள் testnet தாமதம் உங்களுக்கு உற்பத்தியில் என்ன காணப்படும் என்பதை நீங்கள் கருத வேண்டாம். நீங்கள் உண்மையான எண்களை தேவைப்படும் போது, sk_live_ விசையுடன் ஒரு சிறிய அளவிலான mainnet புகை சோதனை இயக்கவும்.
பகிர்ந்த தரவுத்தொகுப்புகளில் சோதனை பொருட்களை விட்டுவிடுதல்
உங்கள் மேம்பாட்டு மற்றும் உற்பத்தி சூழல்கள் ஒரு தரவுத்தளத்தைப் பகிர்ந்தால் (பகிராதீர்கள்), சோதனை நிகழ்வுகள் நேரடி நிகழ்வுகளுடன் ஒரே அட்டவணையில் இறங்குகின்றன மற்றும் உங்கள் idempotency dedupe ஐ உடைக்கின்றன (நிகழ்வு ID முன்னணி மாறுபட்டது ஆனால் வரி உண்மையானது). குறைந்தபட்சம், ஒவ்வொரு சூழலுக்கும் webhook_events அட்டவணையை தனிமைப்படுத்தவும். சிறந்தது: முற்றிலும் தனித்தரவுத்தளங்களைப் பயன்படுத்தவும். இது ஒருமுறை கடிக்கும்வரை அதிகமாகத் தோன்றும் விதிமுறைகளில் ஒன்றாகும்.
சோதனை மடல் உங்கள் மேம்பாட்டு சுழலில் உள்ளபோது.
ஒரு ஆரோக்கியமான சோதனை சுற்று இருப்பதற்கான, மீதமுள்ள வேலை பெரும்பாலும் கடுமையாக உள்ளது: சுமை கீழ் நம்பகமான வெப்கோக் கையாளுதல், இறுதி பாதுகாப்பு சரிபார்ப்பு, மற்றும் நீங்கள் ஒருங்கிணைக்கக்கூடிய எந்த முந்தைய பணம் வழங்குநரிலிருந்து இடமாற்றங்கள்.
உருப்படியாளர்கள் அதிகமாக கேட்கும் webhook மாதிரிகள்
நேரில் செல்லும் முன் உங்கள் முகவர் காப்பகத்தை பாதுகாப்பாக வைக்கவும்
எஜென்ட் இயக்கிய API அணுகலுக்காக Stripe இல் இருந்து Blockchain0x க்கு மாறுங்கள்
docs.blockchain0x.com இல் முழு குறிப்புகள். சோதனை நெட்வொர்க் விவரங்கள்: Base chain glossary. தயாரிப்பு மேற்பரப்பு: Payment API.