ภาพรวม Notifications Sub-API

คุณสามารถใช้ API ย่อยสำหรับการแจ้งเตือนเพื่อรับข้อความ Push เมื่อข้อมูลในบัญชี Merchant Center มีการเปลี่ยนแปลง คุณสามารถสมัครรับฟีดเหตุการณ์แบบเรียลไทม์ที่ส่งไปยังปลายทาง HTTPS ที่คุณกำหนดค่าไว้โดยตรง แทนที่จะทำการสำรวจ API เป็นระยะๆ เพื่อตรวจหาการเปลี่ยนแปลง

API ย่อยสำหรับการแจ้งเตือนรองรับการแจ้งเตือนสำหรับรายการต่อไปนี้

  • การเปลี่ยนแปลงสถานะผลิตภัณฑ์: รับการแจ้งเตือนแบบเรียลไทม์เมื่อสถานะการอนุมัติผลิตภัณฑ์มีการเปลี่ยนแปลง (เช่น เมื่อผลิตภัณฑ์ไม่ได้รับอนุมัติหรือได้รับอนุมัติ) ในบัญชีหรือบัญชีย่อยที่ลิงก์
  • การเปลี่ยนแปลงบริการบัญชี: รับการแจ้งเตือนแบบเรียลไทม์เมื่อมีการสร้าง อัปเดต หรือลบทรัพยากร AccountService (เช่น เมื่อมีการสร้าง แก้ไข หรือนำความสัมพันธ์ของบริการบัญชีออก)

ข้อกำหนดเบื้องต้นและการตั้งค่า URI ของ Callback

หากต้องการรับข้อความ Push คุณต้องระบุ callBackUri URI ของ Callback ต้องเป็นไปตามข้อกำหนดต่อไปนี้

  • ต้องเป็นที่อยู่ HTTPS ที่เข้าถึงได้แบบสาธารณะซึ่งมีใบรับรอง SSL ที่ถูกต้องซึ่งลงนามโดยผู้ออกใบรับรองที่ระบบรู้จัก
  • ต้องยอมรับคำขอ HTTP POST โดยตั้งค่าส่วนหัว Content-Type เป็น application/json
  • ต้องแสดงรหัสสถานะ HTTP อย่างใดอย่างหนึ่งต่อไปนี้เพื่อรับทราบว่าได้รับการแจ้งเตือนแล้ว

    • 102
    • 200
    • 201
    • 202
    • 204

คุณใช้ 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
  }
}

ขั้นตอนถัดไป

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