אנו מסייעים לעסקים בשילוב תשלומי Solana עבור שווקים בנפח גבוה, ומאפשרים תשלומי קריפטו מהירים ובעלי עמלות נמוכות. Solana Pay הוא הכלי המרכזי, אך השילוב שלו דורש הבנה של מכניקת העסקאות, סופיות ואבטחה. בואו נצלול לפרויקט אמיתי: הקמת שער תשלום של Solana לשוק עם מחזור חודשי של מעל 50,000 דולר. מאז 2019, שילבנו את Solana Pay ביותר מ-30 פרויקטים, וצברנו ניסיון במערכות בעומס גבוה.
אם אתם רוצים לקבל תשלומי Solana באתר שלכם, הייחודיות של תשלומי Solana היא שאין תקן מקורי של "בקשת תשלום" כמו BIP-21 (ביטקוין) או EIP-681 (את'ריום). במקום זאת, יש את Solana Pay — פרוטוקול פתוח שפותח על ידי Solana Labs ומכסה את רוב מקרי השימוש בתשלומים: העברות SOL פשוטות, תשלומי אסימוני SPL, ובקשות טרנזקציוניות עם לוגיקת backend שרירותית.
איך Solana Pay עובד
Solana Pay משתמש בסכמת ה-URL solana:<recipient>?amount=<value>&label=<label>&message=<message>&memo=<memo> המקודדת בקוד QR. הארנק מזהה את ה-URL ומציג למשתמש את הפרטים: נמען, סכום, אסימון. לשילוב, אתם רק צריכים ליצור URL כזה ב-backend ולהציג את ה-QR. אימות התשלום נעשה על ידי חיפוש מפתח ציבורי ייחודי (reference) בבלוקצ'יין.
Solana Pay: בקשת העברה
התרחיש הפשוט ביותר הוא בקשה להעברת סכום קבוע של SOL או אסימון SPL. סכמת ה-URL:
solana:<recipient>?amount=<value>&label=<label>&message=<message>&memo=<memo> דוגמה לתשלום של 10 USDC:
solana:7Np41RSSZFkBmBUkVBntbRMzEnbZBqVkjFEf3BQnkGTi?amount=10&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&label=MyShop&message=Order%20%2312345&memo=ORDER-12345 solana:7Np41RSSZFkBmBUkVBntbRMzEnbZBqVkjFEf3BQnkGTi?amount=10&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&label=MyShop&message=Order%20%2312345&memo=ORDER-12345 הוא כתובת ה-mint של USDC ברשת המרכזית. import { encodeURL, createQR, TransferRequestURLFields, } from "@solana/pay"; import { PublicKey } from "@solana/web3.js"; import BigNumber from "bignumber.js"; function createPaymentRequest(orderId: string, amountUSDC: number) { const recipient = new PublicKey("YOUR_MERCHANT_WALLET"); const splToken = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); const urlFields: TransferRequestURLFields = { recipient, amount: new BigNumber(amountUSDC), splToken, label: "MyShop", message: `Order #${orderId}`, memo: orderId, }; const url = encodeURL(urlFields); const qrCode = createQR(url, 360, "transparent"); return { url: url.toString(), qrCode }; } הוא מחרוזת שרירותית הנרשמת על השרשרת דרך תוכנת Memo, ומשמשת להתאמת הזמנות.
URL זה מקודד לקוד QR. ארנקים התומכים ב-Solana Pay (Phantom, Solflare, Backpack) מנתחים אותו אוטומטית ומציגים את פרטי התשלום. קוד ה-QR של Solana Pay שנוצר מוטמע בדף התשלום שלכם לסריקה חלקה.
יצירת QR ב-Backend
import { encodeURL, createQR, TransferRequestURLFields, } from "@solana/pay"; import { PublicKey } from "@solana/web3.js"; import BigNumber from "bignumber.js"; function createPaymentRequest(orderId: string, amountUSDC: number) { const recipient = new PublicKey("YOUR_MERCHANT_WALLET"); const splToken = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); const urlFields: TransferRequestURLFields = { recipient, amount: new BigNumber(amountUSDC), splToken, label: "MyShop", message: `Order #${orderId}`, memo: orderId, }; const url = encodeURL(urlFields); const qrCode = createQR(url, 360, "transparent"); return { url: url.toString(), qrCode }; } אימות תשלום
לאחר הצגת ה-QR, עליכם לאשר את התשלום. ה-API של Solana Pay (SDK) מספק import { findReference, validateTransfer } from "@solana/pay"; import { Connection, clusterApiUrl, Keypair } from "@solana/web3.js"; const connection = new Connection(clusterApiUrl("mainnet-beta"), "confirmed"); // reference — уникальный keypair для каждого заказа const reference = Keypair.generate().publicKey; // Polling каждые 2 секунды async function pollForPayment(reference: PublicKey, expectedAmount: BigNumber) { while (true) { try { const signatureInfo = await findReference(connection, reference, { finality: "confirmed", }); await validateTransfer(connection, signatureInfo.signature, { recipient: MERCHANT_WALLET, amount: expectedAmount, splToken: USDC_MINT, reference, }); return signatureInfo.signature; // платёж подтверждён } catch (e) { // FindReferenceError — транзакция ещё не появилась, ждём await new Promise((r) => setTimeout(r, 2000)); } } } — פונקציה לחיפוש עסקה לפי מפתח ציבורי ייחודי (reference) (מפתח ייחודי שנוסף לכל תשלום):
import { findReference, validateTransfer } from "@solana/pay"; import { Connection, clusterApiUrl, Keypair } from "@solana/web3.js"; const connection = new Connection(clusterApiUrl("mainnet-beta"), "confirmed"); // reference — уникальный keypair для каждого заказа const reference = Keypair.generate().publicKey; // Polling каждые 2 секунды async function pollForPayment(reference: PublicKey, expectedAmount: BigNumber) { while (true) { try { const signatureInfo = await findReference(connection, reference, { finality: "confirmed", }); await validateTransfer(connection, signatureInfo.signature, { recipient: MERCHANT_WALLET, amount: expectedAmount, splToken: USDC_MINT, reference, }); return signatureInfo.signature; // платёж подтверждён } catch (e) { // FindReferenceError — транзакция ещё не появилась, ждём await new Promise((r) => setTimeout(r, 2000)); } } } validateTransfer בודק: נמען נכון, סכום נכון, אסימון נכון. אם משהו לא תואם, הוא זורק חריגה. זה מגן מפני תשלום עם עסקה "דומה".
למה Solana מתאים לסוחרים?
עסקאות מאושרות תוך 2–3 שניות, עם עמלות של כ-$0.00025. זה הופך את Solana לאידיאלי עבור תשלומים מיקרו ומערכות בעומס גבוה כמו שווקי NFT או פלטפורמות משחק. עם הגדרה נכונה, כשלים כמעט מבוטלים. תשלומי קריפטו של Solana לעסקים הם מהירים וזולים. Solana Pay תומך בתשלומי אסימוני SPL עבור מגוון נכסים דיגיטליים. בהשוואה לשערי תשלום בנקאיים מסורתיים, Solana Pay משתלב פי 5 מהר יותר וחוסך עד 95% בעמלות. כסוחר Solana, אתם יכולים לנצל את ה-API של Solana Pay לעיבוד עסקאות יעיל.
בחירת רמת הסופיות הנכונה
ל-Solana אין סופיות הסתברותית כמו ביטקוין. הנה הרמות:
ראה השוואת רמות סופיות
| רמה | זמן | תיאור | מתי להשתמש |
|---|---|---|---|
| processed | <0.5 שניות | העסקה נכללה בבלוק, אפשרות לחזרה | אף פעם לתשלומים |
| confirmed | 1-3 שניות | לבלוק יש >66% קולות רוב-על | ברירת מחדל לסכומים עד $10,000 |
| finalized | 10-15 שניות | הבלוק בשרשרת מושרשת, אין אפשרות לחזרה | סכומים גדולים או דרישות חוקיות |
לפי תיעוד Solana, סופיות 'confirmed' מושגת תוך 1-3 שניות.
לתשלומים, השתמשו ב-confirmed — זה מאזן בין מהירות לאבטחה. הבנת סופיות העסקאות של Solana עוזרת לבחור את הרמה הנכונה לצרכים שלכם.
השוואה לפתרונות אחרים
| קריטריון | Solana Pay | Tron USDT (TRC-20) | Stripe Crypto |
|---|---|---|---|
| זמן אישור | 2-3 שניות | ~1 דקה | עד 5 דקות |
| עמלה | ~$0.00025 | $0.5-1 | ~$0.75 + 1% |
| תמיכה באסימונים | כל SPL | USDT/USDC | BTC/ETH/USDC |
| מורכבות שילוב | נמוכה (SDK) | בינונית (API) | בינונית (API) |
Solana Pay מאשר עסקאות פי 5 מהר יותר מ-Tron USDT ופי 100 זול יותר מ-Stripe. לעיבוד תשלומי Solana יעיל, בחרו בסופיות confirmed.
תהליך ולוחות זמנים
מה כלול בפתרון מפתח
- עיצוב ארכיטקטורה: בחירת RPC (Helius, QuickNode), הגדרת ארנק סוחר (חומרה או multisig).
- פיתוח API ליצירת בקשות תשלום עם הפניות ייחודיות.
- שילוב polling או WebSocket לניטור אישורים.
- אחסון חתימות עסקאות במסד נתונים לביקורת והתאמה.
- טיפול בזמן קצוב (אנו ממליצים על 2 דקות, ואז הצגת שגיאה).
- תיעוד והדרכת צוות.
תהליך העבודה
- ניתוח: הבנת דרישות עסקיות, בחירת אסימונים וטכנולוגיות.
- עיצוב: תרשים זרימת תשלום, בחירת RPC, הגדרת אבטחה.
- יישום: שילוב Solana Pay, יצירת QR, יישום אימות.
- בדיקות: סימולציית תשלומים, בדיקת כל מקרי הקצה.
- השקה: הגדרת RPC לייצור, ניטור, תיעוד.
לוחות זמנים
בדרך כלל, השילוב אורך 3 עד 10 ימי עסקים, תלוי במורכבות (מספר אסימונים, צורך ב-multisig, רמת אבטחה). אנו יכולים להעריך את הפרויקט שלכם בחינם.
איך אנו מבטיחים אבטחה?
אנו מבטיחים שכל העסקאות היוצאות נחתמות רק לאחר אימות דרך validateTransfer. הפניה ייחודית נוצרת לכל הזמנה, ומונעת שימוש חוזר. ארנק הסוחר מבודד מהשרת — רק עסקאות תשלום מאושרות נחתמות.
מלכודות נפוצות (רשימת בדיקה)
- הפניות ייחודיות: לעולם אל תשתמשו שוב בצמד מפתחות הפניה בין הזמנות — זה שובר התאמה ויכול להוביל להוצאה כפולה.
- טיפול ב-Memo: תמיד כללו שדה memo שמזהה את ההזמנה באופן ייחודי; בלעדיו, התאמת תשלומים להזמנות הופכת לשבירה.
- הגבלת RPC: בייצור, השתמשו בספק RPC ייעודי עם מגבלות קצב גבוהות; RPC ציבורי משותף יכול לפגוע בזמן קצוב או להפיל בקשות.
-
אימות חתימה: תמיד קראו ל-
validateTransfer; אמון רק ב-findReferenceיכול לפספס עסקאות לא תקינות. - אסטרטגיית זמן קצוב: הגדירו זמן קצוב סביר (2 דקות) והציגו שגיאה ברורה; אל תתנו למשתמשים לתהות.
ספרו לנו על המשימות שלכם — המהנדסים המוסמכים של Solana שלנו יכולים להקים קבלת תשלומים תוך 1-2 שבועות. צרו קשר לייעוץ חינם. הזמינו היום את שילוב ה-Solana Pay שלכם.







