สิ่งที่รับได้
ใช้ BNB Smart Chain และสัญญาโทเคน EVM ที่ตรวจสอบแล้วซึ่งมักเรียกว่า BEP-20 ไม่ใช่ Beacon Chain เดิม ค่าธรรมเนียมใช้ BNB ไม่ใช่ ETH
ตั้งค่าร้านของคุณ
- ติดตั้ง Wholly Crypto สร้างโปรเจกต์และร้าน และเก็บไฟล์สำรองกระเป๋าเป็นส่วนตัว
- ตรวจการเชื่อมต่อที่ใช้กับตัวสแกนได้ และเปิดเชนกับสินทรัพย์ที่ต้องการใน ร้าน → วิธีชำระ
- ตั้งจำนวนการยืนยันและวันหมดอายุ ทดสอบใบแจ้งหนี้ยอดเล็กและตรวจว่าชำระเสร็จก่อนดำเนินการตามคำสั่งซื้อ
เงินที่รับจะไปที่ใด
ใบแจ้งหนี้ใช้ที่อยู่รับเงินแยกกัน ที่อยู่ 0x ที่คุ้นเคยไม่ได้บอกว่าเป็นเครือข่ายไหน ลูกค้าต้องเลือก BNB Smart Chain ไม่ใช่ Ethereum หรือ Beacon Chain เดิม
คู่มือตั้งค่ากระเป๋าย้ายเงินเมื่อคุณพร้อม
รวมเงินรับด้วยการส่งเองหรือ sweep อัตโนมัติ การส่งโทเคนต้องมี BNB ที่แต่ละต้นทาง ระบบ gas จากโปรเจกต์ช่วยได้ภายในลิมิตของคุณ แต่ ETH บน Ethereum จ่ายค่าธรรมเนียมนี้ไม่ได้
บทสอนรวบรวมเงินอัตโนมัติรับโทเคนได้เลยถ้าชื่อเหมือนกันไหม?
ไม่ได้ ตรวจสัญญา BNB Smart Chain และผู้ออกให้ตรง เวอร์ชัน bridged หรือ wrapped เป็นคนละสินทรัพย์และมีความเสี่ยงของตัวเอง เปิดเฉพาะสัญญาที่ตรวจสอบแล้วและตั้งใจจะรับ
แก้ปัญหาการชำระเงิน
ตรวจเครือข่ายนี้ก่อน
เลือก BNB Smart Chain ไม่ใช่ Ethereum หรือ Beacon Chain ที่อยู่ 0x เหมือนกันไม่ได้ทำให้โอนข้ามเชนได้ การส่งโทเคนต้องมี BNB บนเครือข่ายนี้
การชำระหายไปหรือล่าช้า
เทียบเครือข่าย ที่อยู่ สินทรัพย์ และข้อมูลอ้างอิงที่จำเป็นให้ตรงใบแจ้งหนี้ ตรวจความพร้อมตัวสแกนและความคืบหน้าการยืนยัน อย่าขอให้จ่ายครั้งที่สองจนกว่าจะตรวจธุรกรรมแรกแล้ว
คู่มือรับเงินกู้คืนหรือรวมกระเป๋า
เก็บไฟล์สำรองส่วนตัวและรายละเอียดการสร้างที่อยู่ แอปกระเป๋าอื่นอาจไม่แสดงทุกที่อยู่รับเงิน การส่งและกู้คืนขึ้นกับเชนและรูปแบบกระเป๋า การนำเข้าคำกู้คืนอย่างเดียวไม่รับประกันทั้งสองอย่าง
สำรองและกู้คืนค่าธรรมเนียมและการตรวจสอบ
ค่าธรรมเนียมประมวลผลเริ่มต้นคือ 1% ของมูลค่าใบแจ้งหนี้ในเงินตราทั่วไป จ่ายจากเครดิตแยก ใช้อัตราที่กำหนดให้คุณ ค่าธรรมเนียมเครือข่ายและค่าเซิร์ฟเวอร์แยกต่างหาก
ผู้ให้บริการสาธารณะอาจหยุดทำงานหรือจำกัดอัตรา ธุรกรรมที่ส่งแล้วหรือการเปลี่ยนเส้นทางกลับไม่ใช่หลักฐานชำระ ใช้สถานะใบแจ้งหนี้ที่ตรวจสอบแล้วและการแจ้งเตือนที่ลงนาม
เครดิตประมวลผล API, IPN และ webhookเครื่องคำนวณอัตราแลกเปลี่ยน
แปลงจำนวนเงิน
เป็นค่าประมาณ ไม่ใช่ราคาเสนอชำระเงิน ไม่รวมค่าธรรมเนียมเครือข่าย ค่าธรรมเนียมศูนย์ซื้อขาย และส่วนต่างผู้ค้า
อัตรามาจากไหน?
ค่าประมาณคริปโตใช้ราคาสาธารณะ Kraken ในแคช และ Binance เมื่อมี บางราคา Binance ใช้ USDT อ้างอิง USD อัตราเงินตราทั่วไปมาจาก Frankfurter เป็นอัตราอ้างอิงรายวัน ไม่ใช่ราคาเสนอซื้อขายสด
สแนปช็อตรีเฟรชอัตโนมัติ ตรวจวันที่แหล่งข้อมูลใต้ผลลัพธ์ จำนวนที่กรอกอยู่ในเบราว์เซอร์ของคุณ การมีชื่อสินทรัพย์ไม่รับประกันว่ารองรับการชำระเงิน
Kraken · Binance · Frankfurter · ชื่อและไอคอนสินทรัพย์: CoinGecko
สร้างใบแจ้งหนี้ด้วย API
รันตัวอย่างเหล่านี้บนเซิร์ฟเวอร์คุณ แทนที่โฮสต์ API รหัสโปรเจกต์ และรหัสร้าน และเก็บข้อมูลรับรองเป็นส่วนตัว ยอดใช้สตริงทศนิยม
เปิดวิธีชำระในร้านก่อน การเลือกจำกัดวิธีที่เปิดใช้อยู่ ไม่ได้เพิ่มสินทรัพย์ หากไม่ตรงกับรายการใดจะใช้ค่าเริ่มต้นร้าน ตรวจวิธีชำระในคำตอบก่อนแสดงหน้าชำระเงิน
: "${WHOLLY_TOKEN:?Set WHOLLY_TOKEN to your server-side API token}"
# Keep this key and the exact body for retries; use a new key for each new invoice.
curl --fail-with-body --max-time 30 \
--request POST \
--url "https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices" \
--header "Authorization: Bearer $WHOLLY_TOKEN" \
--header 'Idempotency-Key: order-1042-attempt-1' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bnb-chain",
"asset_tickers": [
"BNB"
]
}
]
}'// Node.js 18+ · run on your server, never in browser code.
const token = process.env.WHOLLY_TOKEN;
if (!token) throw new Error("Set WHOLLY_TOKEN");
// Keep this key and the exact body for retries; use a new key for each new invoice.
const body = `{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bnb-chain",
"asset_tickers": [
"BNB"
]
}
]
}`;
const response = await fetch("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
},
body,
redirect: "error",
signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());<?php
// PHP 8+ with the cURL extension; run on your server.
$token = getenv('WHOLLY_TOKEN');
if (!$token) { throw new RuntimeException('Set WHOLLY_TOKEN'); }
// Keep this key and the exact body for retries; use a new key for each new invoice.
$body = <<<'JSON'
{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bnb-chain",
"asset_tickers": [
"BNB"
]
}
]
}
JSON;
$ch = curl_init("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, "Idempotency-Key: order-1042-attempt-1", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => $body,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
if ($status < 200 || $status >= 300) { throw new RuntimeException("HTTP $status: $response"); }
print_r(json_decode($response, true, 512, JSON_THROW_ON_ERROR));# Python 3 · standard library; run on your server.
import json
import os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
# Keep this key and the exact body for retries; use a new key for each new invoice.
headers = {
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
}
headers["Authorization"] = "Bearer " + os.environ["WHOLLY_TOKEN"]
body = """{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bnb-chain",
"asset_tickers": [
"BNB"
]
}
]
}""".encode("utf-8")
request = Request("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices",
method="POST", headers=headers, data=body)
# Non-2xx responses raise HTTPError. Do not retry writes with a new key.
with build_opener(NoRedirect()).open(request, timeout=30) as response:
print(json.load(response))