การแจ้งเตือนการจัดการวงจรโทเค็น

ภาพรวม

ระบบจะส่งการแจ้งเตือนการจัดการวงจรโทเค็น (LCM) ในอนาคตจาก Google Pay Online API ไปยัง tokenUpdateUrl ที่ระบุไว้ในเวลาที่ทำธุรกรรมเดิม ระบบจะส่งอีเมลนี้หากมีการปิดใช้งานหรือลบโทเค็น นอกจากนี้ ระบบยังส่งข้อความอย่างเต็มความสามารถ พร้อมลองส่งอีกครั้งหากส่งไม่สำเร็จ ตัวอย่างขั้นตอน LCM เมื่อผู้ใช้นำบัตรออกจาก Google Wallet มีดังนี้

MerchantTokenUpdateNotificationRequest

ข้อความ HTTP POST จาก Google Pay Online API มีเนื้อหา JSON ที่ห่อหุ้มเพย์โหลดที่เข้ารหัส ระบบจะเข้ารหัสเพย์โหลดด้วยคีย์การเข้ารหัสสาธารณะที่ใช้ร่วมกัน และลงนามด้วยคีย์ส่วนตัวของ Google คุณสามารถถอดรหัสด้วยคีย์การเข้ารหัสส่วนตัว และยืนยันด้วยคีย์การลงนามรูทของ Google รูปแบบ Wrapper เพย์โหลดที่เข้ารหัสนี้จะเหมือนกับสิ่งที่คุณอาจได้รับเป็น PaymentMethodToken คุณสามารถใช้ไลบรารีเดียวกันเพื่อถอดรหัสการแจ้งเตือน LCM นี้ได้ ภายในเพย์โหลดที่เข้ารหัสจะมีออบเจ็กต์ MerchantTokenUpdateNotificationRequest ตามที่ระบุไว้ที่นี่

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
messageId สตริง ต้องระบุ

รหัสที่ไม่ซ้ำกันของการแจ้งเตือนนี้เพื่อขจัดข้อความที่ซ้ำกันและเพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง

หากส่งการแจ้งเตือนนี้ไม่สำเร็จ การแจ้งเตือนจะยังคงเหมือนเดิมสำหรับการลองอีกครั้งในอนาคต

targetNotificationUrl สตริง ต้องระบุ

URL ที่ต้องการสำหรับการแจ้งเตือนนี้ คุณต้องยืนยันว่า URL นี้เป็นปลายทางที่ต้องการ เพื่อรับการแจ้งเตือน LCM ของโทเค็นจาก Google Pay

timestamp สตริง ต้องระบุ

การประทับเวลาที่สร้างการแจ้งเตือนนี้เป็นครั้งแรก และจะยังคงเหมือนเดิมสำหรับการลองใหม่ในอนาคต

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

apiVersion int ต้องระบุ เวอร์ชันหลักของ API
apiVersionMinor int ต้องระบุ เวอร์ชันย่อยของ API
merchantTokenId สตริง ต้องระบุ รหัสโทเค็นผู้ขายพร้อมการอัปเดต นี่คือรหัสที่แสดงเมื่อผู้ใช้ ทำขั้นตอน Google Pay สำหรับ MIT เสร็จสมบูรณ์ นี่คือฟิลด์ภายในเพย์โหลดที่เข้ารหัส ซึ่งส่งใน ออบเจ็กต์ Card
cardUpdateInfo CardUpdateInfo ต้องระบุ มีการอัปเดตสำหรับโทเค็น

CardUpdateInfo

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
fpanSuffix สตริง มีเงื่อนไข

คำอธิบายที่จะช่วยให้ผู้ใช้ระบุหมายเลขบัญชีหลักสำหรับการชำระเงิน (FPAN) ที่เกี่ยวข้องได้ ซึ่งเป็นสตริง 4 หลักที่มีอักขระ 4 ตัวสุดท้ายของ FPAN

เมื่อมีอยู่ ระบบจะถือว่าสถานะโทเค็นทำงานอยู่

โดยจะไม่มีการแสดงหากไม่มีการเปลี่ยนแปลง

tokenState string(enum) มีเงื่อนไข

สถานะใหม่ของโทเค็น หากมีการเปลี่ยนแปลงตั้งแต่ธุรกรรมครั้งแรกหรือการแจ้งเตือนครั้งก่อน

โดยจะไม่มีการแสดงหากไม่มีการเปลี่ยนแปลง

ค่าที่ถูกต้องคือ DISABLED

MerchantTokenUpdateNotificationResponse

รหัสการตอบกลับ HTTP

โค้ดตอบกลับ HTTP การใช้งาน
200 คุณได้รับการแจ้งเตือนเรียบร้อยแล้ว คุณระบุข้อมูลสถานะเพิ่มเติมได้ ในเนื้อหาการตอบกลับเป็นออบเจ็กต์ JSON ตามที่อธิบายไว้ในตารางถัดไป
401 targetNotificationUrl ใน MerchantTokenUpdateNotificationRequest ไม่ถูกต้อง คุณปิดใช้การแจ้งเตือนทั้งหมดในอนาคตสำหรับโทเค็นนี้ได้
5xx ข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ชั่วคราว โปรดส่งการแจ้งเตือนอีกครั้งในภายหลัง
อื่นๆ ข้อผิดพลาดที่ลองอีกครั้งไม่ได้ ระบบจะไม่ส่งการแจ้งเตือนอีกในภายหลัง
พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
requestMessageId สตริง ต้องระบุ

รหัสข้อความที่สร้างจากคำขอ

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

status string(enum) ต้องระบุ

ผู้ขายหรือผู้ให้บริการชำระเงิน (PSP) สามารถแสดงสถานะที่แสดงถึงการ ส่งการแจ้งเตือนและการใช้โทเค็น

ค่าที่ใช้ได้มีดังนี้

  • SUCCESS
  • TOKEN_NOT_IN_USE
  • TOKEN_NOT_FOUND

ตัวอย่าง

การแจ้งเตือนวงจร

คำขอรับการแจ้งเตือน

นี่คือคำขอ HTTP POST ที่มีโทเค็นการแจ้งเตือน LCM ซึ่งส่งจาก Google Pay ไปยัง ปลายทางของคุณ เนื้อหาคือเพย์โหลดที่เข้ารหัส

คำขอ HTTP

  HTTP POST /token/notification/123
  Host: api.merchant.com
  Content-Type: application/json

  {
    "protocolVersion":"ECv2",
    "signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d",
    "intermediateSigningKey":{
      "signedKey": "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
      "signatures": ["MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v"]
    },
    "signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"
  }

Decrypted MerchantTokenUpdateNotificationRequest

  {  // MerchantTokenUpdateNotificationRequest
    "messageId": "ZlxoWhLC3su",
    "targetNotificationUrl":
      "https://api.merchant.com/token/notification/123",
    "timestamp": "2025-03-28T07:53:12.39Z",
    "apiVersion": 1,
    "apiVersionMinor": 0,
    "merchantTokenId": "123",
    "cardUpdateInfo": {
      "tokenState": "DISABLED"
    }
  }

การตอบสนองต่อการแจ้งเตือน

  HTTP 200 OK
  Content-Type: application/json

  {  // MerchantTokenUpdateNotificationResponse
    "requestMessageId": "ZlxoWhLC3su",
    "status": "SUCCESS",
  }

ทดสอบด้วยปลายทาง tokenUpdateUrl

ในโหมดทดสอบ Google Pay จะส่งการแจ้งเตือน LCM ของโทเค็นไปยัง tokenUpdateUrl หากต้องการทริกเกอร์การดำเนินการนี้ ให้ทำตามขั้นตอนต่อไปนี้

  • ทำธุรกรรมทดสอบให้เสร็จสมบูรณ์โดยเรียกใช้ loadPaymentData ด้วยออบเจ็กต์ *TransactionInfo แล้วป้อนข้อมูลลงในฟิลด์ tokenUpdateUrl ด้วย URL ของปลายทาง
  • บริการของ Google จะส่งการแจ้งเตือน LCM ของโทเค็นไปยังปลายทางของคุณ
  • ยืนยันว่าคุณถอดรหัสการแจ้งเตือนได้โดยใช้คีย์ส่วนตัว โปรดทราบว่าในโหมดทดสอบ การแจ้งเตือนนี้จะเปลี่ยนตัวเลข 4 หลักสุดท้ายของหมายเลขบัตรเครดิตเป็น "1234" และมี "tokenState": "DISABLED" เสมอ ไม่ว่าโทเค็นในคำขอจะเป็นอะไรก็ตาม