การทดสอบเวบฮุก
คำแนะนำที่สมบูรณ์สำหรับ การทดสอบการจัดส่งเวบฮุก, การใช้งานตัวจัดการเวบฮุก, การแก้ไขปัญหาเหตุการณ์เวบฮุก และการตั้งค่าการทดสอบเวบฮุกแบบอัตโนมัติสำหรับการผสานรวม Omise ของคุณ
ตัวทดสอบ Webhook แบบโต้ตอบ
ใช้เครื่องมือนี้เพื่อสำรวจ Webhook events ดูตัวอย่าง payloads และทดสอบ endpoint ของคุณ:
ตัวทดสอบ Webhook แบบโต้ตอบ
สำรวจ Webhook events และทดสอบ endpoint ของคุณ
charge.complete{
"object": "event",
"id": "evnt_test_5h2m123lxlx4z7yh9a2",
"livemode": false,
"location": "/events/evnt_test_5h2m123lxlx4z7yh9a2",
"webhook_deliveries": [],
"data": {
"object": "charge",
"id": "chrg_test_5h2m123abc456def",
"amount": 100000,
"currency": "thb",
"description": "Test charge",
"status": "successful",
"authorized": true,
"paid": true,
"captured": true,
"capture": true,
"refunded": 0,
"reversed": false,
"voided": false,
"expired": false,
"disputable": true,
"capturable": false,
"reversible": false,
"transaction": "trxn_test_5h2m123abc456def",
"source_of_fund": "card",
"failure_code": null,
"failure_message": null,
"card": {
"object": "card",
"id": "card_test_5h2m123abc456def",
"livemode": false,
"brand": "Visa",
"last_digits": "4242",
"name": "Test User",
"expiration_month": 12,
"expiration_year": 2025,
"fingerprint": "FpEYKqwFa3znwjpHlEHjHg==",
"security_code_check": true
},
"created_at": "2026-03-09T09:56:17.705Z"
},
"key": "charge.complete",
"created_at": "2026-03-09T09:56:17.705Z"
}ภาพรวม
เวบฮุกเป็นการเรียกกลับ HTTP ที่แจ้งให้แอปพลิเคชันของคุณทราบเกี่ยวกับเหตุการณ์การชำระเงินแบบเรียลไทม์ การทดสอบเวบฮุกอย่างเหมาะสมจะช่วยให้มั่นใจได้ว่าแอปพลิเคชันของคุณจัดการเหตุการณ์การชำระเงินอย่างถูกต้อง ประมวลผลเหตุการณ์ที่ซ้ำกันอย่างปลอดภัย และกู้คืนจากความล้มเหลวได้อย่างสง่างาม
เหตุใดจึงต้องทดสอบเวบฮุก
- การจัดการเหตุการณ์: ตรวจสอบว่าเหตุการณ์การชำระเงินทั้งหมดได้รับการประมวลผลอย่างถูกต้อง
- ความเป็นปัญหาเดียวกัน: จัดการการจัดส่งเวบฮุกที่ซ้ำกันอย่างปลอดภัย
- ความปลอดภัย: ตรวจสอบลายเซ็นเวบฮุกและป้องกันการปลอมแปลง
- ความน่าเชื่อถือ: จัดการความล้มเหลวในการจัดส่งและปัญหาเครือข่าย
- ประสิทธิภาพ: ประมวลผลเวบฮุกแบบไม่ซิงโครนัสโดยไม่มีการหมดเวลา
- การแก้ไขปัญหา: การระบุและแก้ไขปัญหาการผสานรวมอย่างรวดเร็ว
กลยุทธ์การทดสอบเวบฮุก
- การทดสอบในเครื่อง: ใช้ ngrok เพื่อทดสอบเวบฮุกบนเครื่องท้องถิ่นของคุณ
- การทดสอบด้วย Mock: ใช้บริการการทดสอบเวบฮุกสำหรับการทดสอบอย่างรวดเร็ว
- การทดสอบแบบอัตโนมัติ: เขียนการทดส อบสำหรับตัวจัดการเวบฮุกของคุณ
- การทดสอบการผสานรวม: ทดสอบลำดับการไหลของเวบฮุกแบบปลายต่อปลาย
- การตรวจสอบการผลิต: ตรวจสอบการจัดส่งและการประมวลผลเวบฮุก
การตั้งค่าการทดสอบเวบฮุก
การกำหนดค่าจุดสิ้นสุดเวบฮุก
ก่อนอื่น, ให้กำหนดค่าจุดสิ้นสุดเวบฮุกของคุณในแดชบอร์ด Omise:
- ไปที่ การตั้งค่า > เวบฮุก
- คลิก เพิ่มจุดสิ้นสุดเวบฮุก
- ป้อน URL เวบฮุกของคุณ
- เลือกเหตุการณ์เพื่อรับ
- บ ันทึกการกำหนดค่า
สำหรับการพัฒนาในเครื่อง, ใช้ ngrok เพื่อสร้าง URL สาธารณะ
ความเข้าใจในเหตุการณ์เวบฮุก
Omise ส่งเวบฮุกสำหรับเหตุการณ์เหล่านี้:
| เหตุการณ์ | คำอธิบาย |
|---|---|
charge.create | ประจำที่สร้าง |
charge.complete | ประจำสำเร็จแล้ว |
charge.expire | ประจำหมดอายุโดยไม่มีการชำระเงิน |
refund.create | การคืนเงินสร้าง |
transfer.create | การโอนสร้าง |
transfer.pay | การโอนออก |
customer.create | ลูกค้าสร้าง |
customer.update | ลูกค้าอัปเดต |
customer.destroy | ลูกค้าลบ |
card.create | บัตรสร้าง |
card.update | บัตรอัปเดต |
card.destroy | บัตรลบ |
dispute.create | ข้อพิพาทสร้าง |
dispute.update | ข้อพิพาทอัปเดต |
การทดสอบด้วย ngrok
การติดตั้ง ngrok
ngrok สร้างอุโมงค์ที่ปลอดภัยสู่ localhost ของคุณ, ช่วยให้ Omise สามารถส่งเวบฮุกไปยังเครื่องพัฒนาของคุณ
การติดตั้ง:
# macOS (Homebrew)
brew install ngrok
# Windows (Chocolatey)
choco install ngrok
# Linux (โหลดตรง)
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip ngrok-stable-linux-amd64.zip
sudo mv ngrok /usr/local/bin/
# ตรวจสอบการติดตั้ง
ngrok version
ลงทะเบียนและตรวจสอบสิทธิ์:
# ลงทะเบียนที่ https://dashboard.ngrok.com/signup
# รับโทเค็นการตรวจสอบสิทธิ์จาก https://dashboard.ngrok.com/get-started/your-authtoken
ngrok config add-authtoken YOUR_AUTH_TOKEN
การใช้ ngrok สำหรับการทดสอบเวบฮุก
เริ่มต้นอุโมงค์ ngrok:
# ส่งต่อไปยังพอร์ต 3000 ในเครื่อง
ngrok http 3000
# ด้วยโดเมนย่อยที่กำหนดเอง (แผนที่จ่ายเงิน)
ngrok http -subdomain=myapp 3000
# ด้วยภูมิภาคที่กำหนดเอง
ngrok http -region=ap 3000
ผลลัพธ์ ngrok:
Session Status online
Account your@email.com
Version 3.0.0
Region Asia Pacific (ap)
Web Interface http://127.0.0.1:4040
Forwarding https://abc123.ap.ngrok.io -> http://localhost:3000
ใช้ URL ส่งต่อในแดชบอร์ด Omise:
Webhook URL: https://abc123.ap.ngrok.io/webhooks
การทดสอบด้วย Webhook.site
การใช้ Webhook.site
Webhook.site มี URL ชั่วคราวสำหรับการทดสอบเวบฮุกโดยไม่ต้องเขียนโค้ด
ขั้นตอน:
- ไปที่ https://webhook.site
- คัดลอก URL ที่ไม่ซ้ำกันของคุณ (เช่น
https://webhook.site/abc-123) - เพิ่ม URL นี้เข้าไปในเวบฮุก Omise Dashboard
- เรียกใช้เหตุการณ์ทดสอบใน Omise
- ดูคำขอแบบเรียลไทม์บน webhook.site
ฟีเจอร์:
- ดู headers, body และ query parameters ของคำขอ
- ตรวจสอบสถานะการตอบสนองและ body
- แก้ไขและปรับแต่งการตอบสนอง
- ส่งออกข้อมูลคำขอ
- แชร์ URL เวบฮุกกับทีม