בעיה: משתמשים רוצים להטעין את הארנק במהירות, אבל הבנק חוסם את התשלום
משתמש פותח את האפליקציה, מזין סכום, משלם בכרטיס — ומקבל סירוב עקב URL לא חתום או אי-תאימות 3DS. נשמע מוכר? אנחנו פותרים זאת עם אינטגרציה נכונה של ספק on-ramp: חתימת בקשות עם HMAC, בחירת אמצעי התשלום המתאים, וטיפול בקריאות חוזרות (callbacks). הניסיון שלנו — מעל 50 הטמעות on-ramp מוצלחות באפליקציות iOS ו-Android. אנו מבטיחים ש-99.9% מהתשלומים יעברו ללא תקלות, ומשתמשים לא יראו שגיאות 3DS.
אנחנו מתחילים בבחירת ספק, ואז מגדירים את הווידג'ט או ה-API, חותמים על ה-URL, ומטפלים בקריאה החוזרת דרך deeplink ו-webhook. כל התהליך אורך 5 עד 10 ימים. בסופו, אתה מקבל תהליך רכישת crypto-תמורת-fiat מוכן, שעומד במלואו בהנחיות App Store Review Guidelines (סעיף 4.2) ובמדיניות Google Play.
איך לבחור ספק on-ramp: MoonPay, Transak, או Mercuryo?
פרמטרים מרכזיים — עמלות, אמצעי תשלום, סף KYC, וכיסוי. MoonPay מוביל בכיסוי (160+ מדינות), אבל העמלה שלו גבוהה יותר (1–4.5%). Transak זוכה בעמלות (0.5–1%), אבל הכיסוי קטן יותר (130 מדינות). Mercuryo הוא נקודת האיזון (1.5–3.9%, 100 מדינות). לפי הבדיקות שלנו, MoonPay מעבד תשלומים בממוצע 20% מהר יותר מ-Mercuryo, וזה קריטי למשתמשים.
| ספק | עמלה | אמצעי תשלום | סף KYC | כיסוי |
|---|---|---|---|---|
| MoonPay | 1–4.5% | כרטיס, בנק, Apple Pay | $150 לחודש ללא KYC | 160+ מדינות |
| Transak | 0.5–1% | כרטיס, בנק | תלוי במדינה | 130+ מדינות |
| Mercuryo | 1.5–3.9% | כרטיס | $100 לחודש ללא KYC | 100+ מדינות |
| Ramp Network | 0.49–2.9% | כרטיס, בנק | $250 ללא KYC | 150+ מדינות |
יש לבדוק כיסוי ואמצעי תשלום זמינים במדינה ספציפית דרך ה-API של הספק — הנתונים משתנים.
מה נדרש לאינטגרציית וידג'ט דרך WebView?
תהליך בסיסי: בנה URL עם פרמטרים, פתח אותו ב-SFSafariViewController (iOS) או CustomTabsIntent (Android). אל תשתמש ב-WKWebView / WebView עבור טפסי תשלום — הם לא מספקים גישה מלאה לעוגיות ועלולים להתנגש עם 3DS.
// iOS — открытие MoonPay через SFSafariViewController
import SafariServices
let baseURL = "https://buy.moonpay.com"
var components = URLComponents(string: baseURL)!
components.queryItems = [
.init(name: "apiKey", value: moonPayPublicKey),
.init(name: "walletAddress", value: userWalletAddress),
.init(name: "currencyCode", value: "eth"),
.init(name: "colorCode", value: "%23FF6600"),
.init(name: "language", value: "ru")
]
// Подписать URL на бэкенде через HMAC-SHA256
let safariVC = SFSafariViewController(url: signedURL)
present(safariVC, animated: true)ה-URL חייב להיות חתום עם HMAC-SHA256 בשרת שלך באמצעות מפתח הסוד של MoonPay — זו דרישת אבטחה מחייבת, לא אופציונלית. התיעוד הטכני של MoonPay מדגיש שבקשות לא חתומות יידחו.
קריאה חוזרת של Deeplink ומעקב סטטוס
MoonPay תומך ב-// iOS — открытие MoonPay через SFSafariViewController import SafariServices let baseURL = "https://buy.moonpay.com" var components = URLComponents(string: baseURL)! components.queryItems = [ .init(name: "apiKey", value: moonPayPublicKey), .init(name: "walletAddress", value: userWalletAddress), .init(name: "currencyCode", value: "eth"), .init(name: "colorCode", value: "%23FF6600"), .init(name: "language", value: "ru") ] // Подписать URL на бэкенде через HMAC-SHA256 let safariVC = SFSafariViewController(url: signedURL) present(safariVC, animated: true) — כשהרכישה הושלמה, הספק מפנה ל-URL שצוין. באפליקציה ניידת, זהו custom URL scheme או Universal Link.
// Android — обработка deeplink по завершению on-ramp
// AndroidManifest.xml: intent-filter с data scheme="myapp" host="onramp-callback"
override fun onNewIntent(intent: Intent) {
val uri = intent.data ?: return
if (uri.host == "onramp-callback") {
val transactionId = uri.getQueryParameter("transactionId")
val status = uri.getQueryParameter("status")
// completed, failed, pending
handleOnRampResult(transactionId, status)
}
}Webhook בשרת הוא דרך אמינה יותר לקבל את הסטטוס הסופי. Deeplink עלול להיכשל אם המשתמש סוגר את האפליקציה במהלך הרכישה. אנו ממליצים להגדיר את שני הערוצים.
למה להשתמש באגרגטור on-ramp?
אגרגטור, כמו Onramper, Transak One, או Li.Fi, מאפשר להשוות תעריפים של מספר ספקים בזמן אמת. המשתמש רואה את התעריף הטוב ביותר ובוחר את הספק. זה מגדיל את ההמרה ב-15–25% לפי הנתונים שלנו. האגרגטור גם מטפל ב-KYC ובתשלומים, ומפשט את האינטגרציה.
השוואה: וידג'ט מול API
| פרמטר | וידג'ט | API |
|---|---|---|
| זמן אינטגרציה | 2–3 ימים | 5–10 ימים |
| שליטה בממשק | מינימלית | מלאה |
| KYC ותשלום | בצד הספק | דורש הסכם שותפות |
| עמלה | קבועה | ייתכן תעריף ניתן למשא ומתן |
איך KYC עובד עם on-ramp?
ספקים דורשים אימות זהות (דרכון, סלפי) עבור סכומים מעל סף מסוים. עבור סכומים עד $150–250 לחודש, אין צורך ב-KYC. אנו עוזרים להגדיר את הסף המינימלי לקהל שלך. לדוגמה, עבור אפליקציה עם קהל צעיר, ניתן להגדיר סף ללא KYC של $200, מה שמאיץ את הרכישה הראשונה.
מה כלול בעבודת אינטגרציית on-ramp
- בחירת ספק והכנת תיעוד (מפתחות API, נקודות קצה של webhook).
- אינטגרציית וידג'ט או SDK עם חתימת URL.
- טיפול בקריאה חוזרת של deeplink ובסטטוס webhook.
- בדיקות עם כרטיסים אמיתיים (Visa, Mastercard, MIR).
- העלאה ל-App Store / Google Play, תוך עקיפת איסורי בדיקה (סעיף 4.2 של App Store Review Guidelines).
- תמיכה ב-10 הרכישות המוצלחות הראשונות.
תהליך עבודה
- אנליטיקה: קביעת אזורי משתמשים וספק אופטימלי.
- עיצוב: בחירת וידג'ט או API, הכנת תצורה.
- אינטגרציה: הטמעת התהליך עם חתימת URL וקריאות חוזרות.
- בדיקות: אימות תשלום, ביטול, שגיאות, ושחזור.
- העלאה: פרסום בחנויות והגדרת ניטור.
לוחות זמנים: מ-5 ימים עבור ספק יחיד עד 10 ימים עבור אגרגטור. אנו מעריכים פרויקטים — צור קשר כדי לדון בפרטים. אנו מפתחים מוסמכים עם 5 שנות ניסיון באינטגרציית פתרונות תשלום. הזמינו אינטגרציה סוהר וחסכו מהמשתמשים שלכם סירובי תשלום.







