מדריך אינטגרציה של Ramp Network ל-On/Off-Ramp

כאשר אפליקציית קריפטו מוכנה אך המשתמשים לא יכולים לטעון או למשוך כספים בנוחות, הצמיחה נעצרת. אנו משלבים on/off-ramp דרך Ramp Network, ומחברים שער fiat עם גישה לחשבונות בנק באמצעות Open Banking. הצוות שלנו מספק את הפרויקט במפתח מלא—החל מהגדרת SDK ועד טיפול ב-webhooks—תוך הבטחת אמינות ותמיכה מתמשכת.

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

שאלות נפוצות

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

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1336
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1294
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1032

מדריך שלב-אחר-שלב ל-On/Off-ramp דרך Ramp Network

תארו לעצמכם: אתם משיקים אפליקציית קריפטו, משתמשים נרשמים בהמוניהם, אבל הם תקועים ב-fiat on-ramp. כרטיסי בנק גובים עמלות גבוהות, ו-QIWI ו-PayPal הן תוכניות אפורות. נתקלנו בזה פעמים רבות. הפתרון הוא שילוב Ramp Network, שירות On/Off-ramp ייעודי המתמקד ב-Open Banking. התכונה הבולטת שלהם היא חיבור ישיר לחשבונות הבנק של המשתמשים דרך Open Banking API באיחוד האירופי ובריטניה, עם עמלות מ-0.49% במקום 2.9% מענקיות הכרטיסים. לאחר ביצוע למעלה מ-50 אינטגרציות כאלה, Ramp הוא אחד הכלים הגמישים ביותר. שער fiat זה מאפשר קניית מטבעות קריפטו (כולל אסימוני ERC-20) ומשיכת fiat בחזרה, דבר קריטי עבור יישומים רבים.

איך לשלב את Ramp Network באפליקציית קריפטו?

האינטגרציה מתחלקת לשלוש שכבות: SDK בצד הלקוח, לוגיקת שרת, והתראות webhook. נעבור על כל אחת עם דוגמאות מעשיות.

אינטגרציית SDK — עבור הפרונטאנד. הוסיפו את החבילה @ramp-network/ramp-instant-sdk, העבירו את המפתח, כתובת הארנק והסכום. Ramp מציג את ווידג'ט הרכישה בעצמו. אנו ממליצים להשתמש ב-swapAmount ב-wei וב-fiatValue כדי לנעול את סכום ה-fiat. זה מפחית החלקה בתנאי תנודתיות.

import { RampInstantSDK } from '@ramp-network/ramp-instant-sdk';

const ramp = new RampInstantSDK({
  hostAppName: 'Your App Name',
  hostLogoUrl: 'https://yourapp.com/logo.png',
  hostApiKey: process.env.RAMP_API_KEY,
  swapAsset: 'ETH_ETH,MATIC_POLYGON',
  userAddress: walletAddress,
  swapAmount: '50000000000000000',
  fiatCurrency: 'EUR',
  fiatValue: 100,
  userEmailAddress: user.email,
});

ramp.on('PURCHASE_CREATED', (purchase, _purchaseViewToken, apiUrl) => {
  console.log('Purchase created:', purchase);
});

ramp.on('PURCHASE_SUCCESSFUL', (purchase) => {
  handleSuccess(purchase);
});

ramp.show();

API בצד השרת — לבדיקת סטטוסים וקבלת רשימות נכסים. משתמש באימות JWT עם אסימונים קצרי מועד. דוגמה ב-Python עם httpx:

import httpx
import jwt
from datetime import datetime, timedelta

class RampClient:
    BASE_URL = "https://api.ramp.network/api"

    def __init__(self, api_key: str, secret: str):
        self.api_key = api_key
        self.secret = secret

    async def get_purchase(self, purchase_id: str) -> dict:
        token = jwt.encode(
            {"iss": self.api_key, "exp": datetime.utcnow() + timedelta(minutes=5)},
            self.secret,
            algorithm="HS256"
        )
        async with httpx.AsyncClient() as client:
            resp = await client.get(
                f"{self.BASE_URL}/purchases/{purchase_id}",
                headers={"Authorization": f"Bearer {token}"}
            )
        return resp.json()

    async def get_supported_assets(self) -> list:
        async with httpx.AsyncClient() as client:
            resp = await client.get(f"{self.BASE_URL}/host-api/assets", params={"hostApiKey": self.api_key})
        return resp.json()["assets"]

Webhook — לקבלת אירועים בזמן אמת. Ramp חותם על בקשות עם JWT ומפתח ציבורי. תמיד אמתו את החתימה:

@app.post("/webhooks/ramp")
async def ramp_webhook(request: Request):
    auth = request.headers.get("Authorization", "").replace("Bearer ", "")
    try:
        payload = jwt.decode(auth, RAMP_PUBLIC_KEY, algorithms=["RS256"])
    except jwt.InvalidTokenError:
        raise HTTPException(403)
    event = await request.json()
    if event["type"] == "CREATED" and event["purchase"]["status"] == "RELEASING":
        await process_pending_purchase(event["purchase"])

למה Ramp Network היא הבחירה האופטימלית ל-On-ramp?

השוואה עם ספקים פופולריים אחרים בפרמטרים מרכזיים:

פרמטר Ramp Network MoonPay Transak
עמלת Open Banking 0.49% 1.0% 1.5%
עמלת כרטיס 2.9% 4.5% 3.5%
העברה בנקאית ישירה כן (SEPA) לא לא
Off-ramp כן כן כן
KYC בצד הספק כן כן כן
התאמת ממשק משתמש SDK + iframe iframe iframe

יתרון העמלות עם Open Banking הוא פי 6 טוב יותר מאשר MoonPay. עבור פרויקטים עם משתמשים אירופאים זה קריטי. בהיקף של 100,000 אירו בחודש, אתם חוסכים עד 2,500 אירו בעמלות.

מה כולל תהליך האינטגרציה?

התהליך מורכב משלבים: ניתוח → הגדרת SDK → לוגיקת שרת → בדיקות → השקה. אנו מכינים חבילה מלאה להשקת On/Off-ramp:

שלב משך תיאור
ניתוח 1-2 ימים לימוד ארכיטקטורת האפליקציה שלכם, זיהוי נקודות אינטגרציה.
הגדרת SDK 2-3 ימים חיבור פרונטאנד, הגדרת פרמטרי ווידג'ט.
לוגיקת שרת 2-4 ימים הטמעת webhooks, אימות חתימות, טיפול בסטטוסי רכישה.
בדיקות 2-3 ימים אימות כל התרחישים: רכישה מוצלחת, שגיאות, החזרים.
השקה יום אחד פריסה לסביבת production, הגדרת ניטור.

בנוסף אנו מספקים:

  • תיעוד: תיאור אינטגרציה, מפרט webhook, תוכניות טיפול בשגיאות.
  • גישה: הגדרת מפתח API, הגדרת webhook, סביבת בדיקות.
  • ממשק משתמש מותאם: ווידג'ט המותאם לעיצוב שלכם, עם תמיכה במצב כהה.
  • הדרכת צוות: סדנה על ניטור וטיפול בהחזרים.
  • תמיכה: שבועיים של תמיכה טכנית לאחר ההשקה.

הגדרת Webhook: הנקודה חייבת להיות נגישה דרך HTTPS ולהחזיר 200 OK. Ramp מנסה שוב עד 3 פעמים עם backoff אקספוננציאלי. רשמו את כל האירועים לצורך דיבוג.

מהן הטעויות הנפוצות בשילוב Ramp?

  • פגות JWT — האסימון חי 5 דקות; הגדירו חידוש אוטומטי.
  • swapAsset לא תקין — בדקו את הפורמט: import { RampInstantSDK } from '@ramp-network/ramp-instant-sdk'; const ramp = new RampInstantSDK({ hostAppName: 'Your App Name', hostLogoUrl: 'https://yourapp.com/logo.png', hostApiKey: process.env.RAMP_API_KEY, swapAsset: 'ETH_ETH,MATIC_POLYGON', userAddress: walletAddress, swapAmount: '50000000000000000', fiatCurrency: 'EUR', fiatValue: 100, userEmailAddress: user.email, }); ramp.on('PURCHASE_CREATED', (purchase, _purchaseViewToken, apiUrl) => { console.log('Purchase created:', purchase); }); ramp.on('PURCHASE_SUCCESSFUL', (purchase) => { handleSuccess(purchase); }); ramp.show(); . לדוגמה, import httpx import jwt from datetime import datetime, timedelta class RampClient: BASE_URL = "https://api.ramp.network/api" def __init__(self, api_key: str, secret: str): self.api_key = api_key self.secret = secret async def get_purchase(self, purchase_id: str) -> dict: token = jwt.encode( {"iss": self.api_key, "exp": datetime.utcnow() + timedelta(minutes=5)}, self.secret, algorithm="HS256" ) async with httpx.AsyncClient() as client: resp = await client.get( f"{self.BASE_URL}/purchases/{purchase_id}", headers={"Authorization": f"Bearer {token}"} ) return resp.json() async def get_supported_assets(self) -> list: async with httpx.AsyncClient() as client: resp = await client.get(f"{self.BASE_URL}/host-api/assets", params={"hostApiKey": self.api_key}) return resp.json()["assets"] או @app.post("/webhooks/ramp") async def ramp_webhook(request: Request): auth = request.headers.get("Authorization", "").replace("Bearer ", "") try: payload = jwt.decode(auth, RAMP_PUBLIC_KEY, algorithms=["RS256"]) except jwt.InvalidTokenError: raise HTTPException(403) event = await request.json() if event["type"] == "CREATED" and event["purchase"]["status"] == "RELEASING": await process_pending_purchase(event["purchase"]) .
  • Webhook שהוחמצ — תמיד הטמיעו עיבוד חוזר לאחר אימות KYC מוצלח.
  • fiatValue לא נכון — העבירו סכום עם שתי ספרות עשרוניות, אחרת עלולה להתרחש החלקה.

ציר זמן ועלות

ציר זמן משוער: מ-5 עד 14 ימי עסקים בהתאם למורכבות. העלות מחושבת באופן אישי — צרו קשר להערכה חינם. אנו מבטיחים שקיפות ומחיר קבוע בהתחלה.

מידע נוסף

לפי תיעוד ה-API של Ramp Network, ניתן לשלב גם on-ramp וגם off-ramp באמצעות SDK יחיד. למידע נוסף על השירות ראו ויקיפדיה.

קבלו ייעוץ על אינטגרציה — בואו נדון בפרטי הפרויקט שלכם. הזמינו אינטגרציה היום והתחילו לקבל fiat תוך שבוע.