نمای کلی
اعلانهای مدیریت چرخه حیات توکنهای آینده (LCM) از API گوگل پی آنلاین به tokenUpdateUrl ارائه شده در زمان تراکنش اصلی ارسال میشوند. این اعلانها در صورت غیرفعال یا حذف شدن توکن ارسال میشوند. همچنین این اعلانها بر اساس بهترین تلاش و با تلاش مجدد برای تحویلهای ناموفق ارسال میشوند. در اینجا مثالی از جریان LCM زمانی که کارت توسط کاربر از گوگل والت حذف میشود، آورده شده است:
درخواست اعلان بهروزرسانی توکن فروشنده
یک پیام HTTP POST از API گوگل پی آنلاین، حاوی یک بدنه JSON است که یک payload رمزگذاری شده را در خود جای داده است. این payload با کلید رمزگذاری عمومی مشترک شما رمزگذاری شده و توسط کلید خصوصی گوگل امضا شده است. میتوانید با کلید رمزگذاری خصوصی خود رمزگشایی کرده و با کلید امضای ریشه گوگل تأیید کنید. این قالب بستهبندی payload رمزگذاری شده با آنچه ممکن است به عنوان PaymentMethodToken دریافت کنید، یکسان است. میتوانید از همان کتابخانه برای رمزگشایی این اعلان LCM استفاده کنید. در داخل payload رمزگذاری شده، یک شیء MerchantTokenUpdateNotificationRequest وجود دارد که در اینجا به تفصیل شرح داده شده است.
| ملک | نوع | ضرورت | توضیحات |
|---|---|---|---|
messageId | رشته | مورد نیاز | شناسه منحصر به فرد این اعلان برای حذف پیامهای تکراری و اشکالزدایی. اگر این اعلان با موفقیت ارسال نشود، برای تلاشهای بعدی به همین شکل باقی میماند. |
targetNotificationUrl | رشته | مورد نیاز | آدرس اینترنتی (URL) مورد نظر برای این اعلان. شما باید تأیید کنید که این آدرس اینترنتی، نقطه پایانی مورد نظر شما برای دریافت اعلانهای LCM توکن از Google Pay است. |
timestamp | رشته | مورد نیاز | مهر زمانی که این اعلان در ابتدا ایجاد شده است. این مهر برای تلاشهای مجدد بعدی ثابت میماند. اگر چندین اعلان برای یک شناسه توکن یکسان دریافت کنید، فقط اعلانی که آخرین برچسب زمانی را دارد، دقیق در نظر گرفته میشود. |
apiVersion | عدد صحیح | مورد نیاز | نسخه اصلی API. |
apiVersionMinor | عدد صحیح | مورد نیاز | نسخه فرعی API. |
merchantTokenId | رشته | مورد نیاز | شناسه توکن فروشنده به همراه بهروزرسانی. این شناسهای است که در ابتدا هنگام تکمیل جریان Google Pay برای MIT توسط کاربر بازگردانده شده است. این فیلدی در payload رمزگذاری شده است که در شیء Card . |
cardUpdateInfo | اطلاعات بهروزرسانی کارت | مورد نیاز | شامل بهروزرسانیهایی برای توکن است. |
اطلاعات بهروزرسانی کارت
| ملک | نوع | ضرورت | توضیحات |
|---|---|---|---|
fpanSuffix | رشته | مشروط | توضیحی برای کمک به کاربران در شناسایی شماره حساب اصلی تأمین مالی (FPAN). این شماره یک رشته چهار رقمی است که شامل چهار کاراکتر آخر FPAN میشود. وقتی وجود داشته باشد، میتوان فرض کرد که وضعیت توکن فعال است. اگر تغییری نباشد، وجود ندارد. |
tokenState | رشته (شمارشی) | مشروط | وضعیت جدید توکن، در صورت تغییر از زمان تراکنش اولیه یا اطلاعرسانی قبلی. اگر تغییری نباشد، وجود ندارد. مقدار معتبر |
پاسخ اعلان بهروزرسانی توکن فروشنده
کدهای پاسخ HTTP
| کد پاسخ HTTP | کاربرد |
|---|---|
| ۲۰۰ | اعلان با موفقیت دریافت شد. اطلاعات وضعیت اضافی را میتوان در بدنه پاسخ به عنوان یک شیء JSON همانطور که در جدول بعدی توضیح داده شده است، ارائه داد. |
| ۴۰۱ | targetNotificationUrl در MerchantTokenUpdateNotificationRequest نامعتبر است. همه اعلانهای آینده برای این توکن را میتوان غیرفعال کرد. |
| 5xx | خطای موقت سرور. اعلان باید بعداً دوباره ارسال شود. |
| دیگر | خطای غیرقابل برگشت. اعلان نباید بعداً دوباره ارسال شود. |
| ملک | نوع | ضرورت | توضیحات |
|---|---|---|---|
requestMessageId | رشته | مورد نیاز | شناسه پیام تولید شده از درخواست. باید با شناسه پیام از درخواست مطابقت داشته باشد، در غیر این صورت پاسخ میتواند نادیده گرفته شود و اعلانهای آینده برای این توکن متوقف میشوند. |
status | رشته (شمارشی) | مورد نیاز | فروشنده یا ارائهدهنده خدمات پرداخت (PSP) میتواند وضعیتی را برگرداند که نشاندهنده دریافت اعلان و استفاده آنها از توکن باشد. مقادیر معتبر عبارتند از:
|
مثال
اعلان چرخه عمر
درخواست اعلان
این درخواست HTTP POST است که حاوی اعلان LCM توکن است که از Google Pay به نقطه پایانی شما ارسال شده است. بدنه یک payload رمزگذاری شده است.
درخواست 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\"}" }
درخواست اعلان بهروزرسانی توکن فروشنده رمزگشایی شد
{ // 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 خود تست کنید
در حالت تست، گوگل پی یک اعلان LCM توکن به tokenUpdateUrl شما ارسال میکند. برای فعال کردن این حالت، این مراحل را دنبال کنید:
- با فراخوانی
loadPaymentDataبا یک شیء*TransactionInfo، یک تراکنش آزمایشی را تکمیل کنید و فیلدtokenUpdateUrlرا با URL نقطه پایانی خود پر کنید. - سرویس گوگل یک اعلان LCM توکن به نقطه پایانی شما ارسال خواهد کرد.
- تأیید کنید که میتوانید اعلان را با استفاده از کلید خصوصی خود رمزگشایی کنید. توجه داشته باشید که در حالت TEST، این اعلان همیشه ۴ رقم آخر شماره کارت را به "۱۲۳۴" تغییر میدهد و صرف نظر از توکن موجود در درخواست، حاوی
"tokenState": "DISABLED"است.