JavaScript वेब बटन

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

यह संदर्भ उन HTML तत्व के बारे में विवरण उपलब्ध कराता है जो g:savetoandroidpayGoogle वॉलेट 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 Wallet में जोड़ें' बटन के प्लेसमेंट और अलग-अलग एट्रिब्यूट के बारे में बताता है. इस टैग का इस्तेमाल तब ही करें, जब एचटीएमएल और JWTs सर्वर साइड को रेंडर किया जा रहा हो.

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

ध्यान दें: इन JWT को आरएसए-SHA256 का इस्तेमाल करके साइन किया जाता है. साइनिंग कुंजी, OAuth सेवा खाते से जनरेट की गई कुंजी होती है.

फ़ील्ड टाइप ज़रूरी है जानकारी
iss स्ट्रिंग हां आपका OAuth 2.0 सेवा खाता जनरेट किया गया ईमेल पता.
aud स्ट्रिंग हां दर्शक. Google Wallet API ऑब्जेक्ट के लिए ऑडियंस हमेशा google होगी.
typ स्ट्रिंग हां JWT का प्रकार. Google Wallet API ऑब्जेक्ट के लिए ऑडियंस हमेशा savetoandroidpay होगी.
iat पूर्णांक हां Epoch के बाद से सेकंड में समय पर जारी होता है.
payload ऑब्जेक्ट हां पेलोड ऑब्जेक्ट.
payload.eventTicketClasses कैटगरी N सेव करने के लिए इवेंट टिकट क्लास.
payload.eventTicketObjects कैटगरी N सेव करने के लिए इवेंट का टिकट ऑब्जेक्ट.
payload.flightClasses कैटगरी N फ़्लाइट क्लास.
payload.flightObjects कैटगरी N सेव करने के लिए फ़्लाइट ऑब्जेक्ट.
payload.giftCardClasses कैटगरी N बचत करने के लिए उपहार कार्ड की श्रेणी.
payload.giftCardObjects कैटगरी N सेव करने के लिए, उपहार कार्ड का ऑब्जेक्ट.
payload.loyaltyClasses कैटगरी N सेव करें.
payload.loyaltyObjects कैटगरी N सेव किया जाने वाला लॉयल्टी ऑब्जेक्ट.
payload.offerObjects कैटगरी N सेव करने के लिए ऑब्जेक्ट ऑफ़र करें.
payload.offerClasses कैटगरी N बचत करने के लिए ऑफ़र की क्लास.
payload.transitObjects कैटगरी N सेव करने के लिए ट्रांज़िट ऑब्जेक्ट.
payload.transitClasses कैटगरी N सेव किया जाएगा.
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 स्ट्रिंग हां सेव किया जाने वाला कॉन्टेंट.
onsuccess स्ट्रिंग N सेव सक्सेस कॉलबैक हैंडलर फ़ंक्शन का स्ट्रिंग नाम.
onfailure स्ट्रिंग N सेव न हो पाने वाले कॉलबैक हैंडलर फ़ंक्शन की स्ट्रिंग का नाम. इस फ़ंक्शन को गड़बड़ी वाले ऑब्जेक्ट के तौर पर दिखाया जाता है. इसमें गड़बड़ी कोड और errorMessage होता है.
onprovidejwt स्ट्रिंग N JWT हैंडलर फ़ंक्शन उपलब्ध कराने वाली स्ट्रिंग का नाम. इस फ़ंक्शन का मकसद Google वॉलेट में ऑब्जेक्ट जोड़ने से पहले JWT डेटा को रोकने और संभावित रूप से उसमें बदलाव करने का काम करना है. यह फ़ंक्शन कोई पैरामीटर नहीं लेता. साथ ही, JWT को स्ट्रिंग के तौर पर दिखाना होगा. इवेंट हैंडलर लागू करते समय, मूल JWT डेटा को फ़ील्ड this.getOpenParams().renderData.userParams.jwt में वापस लाया जा सकता है.

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

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

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

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

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

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

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