এক নজরে
ভবিষ্যতের টোকেন লাইফসাইকেল ম্যানেজমেন্ট (LCM) বিজ্ঞপ্তি Google Pay Online API থেকে tokenUpdateUrl-এ পাঠানো হয়
যা আসল ট্রানজ্যাকশনের সময় প্রদান করা হয়। কোনও টোকেন বন্ধ বা মুছে দেওয়া হলে এগুলি পাঠানো হয়। এছাড়াও, ডেলিভারি না হলে আবার চেষ্টা করার মাধ্যমে
যথাসম্ভব দ্রুত ডেলিভার করা হয়। ব্যবহারকারী Google Wallet থেকে কার্ড সরিয়ে দিলে LCM ফ্লো কেমন হয় তার উদাহরণ এখানে দেওয়া হল:
MerchantTokenUpdateNotificationRequest
Google Pay Online API থেকে একটি HTTP POST মেসেজ, একটি JSON বডি বহন করে যা একটি এনক্রিপ্ট করা
পেলোডকে এনক্যাপসুলেট করে। আপনার শেয়ার করা পাবলিক এনক্রিপশন কী দিয়ে পে-লোড এনক্রিপ্ট করা হয় এবং Google-এর
ব্যক্তিগত কী দিয়ে সাইন করা হয়। আপনি নিজের ব্যক্তিগত এনক্রিপশন কী দিয়ে ডিক্রিপ্ট করতে এবং
Google-এর রুট সাইনিং কী দিয়ে যাচাই করতে পারবেন।
এই এনক্রিপ্ট করা পেলোড র্যাপার ফর্ম্যাটটি আপনি PaymentMethodToken হিসেবে যা পেতে পারেন তার
মতোই। এই LCM বিজ্ঞপ্তি ডিক্রিপ্ট করতে আপনি একই লাইব্রেরি ব্যবহার করতে পারবেন।
এনক্রিপ্ট করা পেলোডের মধ্যে, একটি MerchantTokenUpdateNotificationRequest অবজেক্ট আছে
যেমন এখানে বিস্তারিতভাবে বলা হয়েছে।
| প্রপার্টি | ধরন | প্রয়োজনীয়তা | বিবরণ |
|---|---|---|---|
messageId |
স্ট্রিং | প্রয়োজনীয় | মেসেজ ডিডুপ্লিকেট করতে এবং ডিবাগ করার উদ্দেশ্যে এই বিজ্ঞপ্তির অনন্য আইডি। এই বিজ্ঞপ্তিটি সফলভাবে ডেলিভার করা না হলে, ভবিষ্যতে আবার চেষ্টা করার জন্য এটি একই থাকে। |
targetNotificationUrl |
স্ট্রিং | প্রয়োজনীয় | এই বিজ্ঞপ্তির জন্য উদ্দিষ্ট URL। আপনাকে কনফার্ম করতে হবে যে এই URL-ই হল আপনার কাঙ্ক্ষিত এন্ডপয়েন্ট যেখানে Google Pay থেকে টোকেন LCM বিজ্ঞপ্তি পাবেন। |
timestamp |
স্ট্রিং | প্রয়োজনীয় | এই বিজ্ঞপ্তিটি কখন তৈরি করা হয়েছিল তার টাইমস্ট্যাম্প। ভবিষ্যতে আবার চেষ্টা করার জন্য এটি একই থাকে। আপনি একই টোকেন আইডির জন্য একাধিক বিজ্ঞপ্তি পেলে, শুধুমাত্র লেটেস্ট টাইমস্ট্যাম্প সহ বিজ্ঞপ্তিটি সঠিক বলে বিবেচনা করা হয়। |
apiVersion |
int | প্রয়োজনীয় | API-এর মেজর ভার্সন। |
apiVersionMinor |
int | প্রয়োজনীয় | API মাইনর ভার্সন। |
merchantTokenId |
স্ট্রিং | প্রয়োজনীয় | আপডেট সহ মার্চেন্ট টোকেন আইডি। এটি হল সেই আইডি যা ব্যবহারকারী MIT-এর জন্য Google Pay ফ্লো সম্পূর্ণ করার সময়
প্রথমে ফেরত দেওয়া হয়েছিল। এটি এনক্রিপ্ট করা পেলোডের মধ্যে একটি ফিল্ড,
যা
Card অবজেক্ট।
|
cardUpdateInfo |
CardUpdateInfo | প্রয়োজনীয় | টোকেনের জন্য আপডেট রয়েছে। |
CardUpdateInfo
| প্রপার্টি | ধরন | প্রয়োজনীয়তা | বিবরণ |
|---|---|---|---|
fpanSuffix |
স্ট্রিং | সংযোজক অব্যয় | ব্যবহারকারীদের ফান্ডিং প্রাথমিক অ্যাকাউন্ট নম্বর (FPAN) শনাক্ত করতে সাহায্য করার জন্য একটি বিবরণ। এটি চার সংখ্যার স্ট্রিং যাতে FPAN-এর শেষ চারটি অক্ষর থাকে। এটি থাকলে, টোকেন স্টেট অ্যাক্টিভ আছে বলে ধরে নেওয়া যেতে পারে। কোনও পরিবর্তন না হলে এটি দেখানো হয় না। |
tokenState |
স্ট্রিং(enum) | সংযোজক অব্যয় | প্রাথমিক ট্রানজ্যাকশন বা আগের বিজ্ঞপ্তির পর থেকে টোকেনের স্ট্যাটাস পরিবর্তন হয়ে থাকলে, টোকেনের নতুন স্ট্যাটাস। কোনও পরিবর্তন না হলে এটি দেখানো হয় না। সঠিক ভ্যালু হল |
MerchantTokenUpdateNotificationResponse
HTTP রেসপন্স কোড
| HTTP রেসপন্স কোড | ব্যবহার |
|---|---|
| 200 | বিজ্ঞপ্তিটি সফলভাবে পাওয়া গেছে। পরবর্তী টেবিলে যেমন বর্ণনা করা হয়েছে, সেই অনুযায়ী JSON অবজেক্ট হিসেবে রেসপন্স বডিতে স্ট্যাটাস সংক্রান্ত অতিরিক্ত তথ্য প্রদান করা যেতে পারে। |
| 401 | MerchantTokenUpdateNotificationRequest-এ targetNotificationUrl
সঠিক নয়। এই টোকেনের জন্য ভবিষ্যতের সব বিজ্ঞপ্তি বন্ধ করা যেতে পারে। |
| 5xx | সার্ভারে সাময়িক সমস্যা। বিজ্ঞপ্তিটি পরে আবার পাঠানো উচিত। |
| অন্যান্য | এমন সমস্যা যার সমাধান করা যাবে না। পরে বিজ্ঞপ্তিটি আবার পাঠানো উচিত নয়। |
| প্রপার্টি | ধরন | প্রয়োজনীয়তা | বিবরণ |
|---|---|---|---|
requestMessageId |
স্ট্রিং | প্রয়োজনীয় | অনুরোধ থেকে জেনারেট করা মেসেজ আইডি। এটি অবশ্যই অনুরোধের মেসেজ আইডির সাথে মিলতে হবে, অন্যথায় উত্তরটি উপেক্ষা করা যেতে পারে এবং এই টোকেনের জন্য ভবিষ্যতের বিজ্ঞপ্তি বন্ধ করা হবে। |
status |
স্ট্রিং(enum) | প্রয়োজনীয় | মার্চেন্ট বা পেমেন্ট সার্ভিস প্রোভাইডার (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\"}" }
ডিক্রিপ্ট করা 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-এ টোকেন LCM বিজ্ঞপ্তি পাঠায়।
এটি ট্রিগার করতে, এইসব ধাপ অনুসরণ করুন:
*TransactionInfoঅবজেক্টের সাথেloadPaymentDataকল করে একটি টেস্ট ট্রানজ্যাকশন সম্পূর্ণ করুন, আপনার এন্ডপয়েন্ট URL-এর সাথেtokenUpdateUrlফিল্ড পপুলেট করুন।- Google-এর পরিষেবা আপনার এন্ডপয়েন্টে একটি টোকেন LCM বিজ্ঞপ্তি পাঠাবে।
- আপনার ব্যক্তিগত কী ব্যবহার করে বিজ্ঞপ্তি ডিক্রিপ্ট করতে পারবেন কিনা তা যাচাই করুন। মনে রাখবেন, TEST মোডে, এই
বিজ্ঞপ্তি সবসময় কার্ড নম্বরের শেষ ৪টি সংখ্যা পরিবর্তন করে "1234" করে দেবে এবং এতে
"tokenState": "DISABLED"থাকবে, অনুরোধে টোকেন যাই থাকুক না কেন।