สร้าง Webhook Secret
สร้าง webhook signing secret ใหม่สำหรับบัญชีของคุณ ค่า secret จะถูกส่งคืนเพียงครั้งเดียวตอนสร้าง - เก็บไว้อย่างปลอดภัยทันที ใช้ secret นี้เพื่อยืนยันว่าเหตุการณ์ webhook ที่เข้ามามาจาก Omise จริง
พารามิเตอร์คำขอ
endpoint นี้ไม่ต้องการพารามิเตอร์คำขอใดๆ signing secret ใหม่จะถูกสร้างโดยอัตโนมัติ
การตอบกลับ
200
สร้าง Webhook secret สำเร็จสร้าง Webhook secret แล้ว ค่า secret จะรวมอยู่ในการตอบกลับนี้เท่านั้น - จะไม่สามารถดึงได้อีก เก็บไว้อย่างปลอดภัยทันที
object- ประเภทอ็อบเจกต์ (เป็น "webhook_secret" เสมอ)id- ตัวระบุ secret เฉพาะ (whsec_*) เก็บไว้สำหรับ การจัดการsecret- signing secret จริง เก็บทันที - จะไม่แสดงอีกlivemode- เป็น secret โหมดจริงหรือไม่created_at- timestamp การสร้างในรูปแบบ ISO 8601metadata- ข้อมูลคีย์-ค่าที่กำหนดเอง (หากระบุ)
400
คำขอไม่ถูกต้องการตรวจสอบคำขอล้มเหลว ตรวจสอบข้อความข้อผิดพลาดสำหรับรายละเอียด
- Metadata เกิน 15,000 ตัวอักษร
- รูปแบบ metadata ไม่ถูกต้อง
- ถึงจำนวน secrets สูงสุดแล้ว
401
ไม่ได้รับอนุญาตการรับรองความถูกต้องล้มเหลว API key ไม่ถูกต้องหรือขาดหาย
- ไม่มีส่วนหัว Authorization
- secret key ไม่ถูกต้อง
- ใช้ public key แทน secret key
- รูปแบบ HTTP Basic Auth ไม่ถูกต้อง
5xx
ข้อผิดพลาดเซิร์ฟเวอร์เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ กรณีนี้เกิดขึ้นไม่บ่อยแต่ควรจัดการอย่างเหมาะสม
- ลองคำขอใหม่ด้วย exponential backoff
- ตรวจสอบ status.omise.co สำหรับเหตุการณ์บริการ
- ดู การจัดการข้อผิดพลาด สำหรับคำแนะนำโดยละเอียด
ตัวอย่างโค้ด
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/webhooks/secrets \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-X POST
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
secret = Omise::WebhookSecret.create({
metadata: {
environment: 'production'
}
})
# เก็บ secret.secret อย่างปลอดภัย - จะไม่แสดงอีก
puts secret.secret
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
secret = omise.WebhookSecret.create(
metadata={
'environment': 'production'
}
)
# เก็บ secret.secret อย่างปลอดภัย - จะไม่แสดงอีก
print(secret.secret)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const secret = await omise.webhookSecrets.create({
metadata: {
environment: 'production'
}
});
// เก็บ secret.secret อย่างปลอดภัย - จะไม่แสดงอีก
console.log(secret.secret);
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$secret = OmiseWebhookSecret::create([
'metadata' => [
'environment' => 'production'
]
]);
// เก็บ $secret['secret'] อย่างปลอดภัย - จะไม่แสดงอีก
echo $secret['secret'];
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
WebhookSecret secret = client.webhookSecrets().create()
.metadata("environment", "production")
.send();
// เก็บ secret.getSecret() อย่างปลอดภัย - จะไม่แสดงอีก
System.out.println(secret.getSecret());
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var secret = await client.WebhookSecrets.Create(new CreateWebhookSecretRequest
{
Metadata = new Dictionary<string, string>
{
{ "environment", "production" }
}
});
// เก็บ secret.Secret อย่างปลอดภัย - จะไม่แสดงอีก
Console.WriteLine(secret.Secret);
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
secret, _ := client.WebhookSecrets().Create(&operations.CreateWebhookSecret{
Metadata: map[string]string{
"environment": "production",
},
})
// เก็บ secret.Secret อย่างปลอดภัย - จะไม่แสดงอีก
fmt.Println(secret.Secret)
รหัสข้อผิดพลาดและผลลัพธ์
รหัสข้อผิดพลาดทั่วไป
| รหัส | คำอธิบาย | การแก้ไข |
|---|---|---|
authentication_failure | API key ไม่ถูกต้อง | ตรวจสอบว่า secret key ถูกต้อง |
bad_request | พารามิเตอร์ไม่ถูกต้อง | ตรวจสอบรูปแบบและขนาด metadata |
limit_reached | ถึงจำนวน secrets สูงสุดแล้ว | ลบ secrets ที่ไม่ใช้ก่อนสร้างใหม่ |
ฟิลด์ Webhook Secret
| ฟิลด์ | คำอธิบาย |
|---|---|
object | ประเภทอ็อบเจกต์ (เป็น "webhook_secret" เสมอ) |
id | ตัวระบุ secret เฉพาะ (whsec_*) |
secret | signing secret (แสดงเฉพาะตอนสร้าง) |
livemode | เป็น secret โหมดจริงหรือไม่ |
created_at | timestamp การสร้างในรูปแบบ ISO 8601 |
metadata | ข้อมูลคีย์-ค่าที่กำหนดเอง |
หมายเหตุสำคัญ
เก็บ Secret ทันที
ฟิลด์ secret จะถูกส่งคืนเพียงครั้งเดียวเมื่อ webhook secret ถูกสร้าง หลังจากการตอบกลับนี้ คุณจะสามารถดูได้เฉพาะ ID ของ secret วันที่สร้าง และ metadata - ไม่ใช่ค่า secret จริง
เก็บ secret ในสถานที่ปลอดภัย เช่น:
- ตัวแปรสภาพแวดล้อม
- AWS Secrets Manager
- HashiCorp Vault
- Google Cloud Secret Manager
- Azure Key Vault
การใช้หลาย Secrets
คุณสามารถมี webhook secrets ที่ใช้งานได้หลายอันพร้อมกัน สิ่งนี้มีประโยชน์ในระหว่างการหมุนเวียนคีย์:
- สร้าง secret ใหม่
- อัปเดตโค้ดยืนยันให้รับทั้ง secrets เก่าและใหม่
- deploy โค้ดยืนยันที่อัปเดต
- ลบ secret เก่า
ลองใช้งาน
...กำลังโหลด...