การโอน Robux

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

การโอน Robux ช่วยให้สมาชิก Roblox Plus สามารถส่ง Robux ไปยังผู้ใช้คนอื่นได้โดยตรง

ในการสนับสนุนการโอนในเกมของคุณ ให้เรียกใช้ PromptRobuxTransferAsync เพื่อเปิดการแจ้งเตือนการโอนและใช้ BindReceiptHandler เพื่อประมวลผลใบเสร็จการโอน เมื่อสมาชิกทำการโอนเสร็จสิ้น เกมของคุณจะได้รับ 10% ของ Robux ที่ส่งไป และผู้รับจะได้รับเงินที่เหลือ 90% ตัวอย่างเช่น การโอน Robux 100 จะจ่าย 90 Robux ให้กับผู้รับ และ 10 Robux ให้กับเกมของคุณ

Robux ที่เกมของคุณได้รับจากการโอน มีสิทธิ์ในการเข้าร่วมโปรแกรม DevEx Roblox จะไม่คิดค่าธรรมเนียมจากการโอนเหล่านี้

ในฐานะผู้สร้าง คุณจะไม่มีสิทธิ์เข้าถึงรายละเอียดการโอนหรือควบคุมการดำเนินการ การโอน Robux ทั้งหมดจะถูกประมวลผลและจัดการโดยแพลตฟอร์ม Roblox และการกระทำของผู้ส่งและผู้รับจะผ่านการตรวจสอบความปลอดภัยและความมีสิทธิ์เดียวกัน ภายในเกมของคุณ การโอนจะเสร็จสมบูรณ์ผ่าน UI ที่ควบคุมโดย Roblox เพื่อให้แน่ใจว่าปลอดภัยและเป็นไปตามนโยบาย

เริ่มการโอน Robux

เพื่อเริ่มการโอน Robux ภายในเกมของคุณ:

  1. เรียกใช้ PromptRobuxTransferAsync จากสคริปต์ด้านเซิร์ฟเวอร์
  2. ส่งพารามิเตอร์ที่จำเป็น:
    • sender: ผู้เล่นที่เริ่มการโอน
    • receiverUserId: ID ของผู้ใช้ที่เป็นผู้รับ
    • amount: จำนวน Robux ที่ต้องการโอน
  3. เก็บ transferRequestId ที่ส่งกลับ ซึ่งระบุคำขอโอนและสามารถใช้เพื่อล็อกหรือเชื่อมโยงการโอนกับใบเสร็จในภายหลัง

ตัวอย่างต่อไปนี้เริ่มการโอน Robux ระหว่างผู้ใช้สองคน:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- โอน Robux เมื่อผู้ใช้กระตุ้น 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("ReceiverUserId ไม่ถูกต้อง")
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 โอน Robux ภายในเกมของคุณ คุณสามารถเสนอรายการหรือผลประโยชน์อื่น ๆ สำหรับการโอนที่ประสบความสำเร็จแต่ละครั้ง หากคุณทำเช่นนั้น ให้ประมวลผลใบเสร็จก่อนที่จะมอบรางวัลเพื่อให้แน่ใจว่ามีการมอบให้เฉพาะการโอนที่เสร็จสมบูรณ์แล้วเท่านั้น

ในการประมวลผลใบเสร็จการโอน Robux:

  1. ใช้ BindReceiptHandler เพื่อจดทะเบียนตัวจัดการสำหรับ RobuxTransferSender ซึ่งจัดการใบเสร็จสำหรับผู้ใช้ที่เริ่มการโอน
  2. ลงทะเบียนตัวจัดการที่สองสำหรับ RobuxTransferReceiver ซึ่งจัดการใบเสร็จสำหรับผู้ใช้ที่ได้รับ Robux
  3. ในแต่ละตัวจัดการ ตรวจสอบข้อมูลใบเสร็จ รวมถึง PlayerId และ TransferRequestId ใบเสร็จทั้งสองประเภทมี TransferRequestId ซึ่งตรงกับ transferRequestId ที่ส่งกลับโดย PromptRobuxTransferAsync
  4. ส่งค่าจาก Enum.ReceiptDecision กลับจากตัวจัดการของคุณ:
    • ส่งกลับ Processed หลังจากที่คุณจัดการใบเสร็จเสร็จสิ้น นี่จะทำให้ใบเสร็จถูกมาร์กว่าเสร็จสมบูรณ์และยืนยันว่าการโอน Robux สำเร็จ
    • ส่งกลับ NotProcessedYet หากใบเสร็จไม่สามารถประมวลผลได้ (เช่น หากผู้ใช้ไม่อยู่ในเซิร์ฟเวอร์อีกต่อไป) นี่จะทำให้ใบเสร็จยังไม่ได้รับการแก้ไขเพื่อให้สามารถส่งมอบได้ในภายหลัง (เช่นเมื่อผู้ใช้กลับเข้าร่วมเซิร์ฟเวอร์)

ตัวอย่างต่อไปนี้ลงทะเบียนตัวจัดการสำหรับใบเสร็จของผู้ส่งและผู้รับ:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- จัดการใบเสร็จของผู้ส่ง (ผู้ที่ส่ง Robux)
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} ส่ง Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- คุณสามารถให้การยืนยันวรรณกรรมด้านผู้ส่งหรืออัปเดต UI ที่นี่
return Enum.ReceiptDecision.Processed
end
)
-- จัดการใบเสร็จของผู้รับ (ผู้ที่ได้รับ Robux)
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} ได้รับ Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- คุณสามารถให้ผลประโยชน์ด้านผู้รับหรืออัปเดต UI ที่นี่
return Enum.ReceiptDecision.Processed
end
)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ