אנו משלבים את שער התשלומים Fondy (Cloudipsp) באפליקציות מובייל ל-iOS ולאנדרואיד. שגיאת אינטגרציה היא לא רק תשלום שגוי—זו סיכון להיחסם ב-App Store עקב הפרת סעיף 4.2 או סעיף 5.1. עם ניסיון של 5+ שנים ו-30+ אינטגרציות מוצלחות, אנו יודעים כיצד להימנע ממלכודות טיפוסיות: חתימה שגויה, כשל ב-3DS, אי-תאימות ל-Apple Pay. אנו משתמשים ב-SDKים מקוריים cloudipsp-ios / cloudipsp-android, ומבטיחים אישור בדיקה והמרה מקסימלית.
מקרה בוחן: תיקון חתימה לפרויקט מסחר אלקטרוני גדול
אחד הלקוחות שלנו—מרקטפלייס עם מיליוני משתמשים—נתקל בשגיאת Invalid signature בעת אינטגרציה עם Fondy. איתרנו את הבעיה למיון פרמטרים שגוי: השרת של הלקוח כלל פרמטר נוסף merchant_data שלא אמור להשתתף בחתימה. לאחר תיקון הלוגיקה בצד השרת, התשלומים עברו בצורה חלקה, והמרת התשלומים עלתה ב-15%. מקרה זה מדגים את החשיבות של אוטומציה בחתימות.
מהי תוכנית תשלום דו-שלבית ולמה היא בטוחה יותר?
Fondy משתמשת בתוכנית דו-שלבית: הלקוח יוצר טוקן כרטיס במכשיר הנייד, מעביר אותו לשרת, והשרת מעבד את התשלום. זה מאובטח ומפחית את עומס ה-PCI DSS. בניגוד לאינטגרציה של WebView, ה-SDK המקורי אינו מעביר נתונים רגישים דרך השרת שלך, וממזער סיכוני דליפה. בנוסף, אתה מקבל תמיכה מובנית ב-3DS 2.0, Apple Pay ו-Google Pay—כל זאת ללא עלויות פיתוח נוספות.
כיצד להימנע מטעויות אינטגרציה טיפוסיות של Fondy
הגדרת SDK (לשתי הפלטפורמות):
// Android, build.gradle
implementation("com.cloudipsp:cloudipsp-android:1.x.x")
// iOS, Podfile
pod 'Cloudipsp' קבלת טוקן ל-SDK (נקודת קצה בשרת)
POST https://pay.fondy.eu/api/checkout/token
{
"request": {
"server_callback_url": "https://your-server.com/payment/callback",
"order_id": "ORDER-1234",
"currency": "UAH",
"merchant_id": "1396424",
"order_desc": "Заказ №1234",
"amount": "15000",
"signature": "sha1_signature"
}
}התשובה מכילה // Android, build.gradle implementation("com.cloudipsp:cloudipsp-android:1.x.x") // iOS, Podfile pod 'Cloudipsp' —העבר אותו ל-SDK הנייד.
אנדרואיד: CardInputView ותשלום
// Токен полученный от сервера
val token = "server_token"
val cardInputView = CardInputView(context)
val cardNumber = CardNumber("4111 1111 1111 1111")
val mm = ExpireMonth("12")
val yy = ExpireYear("2025")
val cvv = Cvv("123")
Cloudipsp.checkout(
context = context,
token = token,
card = Card(cardNumber, mm, yy, cvv),
email = "[email protected]",
listener = object : Cloudipsp.PayCallback {
override fun onPaidProcessed(order: Order) {
if (order.status == Order.Status.Approved) {
handleSuccess(order.transactionId)
}
}
override fun onPaidFailure(e: Cloudipsp.Exception) {
handleError(e.message)
}
override fun on3dsRedirect(request: Cloudipsp.Request3ds, webView: WebView) {
webView.loadUrl(request.url)
}
}
) iOS: CloudipspView
import Cloudipsp
let api = Cloudipsp(merchantId: 1396424, callbackUrl: "yourapp://payment/result")
let paymentController = PaymentController(token: serverToken)
paymentController.present(in: self) { [weak self] result in
switch result {
case .success(let order):
self?.handleSuccess(order.orderStatus)
case .failure(let error):
self?.handleError(error.localizedDescription)
}
} למה אינטגרציה מקורית עדיפה על WebView
ה-SDK המקורי של Cloudipsp מאיץ את התשלום פי 2–3 ומגביר את ההמרה בזכות 3DS מובנה והודעות push. מעטפות WebView נחסמות לעיתים קרובות על ידי ה-App Store (ראה סעיף 4.2) ואינן תומכות ב-Apple Pay או Google Pay. אנו מבטיחים פעולה תקינה עם APNs ו-FCM להודעות סטטוס תשלום. אתה חוסך עד 40% על תיקונים לאחר בדיקה בהשוואה לפתרונות WebView.
כיצד לחבר את Fondy ב-4 שלבים
- קבל מזהה סוחר וסיסמה מ-Fondy דרך החשבון האישי שלך.
- התקן את ה-SDK: דרך Gradle לאנדרואיד או CocoaPods ל-iOS.
- צור נקודת קצה בשרת
POST https://pay.fondy.eu/api/checkout/token { "request": { "server_callback_url": "https://your-server.com/payment/callback", "order_id": "ORDER-1234", "currency": "UAH", "merchant_id": "1396424", "order_desc": "Заказ №1234", "amount": "15000", "signature": "sha1_signature" } }ליצירת טוקן. - יישם ממשק משתמש עם
token(אנדרואיד) או// Токен полученный от сервера val token = "server_token" val cardInputView = CardInputView(context) val cardNumber = CardNumber("4111 1111 1111 1111") val mm = ExpireMonth("12") val yy = ExpireYear("2025") val cvv = Cvv("123") Cloudipsp.checkout( context = context, token = token, card = Card(cardNumber, mm, yy, cvv), email = "[email protected]", listener = object : Cloudipsp.PayCallback { override fun onPaidProcessed(order: Order) { if (order.status == Order.Status.Approved) { handleSuccess(order.transactionId) } } override fun onPaidFailure(e: Cloudipsp.Exception) { handleError(e.message) } override fun on3dsRedirect(request: Cloudipsp.Request3ds, webView: WebView) { webView.loadUrl(request.url) } } )(iOS) וטיפול בקריאות חוזרות.
חתימת בקשות ואימות קריאות חוזרות
החתימה נוצרת באמצעות SHA-1 של כל פרמטרי הבקשה הממוינים בסדר אלפביתי, עם הוספת import Cloudipsp let api = Cloudipsp(merchantId: 1396424, callbackUrl: "yourapp://payment/result") let paymentController = PaymentController(token: serverToken) paymentController.present(in: self) { [weak self] result in switch result { case .success(let order): self?.handleSuccess(order.orderStatus) case .failure(let error): self?.handleError(error.localizedDescription) } } בסוף. מיון שגוי הוא גורם נפוץ לשגיאת /api/token. אנו הופכים תהליך זה לאוטומטי. בקשות קריאה חוזרת מ-Fondy אל CardInputView מאומתות באופן דומה: כל שדות התשובה ממוינים ונחתמים. זה מבטיח את האותנטיות של העסקה.
השוואת שלבים ב-iOS ובאנדרואיד
| שלב | iOS | אנדרואיד |
|---|---|---|
| אינטגרציית SDK | CocoaPod PaymentController |
Gradle password |
| ממשק הזנת כרטיס | Invalid signature |
server_callback_url |
| טיפול ב-3DS | WebView אוטומטי | Cloudipsp |
| טוקניזציה | דרך API של com.cloudipsp:cloudipsp-android |
דרך PaymentController |
שגיאות טיפוסיות והפתרונות שלהן
| שגיאה | סיבה | פתרון |
|---|---|---|
CardInputView |
מיון פרמטרים שגוי | אוטומציה של חתימה |
| 3DS לא נפתח | חוסר WebView ב-iOS | השתמש ב-Cloudipsp.PayCallback.on3dsRedirect |
| קריאה חוזרת לא התקבלה | Cloudipsp לא חוקי |
בדוק זמינות שרת |
מה כוללת העבודה שלנו
- אינטגרציית Cloudipsp SDK (iOS / אנדרואיד)
- נקודת קצה בשרת לקבלת טוקן
- יישום ממשק משתמש עם CardInputView או PaymentController
- הגדרת 3DS דרך WebView
- אימות בקשות קריאה חוזרת
- בדיקות בסביבת Sandbox ובסביבת ייצור
- תיעוד אינטגרציה והעברת גישה
- הדרכת הצוות שלך על מודול התשלום
- תמיכה למשך שבועיים לאחר השחרור
לוחות זמנים ומחירים
אינטגרציה של פלטפורמה אחת אורכת 2–3 ימים. לשתי הפלטפורמות—עד 4 ימים עם פיתוח מקבילי. העלות מחושבת באופן אישי לפי ארכיטקטורת האפליקציה שלך, אך אנו מספקים הערכה שקופה לפני תחילת העבודה. יש לנו ניסיון באינטגרציה עם Firebase, Supabase ושרתים מותאמים אישית.
הזמן אינטגרציה של Fondy לאפליקציה שלך—אנו מבטיחים אישור App Store Review והמרת תשלומים גבוהה. קבל ייעוץ: אנו נעריך את הפרויקט שלך. צור קשר—נייעץ לך על הדרך הטובה ביותר לשלב תשלומים באפליקציה שלך.







