BSC TESTNET ONE Payment Integration Guide

คู่มือเชื่อมต่อ ONE Payment บน BSC Testnet

สำหรับลูกค้าและพาร์ทเนอร์ที่ต้องการทดสอบ integration กับระบบรับชำระเงิน USDT ของ ONE Payment ก่อนเชื่อมต่อจริงบน Mainnet — อธิบายเหตุผลที่ต้องใช้ Contract Address เฉพาะ และวิธีตั้งค่ากระเป๋าเงินให้พร้อมทดสอบ

ทำไมต้องใช้ Contract Address บน Testnet?

คำตอบสั้น: BSC Testnet ไม่มี USDT กลางที่ทุกคนใช้ร่วมกัน ต่างจาก Mainnet ที่มี USDT (BEP20) ตัวจริงของ Binance-Peg เพียงตัวเดียว

เหตุผล

ผลกระทบสำคัญ

Mock USDT ของแต่ละโปรเจกต์ ใช้ร่วมกันไม่ได้ เพราะ contract address ไม่ตรงกัน ถ้าคุณมี USDT บน testnet จาก dApp อื่นอยู่แล้ว จะใช้ทดสอบกับ ONE Payment ไม่ได้ และระบบจะมองไม่เห็น balance นั้นเลย ต้องใช้ contract เฉพาะของ ONE Payment เท่านั้น

ข้อมูล Network

เพิ่ม BSC Testnet เข้ากระเป๋าเงิน (MetaMask, Trust Wallet, Rabby ฯลฯ) ด้วยค่าด้านล่างนี้

Network Name BSC Testnet
Chain ID 97
RPC URL https://data-seed-prebsc-1-s1.binance.org:8545/
Currency tBNB
Explorer https://testnet.bscscan.com

USDT Contract (Mock) ของระบบ ONE Payment

ONE Payment ใช้ mock USDT contract เฉพาะที่ deploy ไว้บน BSC Testnet สำหรับ sandbox testing ใช้ contract address ด้านล่างเท่านั้น contract USDT จากที่อื่นบน testnet ใช้กับระบบ ONE Payment ไม่ได้

USDT Mock 0x20A797b100416FF3a62158192A2D4a1baa70f23b
คุณสมบัติค่า
NameTether USD (Mock)
SymbolUSDT
Decimals18 (ตรงกับ Binance-Peg USDT บน mainnet)
StandardBEP20 / ERC20-compatible
Explorerดูบน BscScan Testnet

วิธีตั้งค่ากระเป๋า (MetaMask)

  1. ติดตั้ง MetaMask

    ดาวน์โหลด extension หรือแอปจาก metamask.io และสร้างกระเป๋าใหม่ (หรือใช้กระเป๋าเดิมก็ได้ — testnet ใช้ private key เดียวกับ mainnet ได้แต่จะอยู่คนละ network)

  2. เพิ่ม BSC Testnet

    กด Network selector ด้านบน → Add networkAdd a network manually → กรอกค่าจากตาราง Network ด้านบน

  3. ขอ tBNB จาก Faucet

    เข้า bnbchain.org/en/testnet-faucet วาง wallet address ของคุณ → กดขอ 0.3 tBNB (รอประมาณ 30 วินาที, จำกัด 1 ครั้ง/24 ชั่วโมง/address)

    tBNB คืออะไร?

    tBNB = test BNB ใช้จ่าย gas fee บน testnet เท่านั้น ไม่มีมูลค่าจริง ถ้าจะรับ USDT เฉยๆ ไม่ต้องมี tBNB ก็ได้ แต่ถ้าจะ โอน USDT ต่อ ต้องมี tBNB เล็กน้อย (~0.001 ก็พอ)

    ทำไม ONE Payment ไม่โอน tBNB ให้เลย?
    • tBNB เป็น gas token ของ BNB Chain network ไม่ใช่ token ที่ ONE Payment เป็นผู้ออก/ดูแล เปรียบเหมือนค่าไฟฟ้าของ wallet ที่ต้องเติมเอง — มาจากเครือข่าย ไม่ใช่จากผู้ให้บริการ
    • Faucet ของ BNB Chain ออกแบบให้ขอเองแบบ self-service และ rate-limit แยกตาม wallet address ผู้ขอ ถ้า ONE Payment โอน tBNB จาก wallet กลางให้ลูกค้าทุกคน wallet นั้นจะถูก limit ทันทีและกระทบลูกค้าทั้งหมดพร้อมกัน
    • ขอที่ faucet ใช้เวลาแค่ ~30 วินาที — เร็วกว่ารอทีม support ตอบ
    • 0.3 tBNB ต่อ 24 ชั่วโมงเพียงพอสำหรับการทดสอบหลายร้อย transaction (gas fee ต่อ transfer ~0.0001 tBNB)
  4. Import USDT Token

    ใน MetaMask เลือก network BSC Testnet → เลื่อนลงไปแท็บ Tokens → กด Import tokens → วาง contract address 0x20A797b100416FF3a62158192A2D4a1baa70f23b → MetaMask จะ auto-fill USDT และ 18 decimals

    ขั้นตอนนี้สำคัญที่สุด

    ถ้าไม่ import token เข้า wallet จะ มองไม่เห็น balance ทั้งที่จริงๆ token อยู่ที่ wallet แล้ว (on-chain transaction success แล้ว) เพราะ wallet UI ไม่รู้จัก mock contract นี้โดย default

  5. Mint test USDT ให้ wallet ตัวเอง

    Contract ของ ONE Payment เปิด mint() แบบ public — คุณสามารถสร้าง test USDT ให้ wallet ตัวเองได้ทันทีผ่าน BscScan ไม่ต้องรอ support และ contract ถูก verify แล้ว ทำให้กรอกผ่าน UI ได้สะดวก

    1. เปิด BscScan Write Contract
    2. กด Connect to Web3 → เชื่อม MetaMask (ตรวจให้แน่ใจว่าอยู่ใน BSC Testnet, Chain ID 97)
    3. หาฟังก์ชัน mint แล้วคลิกขยาย
    4. ช่อง to (address) → วาง wallet address ของคุณ
    5. ช่อง amount (uint256) → ใส่จำนวนหน่วย wei (ดูตารางด้านล่าง)
    6. กด Write → MetaMask popup ให้ confirm transaction (เสีย gas ~0.0001 tBNB)
    7. รอ tx success (~3-5 วินาที) → กลับมาที่ MetaMask จะเห็นยอด USDT ขึ้นทันที
    ต้องการได้กรอกในช่อง amount
    1 USDT1000000000000000000
    100 USDT100000000000000000000
    1,000 USDT1000000000000000000000
    10,000 USDT10000000000000000000000
    เคล็ดลับ

    BscScan มีปุ่ม + ด้านขวาช่อง amount — กดแล้วใส่จำนวน USDT ตามด้วยเลข 10^18 ระบบจะคูณ decimals ให้อัตโนมัติ ไม่ต้องนับเลขศูนย์เอง

    ทางเลือก: ไม่สะดวก mint เอง?

    ติดต่อทีม ONE Payment Support พร้อมแจ้ง wallet address และจำนวน test USDT ที่ต้องการ ทีมโอนให้ได้

แอปกระเป๋าที่แนะนำ

MetaMask แนะนำ

มาตรฐาน DeFi/EVM ใช้กันแพร่หลายที่สุด เพิ่ม custom network ได้ มี extension และ mobile

metamask.io →

Rabby Wallet Dev

โดย DeBank ออกแบบมาเพื่อ multi-chain และ testnet โดยเฉพาะ UI ดีกว่า MetaMask

rabby.io →

Trust Wallet

Mobile-first โดย Binance รองรับ BSC testnet ในตัว ไม่ต้องตั้งค่า RPC

trustwallet.com →

OKX Wallet

รองรับหลาย chain เพิ่ม custom network ได้ เหมาะกับเทรดเดอร์

okx.com/web3 →

Frame.sh Desktop

Native macOS/Windows app เน้น security และ hardware wallet

frame.sh →

BscScan Testnet Explorer

ตรวจสอบ transaction และ balance บน testnet ดูได้โดยไม่ต้องล็อกอิน

testnet.bscscan.com →

คำถามที่พบบ่อย

โอน USDT แล้วทำไมไม่ขึ้นใน MetaMask?

99% ของกรณีเกิดจากยังไม่ได้ Import token เข้า MetaMask — ทำตามขั้นตอนที่ 4 ด้านบน หรือเข้า BscScan Testnet ดู transaction ว่า status เป็น Success หรือไม่ ถ้า success แต่ wallet ไม่ขึ้น = ปัญหาที่ wallet UI ไม่ใช่ที่ blockchain

มี USDT บน testnet อยู่แล้วจาก dApp อื่น ใช้ทดสอบกับ ONE Payment ได้ไหม?

ไม่ได้ ระบบ ONE Payment ฟัง event เฉพาะ contract 0x20A797...0f23b เท่านั้น USDT จาก PancakeSwap testnet หรือ dApp อื่น = คนละ contract address = คนละ token ระบบจะไม่ detect การรับเงินเลย

โอนผิด network จะทำยังไง?

ตรวจให้แน่ใจว่ากำลังอยู่ใน BSC Testnet (Chain ID 97) ก่อนโอนเสมอ — ถ้าโอนผิดไป mainnet หรือ chain อื่นที่มี contract ที่ address เดียวกัน อาจทำให้สูญเสีย token จริง (mainnet) ได้

tBNB หมด ขอเพิ่มได้ไหม?

Faucet ให้ 0.3 tBNB ต่อ 24 ชั่วโมง/address ถ้าหมดเร็วให้:

Mock contract นี้มี mint() public ไหม?

มีครับ — และเปิดให้ใครก็เรียกได้ ดูวิธี mint test USDT ให้ wallet ตัวเองที่ขั้นตอนที่ 5 ของ Setup สำหรับ developer ที่อยากเรียกผ่าน Remix หรือ ethers.js: function signature คือ mint(address to, uint256 amount)


สรุปแบบสั้น

3 สิ่งที่คุณต้องเตรียมเพื่อทดสอบ
  1. เพิ่ม BSC Testnet ใน wallet (Chain ID 97)
  2. Import USDT contract: 0x20A797b100416FF3a62158192A2D4a1baa70f23b
  3. tBNB จาก faucet สำหรับ gas (จำเป็นเฉพาะตอนต้องการส่งออก ไม่ใช่ตอนรับ)