Shell B2B Mobility Card Management API - คู่มือเริ่มต้นอย่างรวดเร็ว
เวอร์ชัน API: 3.1.5 | การยืนยันตัวตน: OAuth 2.0 | สถานะ: ใช้งานจริง
ภาพรวม
Shell Card Management API เป็น API ที่ใช้สถาปัตยกรรม REST ซึ่งช่วยให้ผู้พัฒนาสามารถจัดการบัตรเติมน้ำมัน Shell ได้โดยใช้โปรแกรม API นี้รองรับการค้นหาบัตร การสั่งซื้อ การอัปเดตสถานะ การยกเลิก และการดำเนินการจัดการบัตรอื่น ๆ
หมายเหตุ: คู่มือนี้ครอบคลุมเฉพาะจุดสิ้นสุดที่ผ่านการตรวจสอบสิทธิ์ OAuth 2.0 เท่านั้น (เส้นทางฐาน: /card-management/v1). จุดสิ้นสุดการตรวจสอบสิทธิ์พื้นฐานแบบเก่า (/fleetmanagement/v1/card) ไม่รวมอยู่ด้วยเนื่องจากกำลังถูกยกเลิกการใช้งาน
คุณสมบัติเด่น
- ค้นหาและกรองบัตรเติมน้ำมันด้วยเกณฑ์ที่ยืดหยุ่น
- สั่งบัตรใหม่และติดตามสถานะการสั่งซื้อ
- บล็อก, ยกเลิกการบล็อก และยกเลิกบัตร
- อัปเดตที่อยู่การจัดส่งบัตร
- จัดการการตั้งค่าการต่ออายุบัตรอัตโนมัติ
- ย้ายบัตรระหว่างกลุ่มบัตรและบัญชี
- ขอรหัส PIN เตือนความจำ
ประกาศสำคัญ - OAuth 2.0
สำคัญ: OAuth 2.0 เป็นวิธีการยืนยันตัวตนมาตรฐานแล้ว
- การผสานรวมใหม่: ใช้ OAuth 2.0 ตั้งแต่เริ่มต้น
- การผสานระบบที่มีอยู่: วางแผนการย้ายไปใช้ OAuth 2.0
- วิธีการแบบเดิม: การยืนยันตัวตนขั้นพื้นฐานและคีย์ API กำลังถูกยกเลิก
ติดต่อ ฝ่ายสนับสนุนทางเทคนิคของ Shell เพื่อขอรับข้อมูลรับรอง OAuth 2.0 ของคุณ (client_id และ client_secret)
การตรวจสอบสิทธิ์
OAuth 2.0 (วิธีการตรวจสอบสิทธิ์มาตรฐาน)
API การจัดการบัตร Shell Card ใช้ กระบวนการ OAuth 2.0 Client Credentials เพื่อการตรวจสอบสิทธิ์ที่ปลอดภัย
คำเตือน: ลูกค้าทุกท่านควรวางแผนที่จะใช้การยืนยันตัวตนแบบ OAuth 2.0 นี่คือวิธีการยืนยันตัวตนที่แนะนำและรองรับอนาคตสำหรับ API การจัดการ Shell Card วิธีการยืนยันตัวตนแบบเก่าจะถูกยกเลิกการใช้งาน
กระบวนการ OAuth 2.0
ขั้นตอนที่ 1: รับ Access Token
ขอโทเค็นการเข้าถึงจากจุดสิ้นสุดโทเค็น OAuth:
POST /oauth/token Content-Type: application/x-www-form-urlencodedgrant_type=client_credentials&client_id=your-client-id&client_secret=your-client-secret
ขั้นตอนที่ 2: ใช้ Access Token ในการร้องขอ API
Authorization: BearerContent-Type: application/json
การจัดการโทเค็น
แนวทางปฏิบัติที่ดีที่สุดในการจัดการโทเค็น:
- โทเค็นการเข้าถึงมีอายุการใช้งานจำกัด (โดยปกติ 15 นาที)
- ใช้การแคชโทเค็นเพื่อหลีกเลี่ยงการร้องขอโทเค็นที่ไม่จำเป็น
- รีเฟรชโทเค็นก่อนหมดอายุเพื่อให้แน่ใจว่าจะไม่เกิดการขัดข้องในการให้บริการ
- อย่าแชร์ client_secret ของคุณหรือฝังไว้ในโค้ดฝั่งไคลเอนต์
กลยุทธ์การนำ OAuth 2.0 มาใช้
ทำไมต้องย้ายไปใช้ OAuth 2.0?
ประโยชน์ด้านความปลอดภัย:
- โปรโตคอลการยืนยันตัวตนมาตรฐานอุตสาหกรรม
- โทเค็นการเข้าถึงแบบจำกัดเวลาช่วยลดความเสี่ยงด้านความปลอดภัย
- ไม่มีการส่งข้อมูลรับรองพร้อมกับแต่ละคำขอ
- รองรับการหมุนเวียนและการเพิกถอนโทเค็นได้ดีขึ้น
ประโยชน์ด้านการดำเนินงาน:
- ปรับปรุงความสามารถในการขยายตัวและประสิทธิภาพ
- ความสามารถในการตรวจสอบและตรวจสอบที่ดีขึ้น
- การจัดการข้อมูลรับรองที่ง่ายขึ้น
- การผสานรวมที่รองรับอนาคต
เส้นทางการย้ายระบบ
หากคุณกำลังใช้วิธีการยืนยันตัวตนแบบเก่าอยู่ ให้ทำตามเส้นทางการย้ายระบบนี้:
- ขอข้อมูลรับรอง OAuth 2.0 จาก ฝ่ายสนับสนุนด้านเทคนิคของ Shell
- ดำเนินการจัดการโทเค็น OAuth ในแอปพลิเคชันของคุณ
- ทดสอบอย่างละเอียด ใน Test/สภาพแวดล้อมแซนด์บ็อกซ์
- ดำเนินการตรวจสอบสิทธิ์แบบขนาน (OAuth + แบบเดิม) ระหว่างการเปลี่ยนผ่าน
- ตรวจสอบและยืนยัน การผสานรวม OAuth
- เปลี่ยนไปใช้ OAuth เท่านั้น เมื่อได้รับการยืนยันแล้ว
- ยกเลิกการใช้งานการยืนยันตัวตนแบบเดิม หลังจากการย้ายข้อมูลสำเร็จ
สภาพแวดล้อม
API มีให้บริการในสองสภาพแวดล้อม:
| สิ่งแวดล้อม | URL ฐาน | วัตถุประสงค์ |
|---|---|---|
| การผลิต | https://api.shell.com | สภาพแวดล้อมการผลิตจริง |
| ทดสอบ (Sandbox) | https://api-test.shell.com/test | สภาพแวดล้อมสำหรับการทดสอบและพัฒนา |
เคล็ดลับ: ควรทดสอบการผสานระบบของคุณใน สภาพแวดล้อมทดสอบ ก่อนที่จะนำไปใช้งานจริงเสมอ
เริ่มต้นอย่างรวดเร็ว
1. รับข้อมูลประจำตัว OAuth ของคุณ
- ติดต่อ ฝ่ายสนับสนุนทางเทคนิคของ Shell
- ขอข้อมูลรับรอง OAuth 2.0 (client_id และ client_secret)
- รีวิว ข้อกำหนดในการให้บริการ
2. รับโทเค็นการเข้าถึง
ขั้นแรก รับโทเค็นการเข้าถึง OAuth ของคุณ:
ตัวอย่าง cURL:
curl -X POST https://api-test.shell.com/test/oauth/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=your-client-id&client_secret=your-client-secret"
Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 899
}3. สร้างคำขอ API ครั้งแรกของคุณ
ตัวอย่าง: ค้นหาบัตรที่ใช้งานอยู่
ตัวอย่าง cURL:
curl -X POST https://api-test.shell.com/test/card-management/v1/search \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "Content-Type: application/json" \ -d '{ "Filters": { "ColCoCode": 86, "PayerNumber": "PH50000843", "CardStatus": ["ACTIVE"] }, "หน้า": "1", "ขนาดหน้า": "50" }'
ตัวอย่างการตอบกลับ:
{
"RequestId": "233e4567-e89b-12d3-a456-426614174000",
"สถานะ": "สำเร็จ",
"ข้อมูล": [
{
"หมายเลขบัตร": 125,
"PAN": "7002861007636000020",
"MaskedPAN": "7002861**000020",
"ชื่อคนขับ": "โรเบิร์ต สมิธ",
"หมายเลขทะเบียนรถ": "MV65YLH",
"คำอธิบายสถานะ": "ใช้งานอยู่",
"ExpiryDate": "20250531",
"CardTypeCode": "7077861",
"CardTypeName": "Shell Card"
}
],
"Page": 1,
"PageSize": 50,
"TotalPages": 1,
"TotalRecords": 1
}API Endpoints Reference
Card Search & Retrieval
| Endpoint | Method | Description |
|---|---|---|
| /card-management/v1/search | POST | ค้นหาบัตรด้วยตัวกรองที่ยืดหยุ่น (OAuth 2.0) |
| /card-management/v1/details | POST | รับรายละเอียดของบัตรเชื้อเพลิงหนึ่งใบ (OAuth 2.0) |
กรณีการใช้งานทั่วไป:
- ค้นหาตามสถานะบัตร (ใช้งานได้, ถูกระงับ, หมดอายุ, ฯลฯ)
- กรองตามชื่อผู้ขับขี่หรือหมายเลขทะเบียนรถ
- ค้นหาด้วยหมายเลขประจำตัวประชาชน (4 หลักสุดท้าย)
- ค้นหาบัตรที่หมดอายุใน X วัน
สรุปบัตร
| จุดสิ้นสุด | วิธีการ | คำอธิบาย |
|---|---|---|
| /card-management/v1/summary | POST | รับสรุปข้อมูลระดับสูงของบัตรน้ำมัน (OAuth 2.0) |
ผลลัพธ์:
- จำนวนบัตรทั้งหมดตามสถานะ
- สถิติสรุปตามประเภทบัตร
- การแยกประเภทบัตรที่ใช้งานกับไม่ได้ใช้งาน
การจัดลำดับบัตร
| จุดสิ้นสุด | วิธีการ | คำอธิบาย |
|---|---|---|
| /card-management/v1/ordercard | POST | สั่งซื้อบัตรเติมน้ำมันหนึ่งใบหรือมากกว่า (OAuth 2.0) |
| /card-management/v1/ordercardenquiry | POST | ตรวจสอบสถานะคำสั่งซื้อบัตร (OAuth 2.0) |
ข้อมูลที่จำเป็นสำหรับการสั่งทำบัตร:
- ColCoCode (รหัสบริษัทที่รวบรวม)
- หมายเลขผู้จ่ายเงินหรือ PayerId
- หมายเลขบัญชี
- ประเภทและการกำหนดค่าบัตร
- รายละเอียดที่อยู่จัดส่ง
การจัดการสถานะบัตร
| จุดสิ้นสุด | วิธีการ | คำอธิบาย | |
|---|---|---|---|
| /card-management/v1/updatestatus | POST | บล็อก, ยกเลิกบล็อก, หรือยกเลิกบัตร (OAuth 2.0) | |
| /card-management/v1/schedulecardblock | POST | กำหนดเวลาคำขอการบล็อก/ยกเลิกการบล็อกบัตร (OAuth 2.0) |
| หมวดหมู่ | จุดสิ้นสุด | วิธีการ | คำอธิบาย |
|---|---|---|---|
| การยกเลิก | /card-management/v1/cancel | POST | ยกเลิกบัตรหนึ่งใบหรือหลายใบ |
| การเคลื่อนไหวของบัตร | /card-management/v1/move | POST | ย้ายการ์ดไปยังกลุ่มการ์ดหรือบัญชีอื่น |
| การจัดการ PIN | /card-management/v1/pinreminder | POST | ขอรหัส PIN ใหม่สำหรับบัตร |
| ที่อยู่สำหรับการจัดส่ง | /card-management/v1/deliveryaddressupdate | POST | อัปเดตที่อยู่สำหรับการจัดส่งบัตร |
| การต่ออายุอัตโนมัติ | /card-management/v1/autorenew | POST | อัปเดตตัวบ่งชี้การออกใหม่ |
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1:
ค้นหาบัตรที่กำลังจะหมดอายุPOST /card-management/v1/search{ "Filters": { "ColCoCode": 86, "PayerNumber": "PH50000843", "สถานะบัตร": ["ใช้งานอยู่"], "วันหมดอายุในอีก": 30 }, "หน้า": "1", "PageSize": "100" }
ตัวอย่างที่ 2: บล็อกบัตรชั่วคราว
POST /card-management/v1/updatestatus{ "ColCoCode": 86, "PayerNumber": "PH50000843", "Cards": [ { "CardId": 125, "Action": "TEMP_BLOCK_CUSTOMER", "Reason": "บัตรถูกวางผิดที่ชั่วคราว" } ] }
ตัวอย่างที่ 3: ยกเลิกบัตร
POST /card-management/v1/cancel{ "ColCoCode": 86, "PayerNumber": "PH50000843", "บัตร": [ { "หมายเลขบัตร": 125, "วันหมดอายุบัตร": "20231231" } ], "ข้อความเหตุผล": "สูญหาย", "RequestId": "1" }
การจัดการข้อผิดพลาด
รหัสข้อผิดพลาดทั่วไป
| สถานะ HTTP | รหัสข้อผิดพลาด | คำอธิบาย | วิธีแก้ไข |
|---|---|---|---|
| 200 | N/A | สถานะ: สำเร็จ | N/A |
| 200 | E0001 | ข้อผิดพลาดในการตรวจสอบความถูกต้อง | ตรวจสอบพารามิเตอร์คำขอ |
| 401 | E0003 | ไม่ได้รับอนุญาต | ตรวจสอบโทเค็น OAuth ว่าถูกต้อง |
| 403 | E0003 | ห้าม | ตรวจสอบสิทธิ์ผู้ใช้ |
| 404 | E0005 | ไม่พบทรัพยากร | ตรวจสอบ URL ของจุดสิ้นสุดและทรัพยากรว่ามีอยู่จริง |
| 500 | E0002 | ข้อผิดพลาดที่ไม่ทราบสาเหตุ / ข้อผิดพลาดภายในเซิร์ฟเวอร์ | ติดต่อฝ่ายสนับสนุน |
แนวทางปฏิบัติที่ดีที่สุด
1. ใช้งานการยืนยันตัวตน OAuth 2.0
สำคัญ: ลูกค้าทุกท่านควรย้ายไปใช้การยืนยันตัวตน OAuth 2.0 ดำเนินการจัดการโทเค็นอย่างเหมาะสม:
- โทเค็นการเข้าถึงแคชและการนำกลับมาใช้ใหม่จนกว่าจะหมดอายุ <li data-list-item-id=ed3851339b415617f0dc495513c4d38f8">รีเฟรชโทเค็นก่อนที่มันจะหมดอายุ (แนะนำให้ทำก่อน 60 วินาที)
- เก็บรักษาข้อมูลรับรองของไคลเอนต์อย่างปลอดภัย (ใช้ตัวแปรสภาพแวดล้อมหรือตัวจัดการความลับ)
- ห้ามบันทึกหรือเปิดเผยโทเค็นการเข้าถึงในโค้ดฝั่งไคลเอนต์
2. ใช้รหัสคำขอ
โปรดระบุรหัสคำขอ (RequestId) ที่ไม่ซ้ำกัน (รูปแบบ GUID) เพื่อการติดตามตั้งแต่ต้นจนจบ
3. ดำเนินการแบ่งหน้า
สำหรับชุดข้อมูลขนาดใหญ่ ให้ใช้การแบ่งหน้าเพื่อหลีกเลี่ยงการหมดเวลา
4. ทดสอบในสภาพแวดล้อมแซนด์บ็อกซ์
ทดสอบการผสานการทำงานในสภาพแวดล้อมทดสอบ/แซนด์บ็อกซ์ก่อนเสมอ ก่อนที่จะนำไปใช้งานจริง
SDK & ตัวอย่างโค้ด
Shell มี SDK อย่างเป็นทางการและตัวอย่างโค้ดที่ครอบคลุมเพื่อเร่งการผสานการทำงานของคุณกับ Card Management API
มีภาษา SDK ที่มีให้
- Python - SDK ที่มีฟีเจอร์ครบครันพร้อมรองรับ OAuth 2.0
- TypeScript - SDK ที่ปลอดภัยด้านประเภทข้อมูลพร้อมคำจำกัดความประเภทข้อมูลอย่างครบถ้วน
- Java - SDK ระดับองค์กร
- C#/.NET - การผสานรวม .NET อย่างสมบูรณ์
- PHP - ไลบรารี PHP ที่ใช้งานง่าย
- Ruby - รูบี้เจมสำหรับการผสานรวมอย่างไร้รอยต่อ
ดู SDK อย่างเป็นทางการและเอกสารประกอบ
การสนับสนุนและทรัพยากร
การสนับสนุนทางเทคนิค
- การสนับสนุน: ฝ่ายสนับสนุนทางเทคนิคของ Shell
เอกสาร
ขอความช่วยเหลือ
เมื่อติดต่อฝ่ายสนับสนุน โปรดระบุ:
- client_id ของคุณ (อย่าแชร์ client_secret หรือ access tokens ของคุณเด็ดขาด)
- RequestId จากคำตอบของ API
- Timestamp ของคำขอ
- สิ่งแวดล้อม (การผลิต/การทดสอบ)
ปรับปรุงล่าสุด: 15 มิถุนายน 2026
เวอร์ชันเอกสาร: 1.0
เวอร์ชัน API: 3.1.5
เกี่ยวกับเรา
Shell Developer Portal ช่วยสนับสนุนพันธมิตรในการเริ่มต้นใช้งาน API ของ Shell และเปลี่ยนไอเดียให้เป็นโซลูชันที่พร้อมใช้งานจริง
