ข้ามไปยังเนื้อหาหลัก

โหมดทดสอบ

ทดสอบการรวมตัวของคุณอย่างปลอดภัยด้วยคีย์ API ทดสอบโดยไม่ต้องประมวลผลการชำระเงินจริงหรือส่งผลกระทบต่อข้อมูลการผลิต

ภาพรวม

Omise ให้สภาพแวดล้อมการทดสอบและการผลิตที่แยกต่างหาก ใช้โหมดทดสอบระหว่างการพัฒนาเพื่อตรวจสอบการรวมตัวของคุณก่อนประมวลผลเงินจริงในการผลิต

คุณสมบัติโหมดทดสอบ:

  • 🔐 คีย์ API แยกต่างหาก - คีย์ทดสอบเริ่มต้นด้วย pkey_test_ และ skey_test_
  • 💳 การ์ดทดสอบ - หมายเลขการ์ดพิเศษสำหรับสถานการณ์การทดสอบ
  • 💰 ไม่มีเงินจริง - ธุรกรรมทั้งหมดจะถูกจำลอง
  • 🔄 การเข้าถึง API แบบเต็ม - ทดสอบฟีเจอร์ทั้งหมดและวิธีการชำระเงิน
  • 📊 แดชบอร์ดทดสอบ - ดูธุรกรรมทดสอบแยกต่างหาก

คีย์ API

คีย์ทดสอบเทียบกับคีย์สด

ประเภทคีย์คำนำหน้าสภาพแวดล้อมธุรกรรมจริง
คีย์สาธารณะทดสอบpkey_test_ทดสอบ❌ ไม่มี
คีย์ลับทดสอบskey_test_ทดสอบ❌ ไม่มี
คีย์สาธารณะสดpkey_live_การผลิต✅ ใช่
คีย์ลับสดskey_live_การผลิต✅ ใช่

รับคีย์ทดสอบ

  1. เข้าสู่ระบบ Omise Dashboard
  2. นำทางไปยัง SettingsAPI Keys
  3. คัดลอกคีย์ทดสอบของคุณ (เริ่มต้นด้วย pkey_test_ และ skey_test_)
// การตั้งค่าโหมดทดสอบ
const omise = require('omise')({
publicKey: 'pkey_test_5xb...', // คีย์สาธารณะทดสอบ
secretKey: 'skey_test_5xb...' // คีย์ลับทดสอบ
});
ไม่ต้องยืนยันคีย์

อย่าคำมติคีย์ API ไปยังการควบคุมเวอร์ชัน ใช้ตัวแปรสภาพแวดล้อม:

OMISE_PUBLIC_KEY=pkey_test_...
OMISE_SECRET_KEY=skey_test_...

การ์ดทดสอบ

สถานการณ์ความสำเร็จ

หมายเลขการ์ดยี่ห้อผลลัพธ์
4242424242424242Visaสำเร็จ (ไม่มี 3DS)
5555555555554444Mastercardสำเร็จ (ไม่มี 3DS)
3566111111111113JCBสำเร็จ (ไม่มี 3DS)

วันหมดอายุ: วันที่ใดๆ ในอนาคต (เช่น 12/25) CVV: ตัวเลข 3 หลักใดๆ (เช่น 123)

การ์ด 3D Secure ทดสอบ

หมายเลขการ์ดยี่ห้อพฤติกรรม 3DS
4000000000003220Visa3DS จำเป็น การตรวจสอบสิทธิ์สำเร็จ
4000000000009235Visa3DS จำเป็น การตรวจสอบสิทธิ์ล้มเหลว
5200000000001096Mastercard3DS จำเป็น สำเร็จ

สถานการณ์ปฏิเสธ

หมายเลขการ์ดประเภทข้อผิดพลาด
4000000000000002การ์ดปฏิเสธ
4000000000009995เงินไม่พอ
4000000000000069การ์ดหมดอายุ
4000000000000127CVC ไม่ถูกต้อง
4000000000000119ข้อผิดพลาดในการประมวลผล

ทดสอบจำนวนเงินเฉพาะ

ใช้จำนวนเงินเหล่านี้กับการ์ดทดสอบใดๆ เพื่อจำลองสถานการณ์:

จำนวนเงินผลลัพธ์
100.00สำเร็จ
100.02การ์ดปฏิเสธ
100.05เงินไม่พอ
100.41ข้อผิดพลาดในการประมวลผล

ทดสอบวิธีการชำระเงิน

กระเป๋าเงินดิจิทัล (โหมดทดสอบ)

// สร้างการชำระเงินที่กระเป๋าเงินทดสอบ
const source = await omise.sources.create({
type: 'truemoney',
amount: 50000,
currency: 'THB'
});

// ในโหมดทดสอบ คุณสามารถจำลองความสำเร็จ/ความล้มเหลว
const charge = await omise.charges.create({
amount: 50000,
currency: 'THB',
source: source.id
});

// ในโหมดทดสอบ ค่าใช้เสร็จสิ้นทันที

โอนเงินธนาคาร (โหมดทดสอบ)

// ทดสอบมือถือการทำงานธนาคาร
const source = await omise.sources.create({
type: 'mobile_banking_scb',
amount: 100000,
currency: 'THB'
});

// โหมดทดสอบจำลองการอนุมัติของธนาคาร
const charge = await omise.charges.create({
amount: 100000,
currency: 'THB',
source: source.id,
return_uri: 'https://yourdomain.com/callback'
});

// ในการทดสอบ การเปลี่ยนเส้นทางจะแสดงหน้าทดสอบ

การชำระเงิน QR (โหมดทดสอบ)

// PromptPay ทดสอบ
const source = await omise.sources.create({
type: 'promptpay',
amount: 100000,
currency: 'THB'
});

// สร้างรหัส QR ในโหมดทดสอบ
const qrCode = source.scannable_code.image.download_uri;

// สามารถอัปเดตสถานะค่าใช้ได้ด้วยตนเองในแดชบอร์ดทดสอบ

แดชบอร์ดทดสอบ

เข้าถึงข้อมูลทดสอบที่: https://dashboard.omise.co/test/

คุณสมบัติแดชบอร์ดทดสอบ:

  • ดูธุรกรรมทดสอบทั้งหมด
  • ตัวกรองตามวิธีการชำระเงิน
  • ทดสอบการส่งมอบ webhook
  • อัปเดตสถานะค่าใช้ด้วยตนเอง
  • สร้างรายงานการทดสอบ

อัปเดตค่าใช้ด้วยตนเอง

ในโหมดทดสอบ คุณสามารถอัปเดตสถานะค่าใช้ด้วยตนเอง:

  1. ไปที่แดชบอร์ดทดสอบ
  2. ค้นหาค่าใช้ทดสอบ
  3. คลิก "เปลี่ยนสถานะ"
  4. เลือก: สำเร็จ ล้มเหลว หรือหมดอายุ

ทดสอบ Webhook

ทดสอบเหตุการณ์ Webhook

// ทดสอบ webhook ในเครื่องด้วย ngrok
// 1. เริ่ม ngrok: ngrok http 3000
// 2. เพิ่ม webhook URL ในแดชบอร์ด: https://xxx.ngrok.io/webhooks

app.post('/webhooks/omise', (req, res) => {
const event = req.body;

console.log('webhook ทดสอบได้รับ:', event.key);
console.log('สถานะค่าใช้:', event.data.status);

res.sendStatus(200);
});

ทดสอบ Webhook ตัวกระตุ้น

จากแดชบอร์ดทดสอบ:

  1. เลือกค่าใช้ทดสอบ
  2. คลิก "ส่ง Webhook"
  3. เลือกประเภทเหตุการณ์
  4. ส่ง webhook ไปยังจุดปลายทางของคุณ

ตัวแปรสภาพแวดล้อม

# ไฟล์ .env
NODE_ENV=development

# คีย์ทดสอบสำหรับการพัฒนา
OMISE_PUBLIC_KEY=pkey_test_5xb...
OMISE_SECRET_KEY=skey_test_5xb...

# คีย์สดสำหรับการผลิต (ไฟล์อื่น)
# OMISE_PUBLIC_KEY=pkey_live_5xb...
# OMISE_SECRET_KEY=skey_live_5xb...
// โหลดตามสภาพแวดล้อม
const omise = require('omise')({
publicKey: process.env.OMISE_PUBLIC_KEY,
secretKey: process.env.OMISE_SECRET_KEY
});

// ตรวจสอบโหมด
const isTestMode = process.env.OMISE_SECRET_KEY.startsWith('skey_test_');
console.log('ทำงานใน:', isTestMode ? 'ทดสอบ' : 'สด');

รายการตรวจสอบการทดสอบ

ก่อนไปสด

  • ลำดับการชำระเงินทั้งหมดทดสอบด้วยการ์ดทดสอบ
  • ลำดับ 3D Secure ทดสอบและทำงาน
  • การจัดการ Webhook ทดสอบและตรวจสอบ
  • สถานการณ์ข้อผิดพลาดจัดการอย่างถูกต้อง
  • ลำดับการคืนเงินทดสอบ
  • ทดสอบการออกแบบที่ตอบสนองมือถือ
  • ธุรกรรมวิธีการชำระเงินทั้งหมดทดสอบบนอุปกรณ์จริง
  • ตรวจสอบความปลอดภัยแล้ว
  • แทนที่คีย์ทดสอบด้วยคีย์สด
  • สภาพแวดล้อมการผลิตตั้งค่า

สถานการณ์การทดสอบทั่วไป

1. การชำระเงินที่สำเร็จ

// ใช้การ์ดทดสอบสำเร็จ
const token = await createToken('4242424242424242', '12/25', '123');

const charge = await omise.charges.create({
amount: 10000,
currency: 'THB',
card: token
});

assert(charge.status === 'successful');

2. การ์ดปฏิเสธ

// ใช้การ์ดทดสอบปฏิเสธ
const token = await createToken('4000000000000002', '12/25', '123');

try {
const charge = await omise.charges.create({
amount: 10000,
currency: 'THB',
card: token
});
} catch (error) {
assert(error.message.includes('declined'));
}

3. ลำดับ 3D Secure

// ใช้การ์ดทดสอบ 3DS
const token = await createToken('4000000000003220', '12/25', '123');

const charge = await omise.charges.create({
amount: 10000,
currency: 'THB',
card: token,
return_uri: 'https://yourdomain.com/callback'
});

// ควรมี authorize_uri สำหรับ 3DS
assert(charge.authorize_uri !== null);

// หน้า 3DS ทดสอบอนุญาตให้เลือกสำเร็จ/ล้มเหลว

ที่ดีที่สุดของ ทำปฏิบัติ

1. ใช้โหมดทดสอบสำหรับการพัฒนาทั้งหมด

if (process.env.NODE_ENV === 'production' && process.env.OMISE_SECRET_KEY.startsWith('skey_test_')) {
throw new Error('อันตราย: ใช้คีย์ทดสอบในการผลิต!');
}

2. ทดสอบการจัดการข้อผิดพลาด

// ทดสอบสถานการณ์ความล้มเหลวต่างๆ
const testCases = [
{ card: '4000000000000002', expected: 'card_declined' },
{ card: '4000000000009995', expected: 'insufficient_funds' },
{ card: '4000000000000069', expected: 'expired_card' }
];

for (const test of testCases) {
const token = await createToken(test.card);
// ตรวจสอบการจัดการข้อผิดพลาด
}

3. แยกข้อมูลการทดสอบและการผลิต

// ฐานข้อมูลต่างๆ สำหรับการทดสอบและการผลิต
const dbName = process.env.NODE_ENV === 'production'
? 'myapp_production'
: 'myapp_test';

const db = mongoose.connect(`mongodb://localhost/${dbName}`);

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

ธุรกรรมทดสอบมีค่าใช้จ่ายหรือไม่?

ไม่ โหมดทดสอบฟรีทั้งหมด ไม่มีค่าธรรมเนียมใดๆ ที่นำไปใช้กับธุรกรรมทดสอบ

ฉันสามารถใช้การ์ดจริงในโหมดทดสอบได้หรือไม่?

ไม่ ใช้เฉพาะหมายเลขการ์ดทดสอบในโหมดทดสอบเท่านั้น หมายเลขการ์ดจริงจะถูกปฏิเสธ

ฉันจะเปลี่ยนจากโหมดทดสอบเป็นโหมดสดได้อย่างไร?

แทนที่คีย์ API ทดสอบด้วยคีย์ API สด นั่นแหละ! โค้ดของคุณยังคงเหมือนเดิม

// เปลี่ยนจาก:
OMISE_SECRET_KEY=skey_test_...
// เป็น:
OMISE_SECRET_KEY=skey_live_...

ทรัพยากรที่เกี่ยวข้อง

ขั้นตอนต่อไป

  1. รับคีย์ API ทดสอบของคุณ
  2. นำลำดับการชำระเงินไปใช้
  3. ทดสอบด้วยการ์ดทดสอบ
  4. ทดสอบวิธีการชำระเงินทั้งหมด
  5. ทดสอบ Webhooks
  6. ตรวจสอบรายการตรวจสอบการไปสด
  7. สลับไปยังคีย์สด
  8. ไปสด!