نظرة عامة
يتم إرسال إشعارات إدارة دورة حياة الرمز المميّز (LCM) المستقبلية من واجهة برمجة التطبيقات Google Pay Online إلى عنوان البريد الإلكتروني tokenUpdateUrl
المقدَّم في وقت المعاملة الأصلية. يتم إرسالها في حال إيقاف رمز مميّز أو حذفه. ويتم أيضًا بذل أقصى مجهود في هذا الإطار مع إعادة المحاولة في حال تعذّر التسليم. في ما يلي مثال على مسار LCM عند إزالة بطاقة من "محفظة Google" من قِبل المستخدم:
MerchantTokenUpdateNotificationRequest
تحمل رسالة HTTP POST من Google Pay Online API نص JSON يغلف حمولة مشفّرة. يتم تشفير الحمولة باستخدام مفتاح التشفير العام المشترَك، ويتم توقيعها باستخدام المفتاح الخاص من Google. يمكنك فك التشفير باستخدام مفتاح التشفير الخاص، وإثبات صحة التوقيع باستخدام مفتاح التوقيع الأساسي من Google.
تنسيق غلاف الحمولة المشفّرة هذا مطابق لما قد تتلقّاه كـ
PaymentMethodToken. يمكنك استخدام المكتبة نفسها لفك تشفير إشعار LCM هذا.
ضمن الحمولة المشفّرة، هناك عنصر MerchantTokenUpdateNotificationRequest كما هو موضّح بالتفصيل هنا.
| الموقع | النوع | الضرورة | الوصف |
|---|---|---|---|
messageId |
سلسلة | مطلوب | المعرّف الفريد لهذا الإشعار لإزالة التكرار من الرسائل ولأغراض تصحيح الأخطاء إذا لم يتم تسليم هذا الإشعار بنجاح، سيظل كما هو في محاولات إعادة الإرسال المستقبلية. |
targetNotificationUrl |
سلسلة | مطلوب | عنوان URL المقصود لهذا الإشعار. يجب تأكيد أنّ عنوان URL هذا هو نقطة النهاية المقصودة لتلقّي إشعارات إدارة دورة حياة الرمز المميّز من Google Pay. |
timestamp |
سلسلة | مطلوب | الطابع الزمني لوقت إنشاء هذا الإشعار في الأصل ويظلّ كما هو في المحاولات المستقبلية. إذا تلقّيت إشعارات متعدّدة لمعرّف الرمز المميز نفسه، سيتم اعتبار الإشعار الذي يتضمّن أحدث طابع زمني هو الإشعار الدقيق. |
apiVersion |
int | مطلوب | رقم الإصدار الرئيسي لواجهة برمجة التطبيقات |
apiVersionMinor |
int | مطلوب | رقم الإصدار الثانوي لواجهة برمجة التطبيقات |
merchantTokenId |
سلسلة | مطلوب | معرّف الرمز المميّز للتاجر مع تعديل هذا هو رقم التعريف الذي تم عرضه في الأصل عندما أكمل المستخدم تدفق Google Pay الخاص بالدفع المتكرّر. هذا حقل ضمن الحمولة المشفّرة،
يتم إرساله في
الكائن Card.
|
cardUpdateInfo |
CardUpdateInfo | مطلوب | يحتوي على تحديثات للرمز المميّز. |
CardUpdateInfo
| الموقع | النوع | الضرورة | الوصف |
|---|---|---|---|
fpanSuffix |
سلسلة | الجملة الشرطية | وصف لمساعدة المستخدمين في تحديد رقم الحساب الأساسي للتمويل (FPAN) الأساسي وهي سلسلة من أربعة أرقام تحتوي على آخر أربعة أحرف من FPAN. عند توفّره، يمكن افتراض أنّ حالة الرمز المميّز نشطة. لا يظهر هذا الحقل إذا لم يتم إجراء أي تغيير. |
tokenState |
سلسلة(تعداد) | الجملة الشرطية | الحالة الجديدة للرمز المميّز، إذا تم تغييره منذ المعاملة الأولية أو الإشعار السابق لا يظهر هذا الحقل إذا لم يتم إجراء أي تغيير. القيمة الصالحة هي |
MerchantTokenUpdateNotificationResponse
رموز استجابة HTTP
| رمز استجابة HTTP | الاستخدام |
|---|---|
| 200 | تم تلقّي الإشعار بنجاح. يمكن تقديم معلومات إضافية عن الحالة في نص الردّ كعنصر JSON كما هو موضّح في الجدول التالي. |
| 401 | إنّ targetNotificationUrl في MerchantTokenUpdateNotificationRequest
غير صالح. يمكن إيقاف جميع الإشعارات المستقبلية لهذا الرمز المميّز. |
| 5xx | حدث خطأ مؤقت في الخادم. يجب إعادة إرسال الإشعار في وقت لاحق. |
| غير ذلك | حدث خطأ ولا يمكن إعادة المحاولة. يجب عدم إرسال الإشعار مرة أخرى في وقت لاحق. |
| الموقع | النوع | الضرورة | الوصف |
|---|---|---|---|
requestMessageId |
سلسلة | مطلوب | معرّف الرسالة الذي تم إنشاؤه من الطلب يجب أن يتطابق مع معرّف الرسالة الوارد في الطلب، وإلا سيتم تجاهل الرد وإيقاف الإشعارات المستقبلية لهذا الرمز المميز. |
status |
سلسلة(تعداد) | مطلوب | يمكن للتاجر أو مقدّم خدمة الدفع (PSP) عرض حالة توضّح ما إذا كان قد استقبل الإشعار واستخدم الرمز المميّز. القيم الصالحة هي:
|
مثال
إشعار مراحل النشاط
طلب الإشعارات
هذا هو طلب 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 إشعارًا بشأن إدارة دورة حياة الرمز المميز إلى جهاز tokenUpdateUrl.
لتفعيل هذه الميزة، اتّبِع الخطوات التالية:
- أكمِل معاملة تجريبية عن طريق استدعاء
loadPaymentDataباستخدام كائن*TransactionInfo، مع ملء الحقلtokenUpdateUrlبعنوان URL الخاص بنقطة النهاية. - سترسل خدمة Google إشعارًا مميزًا بشأن إدارة مراحل النشاط إلى نقطة النهاية.
- تأكَّد من إمكانية فك تشفير الإشعار باستخدام مفتاحك الخاص. يُرجى العِلم أنّه في وضع الاختبار، سيؤدي هذا الإشعار دائمًا إلى تغيير آخر 4 أرقام من رقم البطاقة إلى "1234" وسيتضمّن
"tokenState": "DISABLED"، بغض النظر عن الرمز المميّز في الطلب.