কলব্যাক যোগ করুন এবং মুছুন

এই নির্দেশিকাটিতে Google Wallet API-এর মাধ্যমে কলব্যাক কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করা হয়েছে। যখন একটি পাস তৈরি বা মুছে ফেলা হয়, তখন Google আপনার পছন্দের HTTPS এন্ডপয়েন্টে কলব্যাক করতে পারে। এই কলব্যাকটি ক্লাস-নির্দিষ্ট, এবং ইভেন্ট সম্পর্কিত ডেটা যেমন ক্লাস, অবজেক্ট এবং ইভেন্টের ধরণ অন্তর্ভুক্ত করে। এটি ব্যবহারকারীর সংযোজন এবং মুছে ফেলার সংখ্যা ট্র্যাক রাখতে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, প্রচারমূলক ইভেন্টের সময় গ্রাহকদের অংশগ্রহণ ট্র্যাক করার জন্য একটি বিশ্লেষণ অ্যাপ্লিকেশনে ইভেন্ট পাঠানোর জন্য কলব্যাকগুলি কনফিগার করা যেতে পারে।

পূর্বশর্ত

শুরু করার আগে, নিম্নলিখিত পূর্বশর্তগুলি পর্যালোচনা করুন:

  • POST অনুরোধগুলি পরিচালনা করে এমন একটি HTTPS এন্ডপয়েন্ট তৈরি করুন। এই এন্ডপয়েন্টটি সর্বজনীনভাবে উপলব্ধ হওয়া প্রয়োজন।
  • প্রতিটি ক্লাসের জন্য কলব্যাক এন্ডপয়েন্ট প্রোগ্রাম্যাটিকভাবে আপডেট করুন। REST API-তে ক্লাস অনুসারে callbackOptions প্রপার্টি দেখুন।
  • প্রস্তাবিত: স্বাক্ষর যাচাই করতে Tink লাইব্রেরি ব্যবহার করুন।

কলব্যাক বাস্তবায়ন করুন

কোনও অবজেক্টে ব্যবহারকারীর দ্বারা সম্পাদিত প্রতিটি অ্যাড বা ডিলিটের জন্য, গুগল প্রতি-শ্রেণীর URL-এ অ্যাড বা ডিলিট সম্পর্কে বিশদ সহ ব্যবসায়ীদের কলব্যাক করে। বার্তার সত্যতা যাচাই করার জন্য ব্যবসায়ীদের প্রথমে পাবলিক কী ব্যবহার করতে হবে। কলব্যাকগুলি বার্তাটি যাচাই করার পরে, কলব্যাকগুলি ডাউনস্ট্রিম অপারেশনের জন্য ব্যবহার করা যেতে পারে।

স্বাক্ষর যাচাই করুন

আমরা সুপারিশ করছি যে আপনি যখন আপনার HTTPS এন্ডপয়েন্ট বাস্তবায়ন করবেন তখন বার্তা স্বাক্ষর যাচাই করার জন্য Tink লাইব্রেরি ব্যবহার করুন। Tink লাইব্রেরি PaymentMethodTokenRecipient প্রদান করে, একটি ইউটিলিটি যা স্বয়ংক্রিয়ভাবে স্বাক্ষর যাচাই করে এবং সফল যাচাইয়ের পরে প্রকৃত বার্তাটি ফেরত দেয়।

নিম্নলিখিত উদাহরণে দেখানো হয়েছে কিভাবে Tink লাইব্রেরি ব্যবহার করে PaymentMethodTokenRecipient বাস্তবায়ন করতে হয়:

import java.io.IOException;
import javax.servlet.http.*;
import com.google.common.io.CharStreams;
import com.google.crypto.tink.apps.paymentmethodtoken.*;

// Replace ISSUER_ID with your issuer id
private static final String RECIPIENT_ID = "ISSUER_ID";

private static final String PUBLIC_KEY_URL = "https://pay.google.com/gp/m/issuer/keys";
private static final String SENDER_ID = "GooglePayPasses";
private static final String PROTOCOL = "ECv2SigningOnly";

private static final GooglePaymentsPublicKeysManager keysManager = new GooglePaymentsPublicKeysManager.Builder()
        .setKeysUrl(PUBLIC_KEY_URL)
        .build();

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
  try {
    // Extract signed message with signature from POST request body.
    String signedMessage = CharStreams.toString(request.getReader());
    PaymentMethodTokenRecipient recipient =
            new PaymentMethodTokenRecipient.Builder()
                    .protocolVersion(PROTOCOL)
                    .fetchSenderVerifyingKeysWith(keysManager)
                    .senderId(SENDER_ID)
                    .recipientId(RECIPIENT_ID)
                    .build();

    String serializedJsonMessage = recipient.unseal(signedMessage);

    // Use serializedJsonMessage to extract the details
  } catch (Exception e) {
    // Handle the error
  }
}

প্রত্যাশিত বার্তার ফর্ম্যাট

বার্তার ফর্ম্যাটটি হল JSON যা নিম্নলিখিত বৈশিষ্ট্য সহ একটি স্ট্রিংয়ে সিরিয়ালাইজ করা হয়েছে:

শনাক্তকারী বিবরণ
classId

সম্পূর্ণরূপে যোগ্য ক্লাস আইডি। নিম্নলিখিত ফর্ম্যাট ব্যবহার করে:

<issuer_id.class_id>
objectId

সম্পূর্ণরূপে যোগ্য অবজেক্ট আইডি। নিম্নলিখিত ফর্ম্যাট ব্যবহার করে:

<issuer_id.object_id>
expTimeMillis EPOCH থেকে মিলিসেকেন্ডে মেয়াদ শেষ হওয়ার সময়। মেয়াদ শেষ হওয়ার পরে, বার্তাটি অবৈধ বলে গণ্য করতে হবে।
eventType DELETE এবং SAVE এর জন্য del অথবা save হতে পারে।
nonce কোনও ডুপ্লিকেট ডেলিভারি ট্র্যাক করার কোনও মানে নেই।

গুগল সার্ভার থেকে অনুরোধটি পরিচালনা করুন

আপনার কলব্যাক এন্ডপয়েন্টে পাঠানো অনুরোধের হেডারের মূল ক্ষেত্রগুলির একটি তালিকা নিচে দেওয়া হল:

  • ব্যবহারকারী-এজেন্ট: Googlebot
  • কন্টেন্ট-টাইপ: application/json

আপনার সার্ভারটি এমনভাবে কনফিগার করুন যাতে এটি অনুরোধটি প্রত্যাখ্যান না করে। এটি করার জন্য, আপনি robots.txt এ নিম্নলিখিতগুলি সেট করতে পারেন:

User-agent: Googlebot
Disallow:

পুনঃপ্রচেষ্টা

কলব্যাকগুলি সর্বোত্তম প্রচেষ্টার ভিত্তিতে করা হয়। কলব্যাক এন্ডপয়েন্ট সাড়া না দিলে বা মাঝে মাঝে বিভ্রাটের ক্ষেত্রে স্থিতিশীল থাকার জন্য Google সাধারণ পুনঃচেষ্টা কৌশলগুলি ব্যবহার করবে এবং প্রচেষ্টাগুলিকে সুন্দরভাবে ব্যাক করবে।

ডুপ্লিকেট ডেলিভারি

কিছু ক্ষেত্রে ডুপ্লিকেট ডেলিভারি হতে পারে। আমরা আপনাকে nonce ব্যবহার করে নকল ডেলিভারি করার পরামর্শ দিচ্ছি।