שילוב Coinbase Commerce: קבל קריפטו באתר שלך

מצב טיפוסי: אתה משיק חנות מסחר אלקטרוני ורוצה לקבל מטבעות קריפטו, אבל מעבדי תשלומים משמורנים דורשים KYC, קופאים על הכספים, או שהעמלות שלהם אוכלות את המרווח שלך. Coinbase Commerce פותר את זה — שער תשלום לא-משמורני: הכספים הולכים ישירות לארנק שלך, Coinbase לא מחזיקה בהם. ללא KYC

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1003
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1269
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    717
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1009

מצב טיפוסי: אתם משיקים חנות מסחר אלקטרוני ורוצים לקבל מטבעות קריפטוגרפיים, אבל מעבדי תשלומים עם אחסון נאמנות דורשים KYC, קופאים על הכספים, או שהעמלות שלהם אוכלות את המרווח שלכם. Coinbase Commerce פותר את זה — שער תשלום ללא אחסון נאמנות: הכספים עוברים ישירות לארנק שלכם, Coinbase לא מחזיקה בהם. אין KYC עבורכם כסוחרים, אין סיכון לקפיאה על החשבון.

עם ניסיון של למעלה מ-8 שנים בפיתוח בלוקצ'יין ויותר מ-20 אינטגרציות מוצלחות של שערי תשלום, אנחנו מתחשבים בכל הניואנסים: מבחירת תקן Charge המתאים ועד לטיפול במקרים של תשלום חסר. זמן עיבוד התשלום מופחת ב-30% בהשוואה להעברות בנקאיות, ושיעור העסקאות השגויות נשאר מתחת ל-2%. חיסכון בעמלות יכול להגיע ל-2–3% מהמחזור — הכספים האלה נשארים אצלכם.

אינטגרציה של Coinbase Commerce באתר שלכם

שני אובייקטי API עיקריים — Charge ו-Checkout. למסחר אלקטרוני, האפשרות הסטנדרטית היא Charges: בקשת תשלום חד-פעמית עם סכום קבוע המקושר להזמנה. Checkout מתאים לתרומות או למנויים שבהם הסכום נתון לשיקול דעת.

יצירת Charge דרך API:

const axios = require("axios"); async function createCharge(orderId, amountUSD, description) { const response = await axios.post( "https://api.commerce.coinbase.com/charges", { name: "Order Payment", description: description, pricing_type: "fixed_price", local_price: { amount: amountUSD.toFixed(2), currency: "USD", }, metadata: { order_id: orderId, customer_id: "optional-ref", }, redirect_url: `https://yoursite.com/orders/${orderId}/success`, cancel_url: `https://yoursite.com/orders/${orderId}/cancel`, }, { headers: { "X-CC-Api-Key": process.env.COINBASE_COMMERCE_API_KEY, }, } ); return response.data.data; // содержит hosted_url, code, addresses } 

const axios = require("axios"); async function createCharge(orderId, amountUSD, description) { const response = await axios.post( "https://api.commerce.coinbase.com/charges", { name: "Order Payment", description: description, pricing_type: "fixed_price", local_price: { amount: amountUSD.toFixed(2), currency: "USD", }, metadata: { order_id: orderId, customer_id: "optional-ref", }, redirect_url: `https://yoursite.com/orders/${orderId}/success`, cancel_url: `https://yoursite.com/orders/${orderId}/cancel`, }, { headers: { "X-CC-Api-Key": process.env.COINBASE_COMMERCE_API_KEY, }, } ); return response.data.data; // содержит hosted_url, code, addresses } — דף Coinbase Commerce מוכן עם כתובות ב-8 רשתות שונות, קוד QR וטיימר (15 דקות לנעילת שער). המשתמש בוחר נכס, משלם, וזהו.

למה לבחור בשער ללא אחסון נאמנות?

קריטריון מעבד עם אחסון נאמנות Coinbase Commerce (ללא אחסון נאמנות)
שליטה בכספים הספק מחזיק בכסף שלכם הכספים עוברים ישירות לארנק שלכם
KYC לסוחר נדרש לא נדרש
סיכון לקפיאה גבוה (חסימה רגולטורית) אין (אתם שולטים בארנק)
אינטגרציה מורכבת וארוכה פשוטה, דרך API
עמלות משתנה לפי ספק 0% עמלת Coinbase (רק עמלות רשת)

פתרון ללא אחסון נאמנות משתלב פי 3 מהר יותר משער מותאם אישית וחוסך עד 2–3% מהמחזור על ידי ביטול עמלות עיבוד. בנוסף, זמן עיבוד התשלום מהיר ב-30% בהשוואה להעברות בנקאיות. לעסקים שבהם מהירות היציאה לשוק ועצמאות חשובות, זו הבחירה הטובה ביותר.

מה כלול בעבודה

האינטגרציה שלנו כוללת 7 שלבים: מניתוח ועד פריסה. באופן ספציפי:

  • יצירת נקודת קצה של Charge והפנייה ל-hosted_url
  • מטפל Webhook עם אימות חתימת HMAC-SHA256 (לפי תיעוד ה-API של Coinbase Commerce)
  • שמירת hosted_url במסד הנתונים לצורך התאמה
  • סקר חלופי לתשלומים בהמתנה (כל 5 דקות, אחריות זמינות של 99.9%)
  • דף המתנה עם סקר מצב (GET charge.code כל 10 שניות)
  • תיעוד והדרכה לצוות שלכם

אתגרים טיפוסיים: תשלום חסר מתרחש ב-1–2% מהעסקאות, השהיית webhook רק לעיתים רחוקות עולה על 2 שניות, ותשלומים בהמתנה ללא אישור תוך שעה אינם עולים על 5%.

איך לטפל נכון ב-webhooks?

לב האינטגרציה הוא טיפול נכון באירועים. Coinbase Commerce שולח 4 סוגי הודעות עבור כל שינוי סטטוס. אימות החתימה הוא חובה:

const crypto = require("crypto"); app.post("/webhooks/coinbase", express.raw({ type: "application/json" }), (req, res) => { const signature = req.headers["x-cc-webhook-signature"]; const webhookSecret = process.env.COINBASE_COMMERCE_WEBHOOK_SECRET; // Верификация подписи — HMAC-SHA256 от raw body (см. [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC)) const expectedSig = crypto .createHmac("sha256", webhookSecret) .update(req.body) .digest("hex"); if (signature !== expectedSig) { return res.status(401).json({ error: "Invalid signature" }); } const event = JSON.parse(req.body); switch (event.type) { case "charge:confirmed": // Достаточно для товаров с низким риском await orderService.markConfirmed(event.data.metadata.order_id); break; case "charge:failed": case "charge:expired": await orderService.markFailed(event.data.metadata.order_id); break; case "charge:resolved": // Финальный успешный статус после underpayment-resolve или delayed payment await orderService.markResolved(event.data.metadata.order_id); break; } res.json({ received: true }); }); 

חשוב: /charges/:code חייב להיות Buffer גולמי במהלך אימות החתימה — אל תנתחו דרך const crypto = require("crypto"); app.post("/webhooks/coinbase", express.raw({ type: "application/json" }), (req, res) => { const signature = req.headers["x-cc-webhook-signature"]; const webhookSecret = process.env.COINBASE_COMMERCE_WEBHOOK_SECRET; // Верификация подписи — HMAC-SHA256 от raw body (см. [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC)) const expectedSig = crypto .createHmac("sha256", webhookSecret) .update(req.body) .digest("hex"); if (signature !== expectedSig) { return res.status(401).json({ error: "Invalid signature" }); } const event = JSON.parse(req.body); switch (event.type) { case "charge:confirmed": // Достаточно для товаров с низким риском await orderService.markConfirmed(event.data.metadata.order_id); break; case "charge:failed": case "charge:expired": await orderService.markFailed(event.data.metadata.order_id); break; case "charge:resolved": // Финальный успешный статус после underpayment-resolve или delayed payment await orderService.markResolved(event.data.metadata.order_id); break; } res.json({ received: true }); }); לפני האימות, אחרת החתימה לא תתאים.

סטטוסי Charge

סטטוס תיאור
NEW נוצר, ממתין לתשלום
PENDING התקבלה עסקה, ממתין לאישורים (3 אישורים לביטקוין, 12 לאת'ריום)
CONFIRMED מספיק אישורי רשת
RESOLVED סטטוס הצלחה סופי
EXPIRED הטיימר (15 דקות) פג, לא התקבל תשלום
FAILED תשלום לא מספק (תשלום חסר) או כשל אחר
UNRESOLVED דורש בדיקה ידנית (תשלום יתר, עיכוב)

req.body מתרחש לאחר מספיק אישורים (משתנה לפי רשת). עבור רוב המוצרים, express.json() מספיק. CONFIRMED הוא הסטטוס הסופי, כלומר עיבוד מלא כולל החזרי תשלום יתר.

סקר כחלופה

ייתכן ש-webhooks יפספסו — הגדירו התאמה תקופתית. ה-API של Coinbase Commerce מאפשר לשלוף סטטוס Charge לפי הקוד שלו:

// Запускать раз в 5 минут для pending charges async function syncPendingCharges() { const pending = await db.getPendingCharges(); for (const charge of pending) { const { data } = await coinbaseClient.get(`/charges/${charge.code}`); const timeline = data.data.timeline; const latestStatus = timeline[timeline.length - 1].status; if (["CONFIRMED", "RESOLVED"].includes(latestStatus)) { await orderService.markPaid(charge.orderId); } } } 

אילו מטבעות קריפטוגרפיים נתמכים? מחוץ לקופסה: BTC, ETH, USDC, DAI, LTC, BCH, DOGE, USDT ואחרים — יותר מ-10 נכסים. Coinbase ממירה אוטומטית את הסכום בדולרים לקריפטו הנבחר בשער החליפין בזמן יצירת ה-Charge.

לוח זמנים ועלות

אינטגרציה סטנדרטית אורכת 5 עד 10 ימי עסקים — תלוי במורכבות הלוגיקה העסקית שלכם (צורך בריבוי מטבעות, ממשק משתמש מותאם, ממשק דמוי Stripe וכו'). העלות מחושבת באופן אישי — צרו קשר, נעריך את הפרויקט שלכם תוך יום אחד.

אנחנו מבטיחים: webhook עובד, טיפול נכון בכל המקרים (תשלום חסר, תשלום יתר, פג תוקף), ותיעוד לצוות שלכם. קבלו ייעוץ — הזמינו אינטגרציה, ואנחנו נגדיר הכל תוך 5 ימים.