ज़रूरी शर्तें
आगे बढ़ने से पहले नीचे दिए गए चरणों को पूरा करना न भूलें:
स्मार्ट टैप के लिए चालू करने के लिए खाता तय करें
आगे बढ़ने से पहले, आपको यह पता लगाना होगा कि कौनसा खाता रिडेंप्शन जारी करने वाले व्यक्ति का खाता. इसे तय करने के दो तरीके हैं:
जारी करने वाला नया खाता बनाएं
नए खाते की संपर्क जानकारी में व्यापारी/कंपनी/कारोबारी की संपर्क जानकारी शामिल होनी चाहिए जानकारी. Google Pay में यह करने के तरीके के बारे में और वॉलेट कंसोल, इसका संदर्भ देखें सहायता लेख नीचे दिया गया कोड सैंपल, जारी करने वाले का खाता बनाने की जानकारी देता है. इसके लिए, Google Wallet API:
Java
/** * Create a new Google Wallet Issuer account. * * @param issuerName The Issuer's name. * @param issuerEmail The Issuer's email address. * @throws IOException */ public void CreateIssuerAccount(String issuerName, String issuerEmail) throws IOException { // New Issuer information Issuer issuer = new Issuer() .setName(issuerName) .setContactInfo(new IssuerContactInfo().setEmail(issuerEmail)); Issuer response = service.issuer().insert(issuer).execute(); System.out.println("Issuer insert response"); System.out.println(response.toPrettyString()); }
PHP
/** * Create a new Google Wallet issuer account. * * @param string $issuerName The Issuer's name. * @param string $issuerEmail The Issuer's email address. */ public function createIssuerAccount(string $issuerName, string $issuerEmail) { // New Issuer information $issuer = new Google_Service_Walletobjects_Issuer([ 'name' => $issuerName, 'contactInfo' => new Google_Service_Walletobjects_IssuerContactInfo([ 'email' => $issuerEmail, ]), ]); $response = $this->service->issuer->insert($issuer); print "Issuer insert response\n"; print_r($response); }
Python
def create_issuer_account(self, issuer_name: str, issuer_email: str): """Create a new Google Wallet Issuer account. Args: issuer_name (str): The Issuer's name. issuer_email (str): The Issuer's email address. """ # New Issuer information issuer = {'name': issuer_name, 'contactInfo': {'email': issuer_email}} # Make the POST request response = self.http_client.post(url=self.issuer_url, json=issuer) print('Issuer insert response') print(response.text)
C#
/// <summary> /// Create a new Google Wallet Issuer account. /// </summary> /// <param name="issuerName">The Issuer's name.</param> /// <param name="issuerEmail">The Issuer's email address.</param> public void CreateIssuerAccount(string issuerName, string issuerEmail) { // New issuer information Issuer issuer = new Issuer() { ContactInfo = new IssuerContactInfo() { Email = issuerEmail }, Name = issuerName, }; Stream responseStream = service.Issuer .Insert(issuer) .ExecuteAsStream(); StreamReader responseReader = new StreamReader(responseStream); JObject jsonResponse = JObject.Parse(responseReader.ReadToEnd()); Console.WriteLine("Issuer insert response"); Console.WriteLine(jsonResponse.ToString()); }
Node.js
/** * Create a new Google Wallet Issuer account. * * @param {string} issuerName The Issuer's name. * @param {string} issuerEmail The Issuer's email address. */ async createIssuerAccount(issuerName, issuerEmail) { // New Issuer information let issuer = { name: issuerName, contactInfo: { email: issuerEmail } }; let response = await this.httpClient.request({ url: this.issuerUrl, method: 'POST', data: issuer }); console.log('Issuer insert response'); console.log(response); }
शुरुआत में, सिर्फ़ उस मुख्य खाते (सेवा खाता या उपयोगकर्ता) जिसे जारी करने वाला खाता बनाया गया था खाते को ऐक्सेस मिलेगा. आपको जारी करने वाले की अनुमतियां अपडेट करनी होंगी खाते में ऐसे अतिरिक्त उपयोगकर्ता या सेवा खातों को शामिल करना होगा जिनके पास का इस्तेमाल करके, पास मैनेज किए जा सकते हैं. नीचे दिए गए कोड सैंपल में, जारी करने वाले की जानकारी को अपडेट करने की जानकारी दी गई है खाता अनुमतियां सेट करें.
Java
/** * Update permissions for an existing Google Wallet Issuer account. * * <p><strong>Warning:</strong> This operation overwrites all existing permissions! * * <p>Example permissions list argument below. Copy the add entry as needed for each email address * that will need access. Supported values for role are: 'READER', 'WRITER', and 'OWNER' * * <pre><code> * ArrayList<Permission> permissions = new ArrayList<Permission>(); * permissions.add(new Permission().setEmailAddress("emailAddress").setRole("OWNER")); * </code></pre> * * @param issuerId The Issuer ID being used for this request. * @param permissions The list of email addresses and roles to assign. * @throws IOException */ public void UpdateIssuerAccountPermissions(String issuerId, ArrayList<Permission> permissions) throws IOException { Permissions response = service .permissions() .update( Long.parseLong(issuerId), new Permissions().setIssuerId(Long.parseLong(issuerId)).setPermissions(permissions)) .execute(); System.out.println("Issuer permissions update response"); System.out.println(response.toPrettyString()); }
PHP
/** * Update permissions for an existing Google Wallet Issuer account. * * **Warning:** This operation overwrites all existing permissions! * * Example permissions list argument below. Copy the entry as * needed for each email address that will need access. Supported * values for role are: 'READER', 'WRITER', and 'OWNER' * * $permissions = array( * new Google_Service_Walletobjects_Permission([ * 'emailAddress' => 'email-address', * 'role' => 'OWNER', * ]), * ); * * @param string $issuerId The Issuer ID being used for this request. * @param array $permissions The list of email addresses and roles to assign. */ public function updateIssuerAccountPermissions(string $issuerId, array $permissions) { // Make the PUT request $response = $this->service->permissions->update( $issuerId, new Google_Service_Walletobjects_Permissions([ 'issuerId' => $issuerId, 'permissions' => $permissions, ]) ); print "Permissions update response\n"; print_r($response); }
Python
def update_issuer_account_permissions(self, issuer_id: str, permissions: List): """Update permissions for an existing Google Wallet Issuer account. **Warning:** This operation overwrites all existing permissions! Example permissions list argument below. Copy the dict entry as needed for each email address that will need access. Supported values for role are: 'READER', 'WRITER', and 'OWNER' permissions = [ { 'emailAddress': 'email-address', 'role': 'OWNER' } ] Args: issuer_id (str): The Issuer ID being used for this request. permissions (List): The list of email addresses and roles to assign. """ response = self.http_client.put(url=f'{self.permissions_url}/{issuer_id}', json={ 'issuerId': issuer_id, 'permissions': permissions }) print('Permissions update response') print(response.text)
C#
/// <summary> /// Update permissions for an existing Google Wallet Issuer account. /// <para /> /// <strong>Warning:</strong> This operation overwrites all existing permissions! /// <para /> /// Example permissions list argument below. Copy the add entry as needed for each email /// address that will need access.Supported values for role are: 'READER', 'WRITER', and 'OWNER' /// <para /> /// <![CDATA[List<Permission> permissions = new List<Permission>();]]> /// <para /> /// permissions.Add(new Permission { EmailAddress = "emailAddress", Role = "OWNER"}); /// </summary> /// <param name="issuerId">The issuer ID being used for this request.</param> /// <param name="permissions">The list of email addresses and roles to assign.</param> public void UpdateIssuerAccountPermissions(string issuerId, List<Permission> permissions) { Stream responseStream = service.Permissions .Update(new Permissions { IssuerId = long.Parse(issuerId), PermissionsValue = permissions }, long.Parse(issuerId)) .ExecuteAsStream(); StreamReader responseReader = new StreamReader(responseStream); JObject jsonResponse = JObject.Parse(responseReader.ReadToEnd()); Console.WriteLine("Issuer permissions update response"); Console.WriteLine(jsonResponse.ToString()); }
Node.js
/** * Update permissions for an existing Google Wallet Issuer account. * * **Warning:** This operation overwrites all existing permissions! * * Example permissions list argument below. Copy the dict entry as * needed for each email address that will need access. Supported * values for role are: 'READER', 'WRITER', and 'OWNER' * * let permissions = [ * { * 'emailAddress': 'email-address', * 'role': 'OWNER', * }, * ]; * * @param {string} issuerId The Issuer ID being used for this request. * @param {Array} permissions The list of email addresses and roles to assign. */ async updateIssuerPermissions(issuerId, permissions) { let response = await this.httpClient.request({ url: `${this.permissionsUrl}/${issuerId}`, method: 'PUT', data: { issuerId: issuerId, permissions: permissions } }); console.log('Permissions update response'); console.log(response); }
मौजूदा खाते का इस्तेमाल करना
इन शर्तों का इस्तेमाल, यह तय करने के लिए किया जाना चाहिए कि जारी करने वाले व्यक्ति का इस्तेमाल किया जा सकता है या नहीं ऐसा खाता जिसमें मौजूदा पास क्लास हों.
- अगर पास डेवलपमेंट के लिए जारी करने वाले खाते में तो आपको उनकी ओर से एक नया खाता सेट अप करना होगा व्यापारी/कंपनी/कारोबारी.
- अगर पास जारी करने वाले के खाते में सिर्फ़ क्लास शामिल हैं, तो तो इसका इस्तेमाल किया जा सकता है.
अगर खाता इन शर्तों को पूरा करता है, तो आपको संपर्क जानकारी अपडेट करनी होगी कारोबारी की जानकारी के साथ कारोबारी प्रोफ़ाइल में जाकर पक्का करें कि खाता नाम से व्यापारी की पहचान होती है. इस खाते के लिए, एपीआई ऐक्सेस सिर्फ़ आपके पास होना चाहिए. पास जारी करने वाले अन्य डेवलपर को अपने जारी करने वाले के खाते खुद बनाने चाहिए.
रिडेंप्शन जारी करने वाले व्यक्ति का खाता कॉन्फ़िगरेशन
Google Pay और वॉलेट कंसोल
रिडेंप्शन जारी करने वाले खाते में, आपको यह तरीका अपनाना होगा:
- Google Wallet API सेक्शन पर जाएं
- अन्य सुविधाएं चुनें
- पुष्टि करने वाली कुंजी जोड़ें चुनें
- सार्वजनिक पासकोड (
.pem
फ़ाइल) अपलोड करें और पासकोड का वर्शन बताएं - पुष्टि करने वाली कुंजी बनाएं चुनें
पुष्टि करने वाली कुंजी मिलने के बाद, आपको कलेक्टर आईडी दिया जाएगा अपलोड हो गई.
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo
4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==
-----END PUBLIC KEY-----
Google Wallet API का इस्तेमाल करना
सार्वजनिक पासकोड अपलोड करें
Google Wallet API का इस्तेमाल करके, सार्वजनिक पासकोड और पासकोड के वर्शन असाइन करने के लिए, आपको
जारी करने वाले के एंडपॉइंट को PATCH
का अनुरोध करना होगा.
PATCH https://walletobjects.googleapis.com/walletobjects/v1/issuer/{issuerId}
PATCH
के अनुरोध का मुख्य हिस्सा कुछ ऐसा दिखेगा:
{
"smartTapMerchantData": {
"authenticationKeys": [
{
"id": 1,
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
},
{
"id": 2,
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
}
]
}
}
नीचे दिया गया कोड सैंपल, जारी करने वाले के खाते को अपडेट करने की जानकारी देता है. सार्वजनिक पासकोड का डेमो:
Java
/** * Add a new public key to an Issuer account. * * @param issuerId The issuer ID being used for this request. * @throws IOException */ public void AddSmartTapKey(Long issuerId) throws IOException { // New smart tap key information Issuer patchBody = new Issuer() .setSmartTapMerchantData( new SmartTapMerchantData() .setAuthenticationKeys( Arrays.asList( new AuthenticationKey() .setId(1) .setPublicKeyPem( "-----BEGIN PUBLIC KEY-----\n" + "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo\n" + "4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==\n" + "-----END PUBLIC KEY-----")))); Issuer response = service.issuer().patch(issuerId, patchBody).execute(); System.out.println("Issuer patch response"); System.out.println(response.toPrettyString()); }
PHP
/** * Add a new public key to an Issuer account. * * @param string $issuerId The issuer ID being used for this request. */ public function addSmartTapKey(string $issuerId) { // New smart tap key information $patchBody = new Google_Service_Walletobjects_Issuer([ 'smartTapMerchantData' => new Google_Service_Walletobjects_SmartTapMerchantData([ 'authenticationKeys' => [ new Google_Service_Walletobjects_AuthenticationKey([ 'id' => 1, 'publicKeyPem' => "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo\n4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==\n-----END PUBLIC KEY-----" ]) ] ]) ]); $response = $this->service->issuer->patch($issuerId, $patchBody); print "Issuer patch response\n"; print_r($response); }
Python
def add_smart_tap_key(self, issuer_id: str) -> str: """Add a new public key to an Issuer account. Args: issuer_id (str): The issuer ID being used for this request. """ # New smart tap key information patch_body = { 'smartTapMerchantData': { 'authenticationKeys': [{ 'id': 1, 'publicKeyPem': '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo\n4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==\n-----END PUBLIC KEY-----' }] } } # Make the PATCH request response = self.http_client.patch(url=f'{self.issuer_url}/{issuer_id}', json=patch_body) print('Issuer patch response') print(response.text) return response.json()['smartTapMerchantData']['smartTapMerchantId']
C#
/// <summary> /// Add a new public key to an Issuer account. /// </summary> /// <param name="issuerId">The issuer ID being used for this request.</param> public void AddSmartTapKey(long issuerId) { // New smart tap key information Issuer patchBody = new Issuer() { SmartTapMerchantData = new SmartTapMerchantData { AuthenticationKeys = new List<AuthenticationKey> { new AuthenticationKey { Id = 1, PublicKeyPem = "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo\n4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==\n-----END PUBLIC KEY-----" } } } }; Stream responseStream = service.Issuer .Patch(patchBody, issuerId) .ExecuteAsStream(); StreamReader responseReader = new StreamReader(responseStream); JObject jsonResponse = JObject.Parse(responseReader.ReadToEnd()); Console.WriteLine("Issuer patch response"); Console.WriteLine(jsonResponse.ToString()); }
Node.js
/** * Add a new public key to an Issuer account. * * @param {string} issuerId The issuer ID being used for this request. */ async addSmartTapKey(issuerId) { // New smart tap key information let patchBody = { smartTapMerchantData: { authenticationKeys: [ { id: 1, publicKeyPem: '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEchyXj869zfmKhRi9xP7f2AK07kEo\n4lE7ZlWTN14jh4YBTny+hRGRXcUzevV9zSSPJlPHpqqu5pEwlv1xyFvE1w==\n-----END PUBLIC KEY-----' } ] } }; let response = await this.httpClient.request({ url: `${this.issuerUrl}/${issuerId}`, method: 'PATCH', data: patchBody }); console.log('Issuer patch response'); console.log(response); }
जवाब में आपका भेजा गया मुख्य हिस्सा और एक अतिरिक्त फ़ील्ड,
smartTapMerchantData.smartTapMerchantId
. यह
रिडेंप्शन जारी करने वाला खाता.
कलेक्टर आईडी पाना
कोई बटन और कुंजी का वर्शन जोड़ने के बाद, Google Wallet API का इस्तेमाल करके ये चीज़ें पाई जा सकती हैं
जारी करने वाले के एंडपॉइंट को GET
का अनुरोध करके, अपना कलेक्टर आईडी सबमिट करें.
GET https://walletobjects.googleapis.com/walletobjects/v1/issuer/{issuerId}
Java
/** * Get the Collector ID for an Issuer account. * * @param issuerId The issuer ID being used for this request. * @return The Collector ID * @throws IOException */ public Long GetCollectorId(Long issuerId) throws IOException { Issuer response = service.issuer().get(issuerId).execute(); System.out.println("Issuer patch response"); System.out.println(response.toPrettyString()); return response.getSmartTapMerchantData().getSmartTapMerchantId(); }
PHP
/** * Get the Collector ID for an Issuer account. * * @param string $issuerId The issuer ID being used for this request. * @return string The Collector ID. */ public function getCollectorId(string $issuerId) { $response = $this->service->issuer->get($issuerId); print "Issuer get response\n"; print_r($response); return $response['smartTapMerchantData']['smartTapMerchantId']; }
Python
def get_collector_id(self, issuer_id: str) -> str: """Get the Collector ID for an Issuer account. Args: issuer_id (str): The issuer ID being used for this request. """ # Make the GET request response = self.http_client.get(url=f'{self.issuer_url}/{issuer_id}') print('Issuer get response') print(response.text) return response.json()['smartTapMerchantData']['smartTapMerchantId']
C#
/// <summary> /// Get the Collector ID for an Issuer account. /// </summary> /// <param name="issuerId">The issuer ID being used for this request.</param> /// <returns>The Collector ID</returns> public string GetCollectorId(long issuerId) { Stream responseStream = service.Issuer .Get(issuerId) .ExecuteAsStream(); StreamReader responseReader = new StreamReader(responseStream); JObject jsonResponse = JObject.Parse(responseReader.ReadToEnd()); Console.WriteLine("Issuer get response"); Console.WriteLine(jsonResponse.ToString()); return jsonResponse["smartTapMerchantData"]["smartTapMerchantId"].Value<string>(); }
Node.js
/** * Get the Collector ID for an Issuer account. * * @param {string} issuerId The issuer ID being used for this request. * * @returns {string} The Collector ID */ async getCollectorId(issuerId) { let response = await this.httpClient.request({ url: `${this.issuerUrl}/${issuerId}`, method: 'GET' }); console.log('Issuer patch response'); console.log(response); return response.data.smartTapMerchantData.smartTapMerchantId; }
जवाब में smartTapMerchantData.smartTapMerchantId
फ़ील्ड शामिल होगा.
यह रिडेंप्शन जारी करने वाले खाते का कलेक्टर आईडी है.
जारी करने वाले के खाते का मैनेजमेंट
पास संगठन
पास क्लास और ऑब्जेक्ट को मैनेज करने के दो तरीके हैं एकाधिक व्यापारी:
- सभी व्यापारियों/कंपनियों/कारोबारियों के लिए, जारी करने वाला एक मुख्य खाता
- हर व्यापारी/कंपनी/कारोबारी के लिए, जारी करने वाला एक नया खाता
उदाहरण के लिए, Foo-Loyalty दो व्यापारियों/कंपनियों के लिए अलग-अलग लॉयल्टी प्रोग्राम मैनेज करता है: ILivCoffee और TeaLuv. उनकी पास क्लास को इनमें से किसी एक में मैनेज किया जा सकता है इन तरीकों से मदद पाएं:
तरीका | ब्यौरा |
---|---|
सिंगल जारी करने वाला खाता | जारी करने वाले एक ही व्यक्ति के तहत आने वाली सभी लॉयल्टी क्लास को शामिल करें खाता "Foo-Loyalty" है. हमारा सुझाव है कि आप इस विकल्प का इस्तेमाल करें अगर आपको अपने पास की जानकारी का ट्रैक रखना है, इन्हें क्लास लेवल पर रिडीम किया जा सकता है. यह भी यह एक अच्छा विकल्प है, अगर आप कभी भी कारोबारी या कंपनी को जारी करने वाले के खाते का एपीआई ऐक्सेस. |
जारी करने वाले अलग खाते | कार्ड जारी करने वाले दो अलग-अलग खाते बनाएं: "iLavCoffee फ़ू-लॉयल्टी के ज़रिए" और "Fo-Loyalty के ज़रिए TeaLuv" है. इस विकल्प का सुझाव तब दिया जाता है, जब आपको कि किसी जारी करने वाले के खाते के तहत आने वाली सभी क्लास व्यापारी/कंपनी के लेवल पर रिडीम किए जा सकते हों या आपकी इच्छा है कि आप व्यापारियों/कंपनियों/कारोबारियों के लिए, जारी करने वाला खाता. |
रिडेंप्शन जारी करने वाले का खाता
सही रिडेंप्शन तय करते समय, इन दो स्थितियों को ध्यान में रखना चाहिए जारी करने वाले का खाता, जिसका इस्तेमाल करना है.
पहली स्थिति: कारोबारी या कंपनी पहले से ही स्मार्ट टैप का इस्तेमाल कर रही है
अगर व्यापारी/कंपनी यह पुष्टि करती है कि वह Google Wallet से अपने टर्मिनल (व्यापारी/कंपनी/कारोबारी पहले से ही, रिडेंप्शन जारी करने वाले के तौर पर सेट अप किया गया हो), तो यह तरीका अपनाएं:
- व्यापारी/कंपनी/कारोबारी के रिडेंप्शन जारी करने वाले के आईडी का अनुरोध करें
redemptionIssuers
प्रॉपर्टी में, व्यापारी/कंपनी/कारोबारी का रिडेंप्शन जारी करने वाले का आईडी जोड़ें आपकी पास क्लास का
दूसरी स्थिति: व्यापारी/कंपनी/कारोबारी ने स्मार्ट टैप का इस्तेमाल हाल ही में शुरू किया है
इस मामले में, व्यापारी/कंपनी/कारोबारी के पास ऐसे टर्मिनल हैं जो स्मार्ट टैप की सुविधा के साथ काम करते हैं, लेकिन उनके पास ऐसा नहीं होता इस सुविधा का इस्तेमाल किया. कारोबारी, टर्मिनल की सेवा देने वाली कंपनी या पास डेवलपर को व्यापारी/कंपनी/कारोबारी के टर्मिनल पर स्मार्ट टैप की सुविधा चालू करने के लिए, एक बार सेटअप करना होगा.
ज़्यादा जानकारी के लिए, यह देखें कारोबारी या कंपनी का कॉन्फ़िगरेशन.