تحويل الروبكس

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

تحويلات الروبكس تتيح لمشتركي Roblox Plus إرسال الروبكس مباشرة إلى مستخدمين آخرين.

لدعم التحويلات في لعبتك، قم باستدعاء PromptRobuxTransferAsync لفتح نافذة التحويل واستخدام BindReceiptHandler لمعالجة إيصالات التحويل. عندما يكمل أحد المشترين عملية تحويل، تكسب لعبتك 10% من الروبكس المرسلة ويتلقى المُستلم 90% المتبقية. على سبيل المثال، تحويل 100 روبكس يدفع 90 روبكس للمستلم و10 روبكس للعبتك.

الروبكس التي تكسبها لعبتك من التحويلات مؤهلة لبرنامج DevEx. لا تأخذ Roblox أي رسوم من هذه التحويلات.

كمنشئ، ليس لديك وصول إلى تفاصيل التحويل أو التحكم في التنفيذ. جميع تحويلات الروبكس تتم معالجتها وإدارتها بواسطة منصة Roblox، وجميع إجراءات المرسل والمستلم تمر عبر نفس الفحوصات المتعلقة بالأمان والأهلية. داخل لعبتك، تكتمل التحويلات من خلال واجهة مستخدم تديرها Roblox لضمان كونها آمنة ومتوافقة مع السياسات.

طلب تحويل الروبكس

لإطلاق تحويل روبكس داخل لعبتك:

  1. قم باستدعاء PromptRobuxTransferAsync من سكربت جانب الخادم.
  2. مرر المعلمات المطلوبة:
    • sender: اللاعب الذي يبدأ التحويل.
    • receiverUserId: هوية المستخدم للمستلم.
    • amount: مقدار الروبكس الذي سيتم تحويله.
  3. قم بتخزين transferRequestId المعاد والذي يحدد طلب التحويل ويمكن استخدامه لتسجيل أو ربط التحويل بالإيصالات لاحقًا.

المثال التالي يقوم ببدء تحويل روبكس بين مستخدمين:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- تحويل الروبكس عندما يقوم مستخدم بتفعيل RemoteEvent
local transferEvent = game.ReplicatedStorage:WaitForChild("RequestTransfer")
transferEvent.OnServerEvent:Connect(function(sender, receiverUserId, amount)
-- تحقق من صحة الإدخالات
if not sender or not sender:IsA("Player") then
return
end
if typeof(receiverUserId) ~= "number" or receiverUserId <= 0 then
warn("معرف المستلم غير صالح")
return
end
if typeof(amount) ~= "number" or amount <= 0 then
warn("المقدار غير صالح")
return
end
local success, result = pcall(function()
return MarketplaceService:PromptRobuxTransferAsync(sender, receiverUserId, amount)
end)
if success then
print(`تم بدء التحويل مع TransferRequestId: {result}`)
else
warn(`فشل التحويل: {result}`)
end
end)

معالجة إيصالات التحويل

بعد تحويل ناجح، تولد Roblox إيصالات لكل من المرسل والمستلم. يمكنك معالجة هذه الإيصالات باستخدام BindReceiptHandler لتأكيد أن التحويل اكتمل بنجاح.

لتشجيع مشتركي Plus على تحويل الروبكس ضمن لعبتك، يمكنك تقديم عناصر أو مزايا أخرى مقابل كل تحويل ناجح. إذا قمت بذلك، قم بمعالجة الإيصال قبل منح المكافأة لضمان منحها فقط للتحويلات المكتملة.

لإجراء معالجة إيصالات تحويل الروبكس:

  1. استخدم BindReceiptHandler لتسجيل معالج لـ RobuxTransferSender، الذي يدير الإيصالات للمستخدم الذي بدأ التحويل.
  2. سجل معالج ثانٍ لـ RobuxTransferReceiver، الذي يدير الإيصالات للمستخدم الذي تلقى الروبكس.
  3. في كل معالج، تحقق من معلومات الإيصال، بما في ذلك PlayerId و TransferRequestId. تتضمن كلا نوعي الإيصالات TransferRequestId الذي يتطابق مع transferRequestId المعاد من PromptRobuxTransferAsync.
  4. أعد قيمة Enum.ReceiptDecision من المعالج الخاص بك:
    • أعد Processed بعد الانتهاء من معالجة الإيصال. هذا يحدد الإيصال بأنه مكتمل ويؤكد أن تحويل الروبكس كان ناجحًا.
    • أعد NotProcessedYet إذا كان لا يمكن معالجة الإيصال بعد (على سبيل المثال، إذا لم يعد المستخدم في الخادم). هذا يبقي الإيصال غير محسوم حتى يمكن تسليمه لاحقًا (على سبيل المثال، عند إعادة انضمام المستخدم إلى الخادم).

المثال التالي يسجل معالجات لكل من إيصالات المرسل والمستلم:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- يعالج إيصالات المرسل (المستخدم الذي أرسل الروبكس)
local senderConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferSender,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- المستخدم غادر الخادم - معالجة الإيصال مؤجلة حتى يعود المستخدم إلى الخادم
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} أرسل روبكس (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- يمكنك منح أي اعتراف من جانب المرسل أو تحديث واجهة المستخدم هنا
return Enum.ReceiptDecision.Processed
end
)
-- يعالج إيصالات المستلم (المستخدم الذي تلقى الروبكس)
local receiverConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferReceiver,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} تلقى روبكس (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- يمكنك منح أي فوائد من جانب المستلم أو تحديث واجهة المستخدم هنا
return Enum.ReceiptDecision.Processed
end
)
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.