JavaScript वेब बटन

Google Wallet API, आपके उपयोगकर्ताओं को वेब से Google Wallet में कोई ऑब्जेक्ट जोड़ने की सुविधा देता है. उपयोगकर्ता सीधे आपकी वेबसाइट से अपने कार्ड जोड़ सकते हैं.

इस रेफ़रंस में, उस एचटीएमएल एलिमेंट g:savetoandroidpay के बारे में जानकारी दी गई है जो Google Wallet API बटन को रेंडर करता है. साथ ही, JSON वेब टोकन भी दिया गया है, जो Google को आपकी वेब सेवा के बारे में बताता है.

Google Wallet API JavaScript

लोड होने पर, g:savetoandroidpay एचटीएमएल टैग को अपने-आप पार्स करने के लिए, स्टैंडर्ड 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 एचटीएमएल टैग

g:savetoandroidpay नेमस्पेस टैग, 'Google वॉलेट' में जोड़ें बटन के प्लेसमेंट और कई एट्रिब्यूट के बारे में बताता है. अगर एचटीएमएल और JWT सर्वर साइड को रेंडर किया जा रहा है, तो इस टैग का इस्तेमाल करें.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
फ़ील्ड टाइप ज़रूरी है ब्यौरा
height स्ट्रिंग नहीं बटन की लंबाई. संभावित वैल्यू ये हैं: small (30 पिक्सल ऊंचाई) और standard (38 पिक्सल ऊंचाई). height की डिफ़ॉल्ट वैल्यू small होती है. अलग-अलग height सेटिंग वाले बटन के सैंपल देखने के लिए, Google Wallet API बटन देखें.
jwt स्ट्रिंग हां Google Wallet API JWT.
onsuccess स्ट्रिंग नहीं सेव की गई कार्रवाई के कॉलबैक हैंडलर फ़ंक्शन के लिए स्ट्रिंग का नाम.
onfailure स्ट्रिंग नहीं सेव न हो पाने वाले कॉलबैक हैंडलर फ़ंक्शन के स्ट्रिंग का नाम. इस फ़ंक्शन में गड़बड़ी वाले ऑब्जेक्ट को पास किया गया है. इसमें एकerrorCode और किस तरह के गड़बड़ी मैसेज हैं.
onprovidejwt स्ट्रिंग नहीं JWT हैंडलर फ़ंक्शन उपलब्ध कराने वाले स्ट्रिंग का नाम. इस फ़ंक्शन का मकसद, Google Wallet में ऑब्जेक्ट को जोड़ने से पहले, JWT के डेटा को रोकना और उसमें बदलाव करना है. यह फ़ंक्शन कोई पैरामीटर नहीं लेता और उसे स्ट्रिंग के रूप में JWT देना होगा. इवेंट हैंडलर को लागू करते समय, ओरिजनल JWT डेटा फ़ील्ड this.getOpenParams().renderData.userParams.jwt में देखा जा सकता है.
size स्ट्रिंग नहीं दिखाए जाने वाले बटन की चौड़ाई. size को matchparent पर सेट किया जा सकता है, ताकि वह पैरंट एलिमेंट की चौड़ाई से मेल खाए. इसके अलावा, size को तय न करें, ताकि चौड़ाई text सेटिंग की चौड़ाई के हिसाब से फ़िट हो जाए. अलग-अलग size सेटिंग वाले बटन के सैंपल देखने के लिए, Google Wallet API बटन देखें.
text स्ट्रिंग नहीं बहिष्कृत
textsize स्ट्रिंग नहीं अगर textsize=large के बारे में बताया गया है, तो यूज़र इंटरफ़ेस (यूआई) की खास ज़रूरतों वाले मामलों में, यह टेक्स्ट साइज़ और बटन साइज़ को बहुत ज़्यादा बढ़ा देता है.
theme स्ट्रिंग नहीं दिखाने के लिए बटन की थीम. संभावित वैल्यू ये हैं: dark और light. डिफ़ॉल्ट थीम dark है. अलग-अलग theme सेटिंग वाले बटन के सैंपल देखने के लिए, Google Wallet API बटन देखें.

Google Wallet API JWT

Google Wallet API JWT, सेव किए जाने वाले ऑब्जेक्ट और क्लास के बारे में जानकारी देता है.

जेएसओएन के काेड में दिखाना

{
  "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 पूरी संख्या हां epoch के बाद से सेकंड में समय पर जारी किया जाता है.
payload ऑब्जेक्ट हां पेलोड ऑब्जेक्ट.
payload.eventTicketClasses Array नहीं सेव करने के लिए, इवेंट के टिकट की कैटगरी.
payload.eventTicketObjects Array नहीं सेव करने के लिए इवेंट टिकट ऑब्जेक्ट.
payload.flightClasses Array नहीं सेव करने के लिए फ़्लाइट की क्लास.
payload.flightObjects Array नहीं सेव करने के लिए फ़्लाइट ऑब्जेक्ट.
payload.giftCardClasses Array नहीं सेव करने के लिए, गिफ़्ट कार्ड की कैटगरी.
payload.giftCardObjects Array नहीं सेव करने के लिए उपहार कार्ड का ऑब्जेक्ट.
payload.loyaltyClasses Array नहीं सेव करने के लिए लॉयल्टी क्लास.
payload.loyaltyObjects Array नहीं सेव किया जाने वाला लॉयल्टी ऑब्जेक्ट.
payload.offerObjects Array नहीं सेव करने के लिए ऑफ़र ऑब्जेक्ट.
payload.offerClasses Array नहीं सेव करने के लिए क्लास ऑफ़र करें.
payload.transitObjects Array नहीं सेव करने के लिए ट्रांज़िट ऑब्जेक्ट.
payload.transitClasses Array नहीं सेव करने के लिए बस, मेट्रो वगैरह की क्लास.
origins Array हां 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 और किस तरह के गड़बड़ी मैसेज हैं.
onprovidejwt स्ट्रिंग नहीं JWT हैंडलर फ़ंक्शन उपलब्ध कराने वाले स्ट्रिंग का नाम. इस फ़ंक्शन का मकसद, Google Wallet में ऑब्जेक्ट को जोड़ने से पहले, JWT के डेटा को रोकना और उसमें बदलाव करना है. यह फ़ंक्शन कोई पैरामीटर नहीं लेता और उसे स्ट्रिंग के रूप में JWT देना होगा. इवेंट हैंडलर को लागू करते समय, ओरिजनल JWT डेटा फ़ील्ड this.getOpenParams().renderData.userParams.jwt में देखा जा सकता है.

Google Wallet API से जुड़े गड़बड़ी कोड और मैसेज

नीचे दी गई टेबल में, गड़बड़ी के ऑब्जेक्ट में मौजूद गड़बड़ी के कोड और डिफ़ॉल्ट गड़बड़ी के मैसेज की सूची दी गई है. ये मैसेज, गड़बड़ी वाले कॉलबैक फ़ंक्शन को पास किए जाते हैं. ऐसा तब किया जाता है, जब कोई ऑब्जेक्ट JavaScript बटन का इस्तेमाल करके सेव नहीं होता.

        {
          "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. यूआरएल में प्रोटोकॉल और डोमेन होना चाहिए.
MISSING_ORIGIN शुरुआत की जगह के बारे में बताना ज़रूरी है.
MISSING_FIELDS शामिल ऑब्जेक्ट या क्लास में ज़रूरी फ़ील्ड नहीं थे.

स्थानीय भाषा के अनुसार

JavaScript बटन में भाषा, नीचे दी गई शर्तों के आधार पर बदलती है:

  1. अगर उपयोगकर्ता ने Google में लॉग इन किया है, तो बटन, उपयोगकर्ता के Google खाते की प्रोफ़ाइल में दी गई पसंदीदा भाषा में रेंडर होता है. उपयोगकर्ता अपने Google खाते की पसंदीदा भाषा बदलने का तरीका जानने के लिए, भाषा बदलें पढ़ सकता है.
  2. अगर उपयोगकर्ता ने Google में लॉग इन नहीं किया है, तो यह बटन एचटीटीपी हेडर में ACCEPT-LANGUAGE वैल्यू का इस्तेमाल करता है.

अगर आपको ऊपर दिए गए लॉजिक के आधार पर, बटन सही भाषा में रेंडर नहीं हो रहा है या शब्द अस्वाभाविक है, तो हमारी सहायता टीम से संपर्क करें.