การสร้างคีย์ RSA
คู่มือการสร้างคีย์ RSA
คำขอ API ของ Smilepayz ต้องเซ็นด้วย private key RSA ของ merchant คุณอัปโหลด public key ที่คู่กันในแบ็กเอนด์ merchant เพื่อให้ Smilepayz ตรวจสอบ X-SIGNATURE คู่มือนี้อธิบายการสร้างและบันทึกคีย์ใน sandbox และ production
ภาพรวม
| คีย์ | ผู้ถือ | วัตถุประสงค์ |
|---|---|---|
| Private key ของ merchant | คุณ (ห้ามอัปโหลด) | เซ็นคำขอ API Pay-in, Pay-out, Inquiry |
| Public key ของ merchant | อัปโหลดไป Smilepayz | Smilepayz ตรวจสอบ X-SIGNATURE ของคุณ |
| Platform public key | คัดลอกจาก Configuration Info | คุณตรวจสอบลายเซ็น callback |
ใช้คู่คีย์แยกกัน
สร้าง คู่คีย์ RSA แยก สำหรับ sandbox และ production อย่าใช้ private key จาก sandbox ใน production
ข้อกำหนดคีย์
แบ็กเอนด์ merchant กำหนดคีย์ RSA 2048-bit (การเซ็น SHA256withRSA) ช่องข้อความเก็บ public key เป็น Base64 โดยไม่มีหัวท้าย PEM
- Private key — เก็บไฟล์ที่ดาวน์โหลดอย่างปลอดภัย ใช้บนเซิร์ฟเวอร์ของคุณเท่านั้น
- Public key — ใส่ใน Merchant Public Key แล้วกด Save
วิธีใช้ private key ในการเซ็น: การยืนยันตัวตนด้วยลายเซ็น
Sandbox: สร้างและบันทึกคีย์
ขั้นตอนที่ 1: เปิด API Setting
- เข้าสู่ระบบ แบ็กเอนด์ merchant
- สลับสวิตช์ด้านบนเป็น Sandbox
- เปิด Configuration ในแถบด้านซ้าย
- เลือกแท็บ API Setting
- เลื่อนไปที่ Merchant Public Key
ขั้นตอนที่ 2: สร้างคู่คีย์
- คลิก Generate RSA Keys
- เบราว์เซอร์จะดาวน์โหลดไฟล์คู่คีย์ (ชื่อไฟล์มักมี
Sandboxและ timestamp) - Public key จะเติมในช่องข้อความอัตโนมัติ
ขั้นตอนที่ 3: บันทึก public key
- ตรวจสอบ public key ในช่องข้อความ
- คลิก Save ด้านล่างส่วนนี้
- เก็บไฟล์ที่ดาวน์โหลดอย่างปลอดภัย — มี private key อยู่ภายใน

Production: สร้างและบันทึกคีย์
Production ใช้ Settings → Configuration ไม่ใช่เมนู Configuration ของ sandbox
ขั้นตอนที่ 1: เปิด API Setting
- เข้าสู่ระบบ แบ็กเอนด์ merchant
- ยืนยันสวิตช์ด้านบนเป็น Production
- ไปที่ Settings → Configuration
- เปิดแท็บ API Setting
- เลื่อนไปที่ Merchant Public Key
ขั้นตอนที่ 2: สร้างและบันทึก
- คลิก Generate (ข้อความใน production ฟังก์ชันเดียวกับ sandbox)
- เก็บไฟล์ private key ที่ดาวน์โหลดอย่างปลอดภัย
- ตรวจสอบ public key ในช่องข้อความ
- คลิก Save API configuration ด้านล่างหน้า
ความต่าง API Setting ใน production
ใน production รายการ API IP Whitelist เป็นแสดงผลอย่างเดียว (ดูแลโดยแพลตฟอร์ม) ฟิลด์ callback: Payin และ Payout ปุ่มบันทึก: Save API configuration

ไฟล์ที่ดาวน์โหลด
ไฟล์มักมีบล็อก PEM สำหรับทั้งสองคีย์:
-----BEGIN PRIVATE KEY-----
[เนื้อหา private key แบบ Base64]
-----END PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
[เนื้อหา public key แบบ Base64]
-----END PUBLIC KEY-----
ใช้ private key (PKCS#8, Base64) ในโค้ดหรือ SDK ค่าในช่องแบ็กเอนด์ตรงกับเนื้อหา public key โดยไม่มี บรรทัด -----BEGIN/END-----
หลังตั้งค่าเสร็จ
- ตั้งค่าข้อมูลการรวมระบบ (IP whitelist, URL callback) หากยังไม่ได้ทำ
- ทดสอบการเซ็นในแท็บ Signature Test ของ sandbox หรือเรียก API sandbox
- ก่อน go-live ทำซ้ำใน production ด้วยคู่คีย์ใหม่
การแก้ปัญหา
| ปัญหา | แนวทาง |
|---|---|
| ลายเซ็น API ถูกปฏิเสธ | ยืนยันว่ากด Save หลัง generate แล้ว private key ต้องคู่กับ public key ที่อัปโหลด |
| สภาพแวดล้อมผิด | คีย์ sandbox/production แยกกัน — ตรวจสวิตช์และคำนำหน้า Merchant ID |
| สูญหาย private key | สร้างคู่ใหม่ อัปโหลด public key ใหม่ อัปเดตเซิร์ฟเวอร์ |
| ช่อง public key ว่างหลัง Generate | ลอง Generate อีกครั้ง ตรวจสิทธิ์ดาวน์โหลดของเบราว์เซอร์ |
