জাভাস্ক্রিপ্ট ওয়েব বোতাম

Google Wallet API আপনার ব্যবহারকারীদের ওয়েব থেকে Google Wallet-এ কোনও অবজেক্ট যোগ করার সুবিধা দেয়। ব্যবহারকারীরা সরাসরি আপনার ওয়েবসাইট থেকে তাদের কার্ড যোগ করতে পারবেন।

এই রেফারেন্সে HTML এলিমেন্ট g:savetoandroidpay সম্পর্কে বিস্তারিত তথ্য দেওয়া আছে যা Google Wallet API বোতাম রেন্ডার করে এবং JSON ওয়েব টোকেন যা Google-এর কাছে আপনার ওয়েব পরিষেবা বর্ণনা করে।

Google Wallet API JavaScript

লোড করার সময় g:savetoandroidpay HTML ট্যাগ অটোমেটিক পার্স করতে, স্ট্যান্ডার্ড JavaScript

<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>

AJAX অ্যাপ্লিকেশন এবং Google Wallet API বোতামের এক্সপ্লিসিট রেন্ডারিংয়ের জন্য, "parsetags": "explicit" প্যারামিটার অন্তর্ভুক্ত করুন।

<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>

g:savetoandroidpay HTML ট্যাগ

g:savetoandroidpay নেমস্পেস ট্যাগ, Google Wallet-এ যোগ করুন বোতামের প্লেসমেন্ট এবং বিভিন্ন অ্যাট্রিবিউট নির্ধারণ করে। আপনি সার্ভার-সাইডে HTML ও JWT রেন্ডার করলে এই ট্যাগ ব্যবহার করুন ।

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
ফিল্ড ধরন প্রয়োজনীয় বিবরণ
height স্ট্রিং না দেখানোর জন্য বোতামের উচ্চতা। সম্ভাব্য ভ্যালুগুলি হল: small (৩০ পিক্সেল উচ্চতা) এবং standard (৩৮ পিক্সেল উচ্চতা)। height ডিফল্ট হিসেবে small সেট করা থাকে। বিভিন্ন height সেটিংস সহ বোতামের স্যাম্পেল দেখতে Google Wallet API বোতাম দেখুন।
jwt স্ট্রিং হ্যাঁ Google Wallet API JWT.
onsuccess স্ট্রিং না সেভ সাকসেস কলব্যাক হ্যান্ডলার ফাংশনের স্ট্রিং নাম।
onfailure স্ট্রিং না সেভ না হওয়ার কলব্যাক হ্যান্ডলার ফাংশনের স্ট্রিং নাম। এই ফাংশনে errorCode ও errorMessage সহ একটি সমস্যার অবজেক্ট পাস করা হয়।
onprovidejwt স্ট্রিং না প্রদান করা JWT হ্যান্ডলার ফাংশনের স্ট্রিং নাম। এই ফাংশনের উদ্দেশ্য হল Google Wallet-এ অবজেক্ট যোগ করার আগে JWT ডেটা ইন্টারসেপ্ট করা এবং সম্ভাব্যভাবে ম্যানিপুলেট করা। এই ফাংশন কোনও প্যারামিটার নেয় না এবং অবশ্যই JWT-কে String হিসেবে রিটার্ন করতে হবে। ইভেন্ট হ্যান্ডলার প্রয়োগ করার সময়, আসল JWT ডেটা this.getOpenParams().renderData.userParams.jwt ফিল্ডের অধীনে ফিরিয়ে আনা যাবে।
size স্ট্রিং না দেখানোর জন্য বোতামের প্রস্থ। আপনি size থেকে matchparent সেট করতে পারেন যাতে প্রস্থটি মূল এলিমেন্টের প্রস্থের সাথে মেলে। অথবা, size অনির্ধারিত রাখুন যাতে প্রস্থটি text সেটিংয়ের প্রস্থের সাথে মানানসই হয়। বিভিন্ন size সেটিংস সহ বোতামের নমুনা দেখতে Google Wallet API বোতাম দেখুন।
text স্ট্রিং না বন্ধ করে দেওয়া হয়েছে
textsize স্ট্রিং না textsize=large নির্দিষ্ট করা থাকলে, বিশেষ UI সংক্রান্ত প্রয়োজনীয়তা থাকা কেসের জন্য টেক্সটের সাইজ এবং বোতামের সাইজ অনেক বেশি করে দেখানো হয়।
theme স্ট্রিং না দেখানোর জন্য বোতামের থিম। সম্ভাব্য মান হল: dark এবং light. ডিফল্ট থিম হল dark। বিভিন্ন theme সেটিংস সহ বোতামের স্যাম্পেল দেখতে Google Wallet API বোতাম দেখুন।

Google Wallet API JWT

Google Wallet API JWT সেভ করার জন্য অবজেক্ট ও ক্লাসকে ডিফাইন করে।

JSON উপস্থাপনা

{
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetowallet",
  "iat": 1368029586,
  "payload": {
    "eventTicketClasses": [{
      ... //Event ticket Class JSON
    }],
    "eventTicketObjects": [{
      // Event ticket Object JSON
    }],
    "flightClasses": [{
      // Flight Class JSON
    }],
    "flightObjects": [{
      // Flight Object JSON
    }],
    "giftCardClasses": [{
      // Gift card Class JSON
    }],
    "giftCardObjects": [{
      // Gift card Object JSON
    }],
    "loyaltyClasses": [{
      // Loyalty Class JSON
    }],
    "loyaltyObjects": [{
      // Loyalty Object JSON
    }],
    "offerClasses": [{
      // Offer Class JSON
    }],
    "offerObjects": [{
      // Offer Object JSON
    }],
    "transitClasses": [{
      // Transit Class JSON
    }],
    "transitObjects": [{
      // Transit Object JSON
    }]
  },
  "origins": ["http://baconrista.com", "https://baconrista.com"]
}

ফিল্ড

ফিল্ড ধরন প্রয়োজনীয় বিবরণ
iss স্ট্রিং হ্যাঁ আপনার Google Cloud পরিষেবা অ্যাকাউন্ট থেকে তৈরি করা ইমেল আইডি।
aud স্ট্রিং হ্যাঁ দর্শক। Google Wallet API অবজেক্টের দর্শক সবসময় google হবে।
typ স্ট্রিং হ্যাঁ JWT-এর ধরন। Google Wallet API অবজেক্টের দর্শক সবসময় savetowallet হবে।
iat পূর্ণসংখ্যা হ্যাঁ ইপক থেকে সেকেন্ডে সময় হিসেবে ইস্যু করা হয়েছে।
payload অবজেক্ট হ্যাঁ পেলোড অবজেক্ট।
payload.eventTicketClasses অ্যারে না সেভ করার জন্য ইভেন্ট টিকিট ক্লাস।
payload.eventTicketObjects অ্যারে না সেভ করার জন্য ইভেন্ট টিকিট অবজেক্ট।
payload.flightClasses অ্যারে না সেভ করার জন্য ফ্লাইট ক্লাস।
payload.flightObjects অ্যারে না সেভ করার জন্য ফ্লাইট অবজেক্ট।
payload.giftCardClasses অ্যারে না সেভ করার জন্য গিফ্ট কার্ড ক্লাস।
payload.giftCardObjects অ্যারে না সেভ করার জন্য গিফ্ট কার্ড অবজেক্ট।
payload.loyaltyClasses অ্যারে না সেভ করার জন্য লয়ালটি ক্লাস।
payload.loyaltyObjects অ্যারে না সেভ করার জন্য লয়ালটি অবজেক্ট।
payload.offerObjects অ্যারে না সেভ করার জন্য অফার অবজেক্ট।
payload.offerClasses অ্যারে না সেভ করার জন্য অফার ক্লাস।
payload.transitObjects অ্যারে না সেভ করার জন্য ট্রানজিট অবজেক্ট।
payload.transitClasses অ্যারে না সেভ করার জন্য ট্রানজিট ক্লাস।
origins অ্যারে হ্যাঁ JWT সেভিং কার্যকারিতার জন্য অনুমোদন করার ডোমেনের অ্যারে। origins ফিল্ড নির্দিষ্ট করা না থাকলে, Google Wallet API বোতাম রেন্ডার হবে না। অরিজিন ফিল্ড নির্দিষ্ট করা না থাকলে, আপনি ব্রাউজার কনসোলে "X-Frame-Options-এর কারণে লোড করা যায়নি" বা "দেখাতে অস্বীকার করা হয়েছে" মেসেজ দেখতে পেতে পারেন।

আপনার এনকোড করা JWT নিম্নলিখিত উদাহরণের মতো দেখতে হবে:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

gapi.savetoandroidpay.render ফাংশন

এই ফাংশন আপনাকে Google Wallet API বোতাম স্পষ্টভাবে রেন্ডার করার অনুমতি দেয়।

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
ফিল্ড ধরন প্রয়োজনীয় বিবরণ
dom-container স্ট্রিং হ্যাঁ Google Wallet API বোতাম রাখার জন্য কন্টেনারের আইডি।
jwt স্ট্রিং হ্যাঁ সেভ করার জন্য কন্টেন্ট নির্ধারণকারী JWT.
onsuccess স্ট্রিং না সেভ সাকসেস কলব্যাক হ্যান্ডলার ফাংশনের স্ট্রিং নাম।
onfailure স্ট্রিং না সেভ না হওয়ার কলব্যাক হ্যান্ডলার ফাংশনের স্ট্রিং নাম। এই ফাংশনে errorCode ও errorMessage সহ একটি সমস্যার অবজেক্ট পাস করা হয়।
onprovidejwt স্ট্রিং না প্রদান করা JWT হ্যান্ডলার ফাংশনের স্ট্রিং নাম। এই ফাংশনের উদ্দেশ্য হল Google Wallet-এ অবজেক্ট যোগ করার আগে JWT ডেটা ইন্টারসেপ্ট করা এবং সম্ভাব্যভাবে ম্যানিপুলেট করা। এই ফাংশন কোনও প্যারামিটার নেয় না এবং স্ট্রিং হিসেবে JWT ফেরত দিতে হবে। ইভেন্ট হ্যান্ডলার প্রয়োগ করার সময়, ফিল্ড this.getOpenParams().renderData.userParams.jwt-এর অধীনে আসল JWT ডেটা রিট্রিভ করা যেতে পারে।

Google Wallet API-এর ত্রুটি কোড ও মেসেজ

জাভাস্ক্রিপ্ট বোতাম ব্যবহার করে কোনও অবজেক্ট সেভ করা না গেলে, নিম্নলিখিত সারণীতে সমস্যার কোড ও ডিফল্ট সমস্যার মেসেজ দেওয়া আছে যা error অবজেক্টে পাস করা হয়।

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Google Wallet সার্ভারে সমস্যা হয়েছে।
CLASS_NOT_FOUND অবজেক্টে রেফারেন্স করা ক্লাস খুঁজে পাওয়া যায়নি।
CLASS_MISMATCH অবজেক্ট অবশ্যই থাকতে হবে, একই ধরনের হতে হবে এবং এনক্লোজড ক্লাসকে রেফারেন্স করতে হবে।
ORIGIN_MISMATCH বোতামের অরিজিন, অরিজিন তালিকায় নির্দিষ্ট করা অরিজিনের সাথে মিলছে না।
INVALID_NUM_TYPES ঠিক এক ধরনের অবজেক্ট নির্দিষ্ট করা যেতে পারে।
INVALID_SIGNATURE স্বাক্ষর যাচাই করা যায়নি।
INVALID_DUPLICATE_IDS ডুপ্লিকেট অবজেক্ট বা ক্লাস ব্যবহার করা যাবে না।
INVALID_JWT ভুল JWT।
INVALID_EXP_IAT JWT-এর মেয়াদ শেষ হয়ে গেছে বা ভবিষ্যতে ইস্যু করা হয়েছে।
INVALID_AUD AUD ফিল্ডের জন্য ভুল ভ্যালু।
INVALID_TYP TYP ফিল্ডের জন্য ভুল ভ্যালু।
INVALID_NUM_OBJECTS লয়ালটি কার্ড, গিফ্ট কার্ড ও অফারের জন্য ঠিক একটি অবজেক্ট ও সর্বাধিক একটি ক্লাস নির্দিষ্ট করা যেতে পারে।
MALFORMED_ORIGIN_URL ভুল অরিজিন URL. URL-এ অবশ্যই প্রোটোকল ও ডোমেন থাকতে হবে।
MISSING_ORIGIN উৎস নির্দিষ্ট করতে হবে।
MISSING_FIELDS এনক্লোজ করা অবজেক্ট বা ক্লাসে প্রয়োজনীয় ফিল্ড নেই।

স্থানীয়করণ

JavaScript বোতামের ভাষা নিম্নলিখিত মাপকাঠির উপর ভিত্তি করে পরিবর্তিত হয়:

  1. ব্যবহারকারী Google-এ লগ-ইন করে থাকলে, ব্যবহারকারীর Google অ্যাকাউন্ট প্রোফাইলে উল্লেখ করা পছন্দের ভাষায় বোতামটি দেখানো হয়। ব্যবহারকারী তার Google অ্যাকাউন্টের পছন্দের ভাষা কীভাবে পরিবর্তন করবেন তা জানতে ভাষা পরিবর্তন করুন পড়তে পারেন।
  2. ব্যবহারকারী Google-এ লগ-ইন না করে থাকলে, বোতামটি HTTP হেডারে ACCEPT-LANGUAGE ভ্যালু ব্যবহার করে।

আপনি যদি লক্ষ্য করেন যে উপরের লজিকের উপর ভিত্তি করে বোতামটি সঠিক ভাষায় রেন্ডার হয় না, বা যদি শব্দটি অস্বাভাবিক হয়, আমাদের সহায়তা টিমের সাথে যোগাযোগ করুন।