สำหรับร้านค้า: คู่มือออกใบเสร็จดิจิทัลในแอปของตนเองและแจ้งเตือนผ่าน Webhook

developer webhook receipt api integration
เกี่ยวกับคู่มือนี้
คู่มือนี้มุ่งเน้นกรณีที่ร้านค้า/แบรนด์ออกใบเสร็จดิจิทัลในแอปของตนเอง และรับการแจ้งเตือนแบบเรียลไทม์ผ่าน Webhook เป็นกรณีที่ร้านส่งใบเสร็จให้ลูกค้าของตนโดยตรง (สโคป store.*)

หากต้องการดูใบเสร็จการซื้อของผู้ใช้ที่ลงทะเบียนกับ Receipt Roller แล้วแบบข้ามร้านในแอปวอลเล็ตเป็นต้น โปรดดูคู่มือสำหรับแอปวอลเล็ต

ในคู่มือนี้จะอธิบายขั้นตอนตั้งแต่การลงทะเบียนแอปนักพัฒนาของ ReceiptRoller ยืนยันตัวตนด้วย OAuth เพื่อรับแอ็กเซสโทเคน จากนั้นตั้งค่า Webhook เพื่อรับอีเวนต์ใบเสร็จแบบเรียลไทม์

กรณีการใช้งานหลักคือเมื่อต้องการให้บริการใบเสร็จดิจิทัลแก่ลูกค้าผ่านแอปของร้านเอง คุณสามารถใช้ประโยชน์จากโครงสร้างพื้นฐานของ ReceiptRoller ในขณะที่ส่งใบเสร็จภายใต้แบรนด์แอปของตนเองได้


ขั้นตอนที่ 1: ลงทะเบียนแอปนักพัฒนา

  1. ล็อกอินเข้า ReceiptRoller แล้วเปิดแดชบอร์ดของบัญชีธุรกิจเป้าหมาย
  2. เลือก นักพัฒนา → รายการแอป จากเมนูด้านข้าง
  3. คลิกปุ่ม สร้างแอป
  4. กรอกรายการต่อไปนี้
    • ชื่อแอป: เช่น ชื่อบริการของตนเอง
    • Redirect URI: URL ที่ใช้รับ authorization code ของ OAuth (เช่น https://your-app.example.com/callback)
    • สโคป: เลือกสโคปที่จำเป็นสำหรับการรับใบเสร็จ (ดูด้านล่าง)
  5. เมื่อสร้างเสร็จ ระบบจะออก Client ID และ Client Secret
    Client Secret จะแสดงเพียงครั้งเดียวเท่านั้น โปรดบันทึกไว้ในที่ปลอดภัยเสมอ

สโคปที่จำเป็น

เมื่อร้านค้าออกและอ้างอิงใบเสร็จให้ลูกค้าของตน จะต้องใช้สโคปต่อไปนี้

สโคป วัตถุประสงค์
store.orders.read ดูข้อมูลคำสั่งซื้อ
store.orders.write อัปเดตสถานะคำสั่งซื้อ
store.products.read ดูข้อมูลสินค้าที่จะแสดงในใบเสร็จ
store.customers.read ระบุลูกค้าที่จะส่งใบเสร็จให้

※ user.receipts.read และ user.profile.read ใช้สำหรับแอปแบบวอลเล็ตที่ลูกค้าเชื่อมบัญชี Receipt Roller ของตนเอง หากร้านออกใบเสร็จเองก็ไม่จำเป็น


ขั้นตอนที่ 2: รับแอ็กเซสโทเคนด้วย OAuth

Receipt Roller ใช้ OAuth 2.0 authorization code flow (รองรับ PKCE)

1. คำขอให้สิทธิ์

รีไดเรกต์ผู้ใช้ไปยัง URL ต่อไปนี้:

GET /oauth/authorize
  ?client_id=app_xxxxxxxxxxxxxxxx
  &redirect_uri=https://your-app.example.com/callback
  &response_type=code
  &scope=store.orders.read store.orders.write store.products.read store.customers.read
  &code_challenge=<S256 แฮช>
  &code_challenge_method=S256

2. แลก authorization code

เมื่อผู้ใช้ยินยอม ระบบจะรีไดเรกต์ไปที่ redirect_uri พร้อมแนบ ?code=xxx ให้นำโค้ดนี้ไปแลกเป็นแอ็กเซสโทเคน:

POST /api/v1/auth/token
Content-Type: application/json

{
  "grant_type": "authorization_code",
  "code": "xxx",
  "code_verifier": "<PKCE code verifier>",
  "client_id": "app_xxxxxxxxxxxxxxxx",
  "client_secret": "your-client-secret",
  "redirect_uri": "https://your-app.example.com/callback"
}

3. การตอบกลับ

{
  "access_token": "...",   // อายุ: 1 ชั่วโมง
  "refresh_token": "...",  // อายุ: 30 วัน
  "token_type": "Bearer",
  "expires_in": 3600
}

คำขอ API ต่อ ๆ ไปให้แนบเฮดเดอร์ Authorization: Bearer {access_token}


ขั้นตอนที่ 3: ลงทะเบียน Webhook

เมื่อใช้ Webhook คุณจะรับการแจ้งเตือนแบบเรียลไทม์ไปยัง URL ที่กำหนด …

วันที่เผยแพร่: 2569-04-14 วันที่อัปเดต: 2569-07-06