سولانا باي

مجموعة Commerce Kit حاليًا في مرحلة تجريبية. قد تتغير واجهات برمجة التطبيقات قبل الإصدار المستقر. للحصول على تفاصيل إضافية، راجع وثائق Commerce Kit.

سولانا باي هو بروتوكول قياسي لترميز طلبات الدفع كروابط URL. يمكن مشاركة هذه الروابط كوصلات، أو ترميزها كرموز QR للمحافظ المحمولة، أو استخدامها لبناء معاملات الدفع برمجيًا.

توفر حزمة @solana-commerce/solana-pay ترميز/تحليل URL، إنشاء رموز QR، وبناء المعاملات—متوافقة مع @solana/kit.

التثبيت

pnpm add @solana-commerce/solana-pay

إنشاء روابط الدفع

استخدم encodeURL لإنشاء رابط URL ببروتوكول solana: يمكن للمحافظ تحليله:

import { encodeURL } from "@solana-commerce/solana-pay";
const url = encodeURL({
recipient: address("merchant-wallet-address"),
amount: 100000000n, // 0.1 SOL in lamports
label: "Coffee Shop",
message: "Thanks for your order!"
});
console.log(url.toString());
// solana:merchant...?amount=0.1&label=Coffee%20Shop&message=...

معاملات URL

المعاملالنوعالوصف
recipientAddressعنوان محفظة التاجر (مطلوب)
amountbigintالمبلغ بوحدات lamports أو الوحدات الصغرى للرمز
splTokenAddressعنوان mint لرمز SPL (احذفه لـ SOL)
referenceAddress[]مرجع فريد (مراجع) لتتبع المدفوعات
labelstringاسم التاجر المعروض في المحفظة
messagestringالرسالة المعروضة قبل الدفع
memostringمذكرة على السلسلة مرفقة بالمعاملة

مدفوعات رموز SPL

لمدفوعات العملات المستقرة، حدد mint الرمز:

import { encodeURL } from "@solana-commerce/solana-pay";
const url = encodeURL({
recipient: address("merchant-wallet"),
amount: 25000000n, // 25 USDC (6 decimals)
splToken: USDC_MINT,
label: "My Store"
});

تتبع المدفوعات باستخدام المراجع

إنشاء مرجع فريد لتحديد مدفوعات معينة:

import { encodeURL } from "@solana-commerce/solana-pay";
import { address, generateKeyPairSigner } from "@solana/kit";
const orderReference = (await generateKeyPairSigner()).address;
const url = encodeURL({
recipient: address(MERCHANT_WALLET_ADDRESS),
amount: 500000000n, // 0.5 SOL
reference: orderReference,
memo: `Order-${Date.now()}`
});
// Query the blockchain later for transactions containing this reference

إنشاء رموز QR

استخدم createQR لإنشاء رموز QR قابلة للمسح الضوئي للمحافظ المحمولة:

import { createQR, encodeURL } from "@solana-commerce/solana-pay";
import { address } from "@solana/kit";
const url = encodeURL({
recipient: address(MERCHANT_WALLET_ADDRESS),
amount: 100000000n,
label: "Coffee Shop"
});
const qrCode = await createQR(
url.toString(),
400, // size in pixels
"white", // background
"black" // foreground
);
// Use as image source
document.getElementById("qr").src = qrCode;

رموز QR المخصصة

لرموز QR ذات العلامة التجارية مع الشعارات والتصميم المخصص:

import { createStyledQRCode, encodeURL } from "@solana-commerce/solana-pay";
const qr = await createStyledQRCode(url.toString(), {
width: 600,
margin: 3,
color: {
dark: "#9945FF", // Solana purple
light: "#FFFFFF"
},
errorCorrectionLevel: "H",
dotStyle: "dots",
cornerStyle: "extra-rounded",
logo: "/your-logo.png",
logoSize: 120
});

بناء المعاملات

استخدم createTransfer لبناء معاملة كاملة للتوقيع:

import { createTransfer } from "@solana-commerce/solana-pay";
const transaction = await createTransfer(
client.rpc,
address(SENDER_WALLET_ADDRESS),
{
recipient: address(MERCHANT_WALLET_ADDRESS),
amount: 100000000n, // 0.1 SOL
memo: "Coffee purchase"
}
);

لرموز SPL، قم بتضمين عنوان السك:

const USDC_MINT = address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
const transaction = await createTransfer(
client.rpc,
address(SENDER_WALLET_ADDRESS),
{
recipient: address(MERCHANT_WALLET_ADDRESS),
amount: 25000000n, // 25 USDC
splToken: USDC_MINT,
reference: [orderReference],
memo: "Order #12345"
}
);

تحليل عناوين URL

التحقق من صحة واستخراج البيانات من عناوين URL الخاصة بـ سولانا Pay:

import { parseURL, ParseURLError } from "@solana-commerce/solana-pay";
try {
const parsed = parseURL("solana:merchant...?amount=1.5&label=Store");
console.log(parsed.recipient); // Address
console.log(parsed.amount); // 1500000000n (lamports)
console.log(parsed.label); // "Store"
} catch (error) {
if (error instanceof ParseURLError) {
console.error("Invalid URL:", error.message);
}
}

Is this page helpful?

جدول المحتويات

تعديل الصفحة

تدار بواسطة

© 2026 مؤسسة سولانا.
جميع الحقوق محفوظة.
تواصل معنا