คุณสามารถใช้ API ย่อยสำหรับการแจ้งเตือนเพื่อรับข้อความ Push เมื่อข้อมูลในบัญชี Merchant Center มีการเปลี่ยนแปลง คุณสามารถสมัครรับฟีดเหตุการณ์แบบเรียลไทม์ที่ส่งไปยังปลายทาง HTTPS ที่คุณกำหนดค่าไว้โดยตรง แทนที่จะทำการสำรวจ API เป็นระยะๆ เพื่อตรวจหาการเปลี่ยนแปลง
API ย่อยสำหรับการแจ้งเตือนรองรับการแจ้งเตือนสำหรับรายการต่อไปนี้
- การเปลี่ยนแปลงสถานะผลิตภัณฑ์: รับการแจ้งเตือนแบบเรียลไทม์เมื่อสถานะการอนุมัติผลิตภัณฑ์มีการเปลี่ยนแปลง (เช่น เมื่อผลิตภัณฑ์ไม่ได้รับอนุมัติหรือได้รับอนุมัติ) ในบัญชีหรือบัญชีย่อยที่ลิงก์
- การเปลี่ยนแปลงบริการบัญชี:
รับการแจ้งเตือนแบบเรียลไทม์เมื่อมีการสร้าง อัปเดต หรือลบทรัพยากร
AccountService(เช่น เมื่อมีการสร้าง แก้ไข หรือนำความสัมพันธ์ของบริการบัญชีออก)
ข้อกำหนดเบื้องต้นและการตั้งค่า URI ของ Callback
หากต้องการรับข้อความ Push คุณต้องระบุ callBackUri URI ของ Callback ต้องเป็นไปตามข้อกำหนดต่อไปนี้
- ต้องเป็นที่อยู่ HTTPS ที่เข้าถึงได้แบบสาธารณะซึ่งมีใบรับรอง SSL ที่ถูกต้องซึ่งลงนามโดยผู้ออกใบรับรองที่ระบบรู้จัก
- ต้องยอมรับคำขอ HTTP
POSTโดยตั้งค่าส่วนหัวContent-Typeเป็นapplication/json ต้องแสดงรหัสสถานะ HTTP อย่างใดอย่างหนึ่งต่อไปนี้เพื่อรับทราบว่าได้รับการแจ้งเตือนแล้ว
102200201202204
คุณใช้ URI Callback เดียวกันสำหรับการสมัครใช้บริการหลายรายการได้ หากต้องการลดภาระงานในปลายทางเดียว ให้ใช้ URI Callback ที่ไม่ซ้ำกันต่อบัญชีขั้นสูงและประเภทเหตุการณ์
จัดการการสมัครใช้บริการ
API ย่อยสำหรับการแจ้งเตือนมีเมธอดในการสร้าง แสดงรายการ ดึงข้อมูล อัปเดต และลบการกำหนดค่าการแจ้งเตือน
สร้างการสมัครใช้บริการ
การสร้างการสมัครใช้บริการจะเจาะจงตามประเภทเหตุการณ์ที่คุณต้องการรับ เหตุการณ์แต่ละประเภทต้องใช้ฟิลด์กำหนดค่าที่แตกต่างกันและส่งโครงสร้างเพย์โหลดที่แตกต่างกัน
หากต้องการดูวิธีสร้างการสมัครใช้บริการและดูคำขอตัวอย่างสำหรับเหตุการณ์แต่ละประเภท โปรดดูคู่มือที่เกี่ยวข้องต่อไปนี้
แสดงรายการการสมัครใช้บริการ
หากต้องการแสดงรายการการสมัครรับข้อมูลการแจ้งเตือนทั้งหมดสำหรับบัญชี ให้ส่งคำขอ GET ไปยังคอลเล็กชัน notificationsubscriptions ดังนี้
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
ดึงข้อมูลการสมัครใช้บริการ
หากต้องการดูรายละเอียดของการสมัครใช้บริการที่เฉพาะเจาะจง ให้ใช้ชื่อทรัพยากรของการสมัครใช้บริการดังนี้
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
อัปเดตการสมัครใช้บริการ
หากต้องการอัปเดต URI Callback สำหรับการสมัครใช้บริการที่มีอยู่ ให้ส่งคำขอ PATCH พร้อม update_mask ที่ระบุช่องที่จะอัปเดต ดังนี้
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
ลบการสมัครใช้บริการ
หากต้องการหยุดรับการแจ้งเตือน ให้ลบการสมัครใช้บริการโดยทำดังนี้
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
การแจ้งเตือนเกี่ยวกับ Decode
เมื่อเกิดเหตุการณ์ขึ้น Google จะส่งการแจ้งเตือนไปยัง callBackUri ที่ลงทะเบียนไว้ ข้อความ Push จะมาถึงในซองจดหมาย JSON ที่มีเพย์โหลด data ที่เข้ารหัส base64 ดังนี้
{"message":{"data":"{base64_encoded_string}"}}
ถอดรหัสสตริงข้อมูลเพื่อเข้าถึงเพย์โหลดเหตุการณ์ JSON ตัวอย่างตัวควบคุม Spring Boot ต่อไปนี้แสดงวิธีรับและถอดรหัสข้อความ Push
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void handleNotification(@RequestBody String message) {
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
String encodedData = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
String decodedPayload = new String(decodedBytes);
// Process decodedPayload according to the registered event type
}
}
ขั้นตอนถัดไป
หากต้องการกำหนดค่าการสมัครใช้บริการและจัดการเพย์โหลดที่ถอดรหัสแล้วสำหรับเหตุการณ์ที่เฉพาะเจาะจง โปรดดูหัวข้อต่อไปนี้
- รับข้อความ Push สำหรับการเปลี่ยนแปลงสถานะผลิตภัณฑ์:
ดูวิธีสมัครรับข้อมูลอัปเดตเกี่ยวกับการอนุมัติและการไม่อนุมัติผลิตภัณฑ์ รวมถึงแยกวิเคราะห์เพย์โหลด
ProductStatusChangeMessage - รับข้อความ Push สำหรับการเปลี่ยนแปลงบริการของบัญชี:
ดูวิธีสมัครรับข้อมูลอัปเดตความสัมพันธ์ของบัญชีและแยกวิเคราะห์เพย์โหลด
ResourceChangeMessage