בקשות ל-Google Wallet API חייבות להיות מאומתות כדי שממשק ה-API של Wallet יוכל לזהות שהבקשה מתבצעת על ידי האפליקציה שלך.
לפני שתתחיל, ודא שיצרת ורשמת את פרטי הכניסה שלך עבור API ל-REST של Google Wallet ו-SDK ל-Android של Google Wallet.
בקשות של API ל-REST ב-Google Wallet
בקשות הגישה ל-API ל-REST של Google Wallet מאומתות באמצעות מפתח חשבון שירות של Google Cloud ל-API ל-REST של Google Wallet כדי לקבל אסימון גישה.
ספריות הלקוח של Google API מטפלות באימות ובשליחת בקשות API. ודאו שאתם מתקינים את הספרייה לשפת התכנות המועדפת עליכם, לפי הדוגמאות הבאות.
קודם כול, מבצעים את ייבוא הספרייה הנחוצים ומגדירים כמה משתנים בשביל ה-JSON של חשבון השירות, ואת המזהים של המנפיק, המחלקה, המשתמש הייחודי והאובייקט שיישמרו.
Java
כדי להתחיל בשילוב ב-Java, קראו את דוגמאות קוד ב-GitHub.
import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.google.api.client.googleapis.batch.BatchRequest; import com.google.api.client.googleapis.batch.json.JsonBatchCallback; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.*; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.walletobjects.*; import com.google.api.services.walletobjects.model.*; import com.google.auth.http.HttpCredentialsAdapter; import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; import java.io.*; import java.security.interfaces.RSAPrivateKey; import java.util.*; /** Demo class for creating and managing Loyalty cards in Google Wallet. */ public class DemoLoyalty { /** * Path to service account key file from Google Cloud Console. Environment variable: * GOOGLE_APPLICATION_CREDENTIALS. */ public static String keyFilePath; /** Service account credentials for Google Wallet APIs. */ public static GoogleCredentials credentials; /** Google Wallet service client. */ public static Walletobjects service; public DemoLoyalty() throws Exception { keyFilePath = System.getenv().getOrDefault("GOOGLE_APPLICATION_CREDENTIALS", "/path/to/key.json"); auth(); }
PHP
כדי להתחיל את השילוב עם PHP, קראו את דוגמאות קוד ב-GitHub.
use Firebase\JWT\JWT; use Google\Auth\Credentials\ServiceAccountCredentials; use Google\Client as GoogleClient; use Google\Service\Walletobjects; use Google\Service\Walletobjects\LoyaltyPointsBalance; use Google\Service\Walletobjects\LoyaltyPoints; use Google\Service\Walletobjects\LoyaltyObject; use Google\Service\Walletobjects\LoyaltyClass; use Google\Service\Walletobjects\LatLongPoint; use Google\Service\Walletobjects\Barcode; use Google\Service\Walletobjects\ImageModuleData; use Google\Service\Walletobjects\LinksModuleData; use Google\Service\Walletobjects\TextModuleData; use Google\Service\Walletobjects\TranslatedString; use Google\Service\Walletobjects\LocalizedString; use Google\Service\Walletobjects\ImageUri; use Google\Service\Walletobjects\Image; use Google\Service\Walletobjects\Message; use Google\Service\Walletobjects\AddMessageRequest; use Google\Service\Walletobjects\Uri; /** Demo class for creating and managing Loyalty cards in Google Wallet. */ class DemoLoyalty { /** * The Google API Client * https://github.com/google/google-api-php-client */ public GoogleClient $client; /** * Path to service account key file from Google Cloud Console. Environment * variable: GOOGLE_APPLICATION_CREDENTIALS. */ public string $keyFilePath; /** * Service account credentials for Google Wallet APIs. */ public ServiceAccountCredentials $credentials; /** * Google Wallet service client. */ public Walletobjects $service; public function __construct() { $this->keyFilePath = getenv('GOOGLE_APPLICATION_CREDENTIALS') ?: '/path/to/key.json'; $this->auth(); }
Python
כדי להתחיל את השילוב ב-Python, קראו את דוגמאות קוד ב-GitHub.
import json import os import uuid from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google.oauth2.service_account import Credentials from google.auth import jwt, crypt class DemoLoyalty: """Demo class for creating and managing Loyalty cards in Google Wallet. Attributes: key_file_path: Path to service account key file from Google Cloud Console. Environment variable: GOOGLE_APPLICATION_CREDENTIALS. base_url: Base URL for Google Wallet API requests. """ def __init__(self): self.key_file_path = os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', '/path/to/key.json') # Set up authenticated client self.auth()
C#
כדי להתחיל את השילוב ב-C#, עיינו דוגמאות קוד ב-GitHub.
using System.IdentityModel.Tokens.Jwt; using System.Net.Http.Headers; using System.Text.RegularExpressions; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Walletobjects.v1; using Google.Apis.Walletobjects.v1.Data; using Microsoft.IdentityModel.Tokens; using Newtonsoft.Json; using Newtonsoft.Json.Linq; /// <summary> /// Demo class for creating and managing Loyalty cards in Google Wallet. /// </summary> class DemoLoyalty { /// <summary> /// Path to service account key file from Google Cloud Console. Environment /// variable: GOOGLE_APPLICATION_CREDENTIALS. /// </summary> public static string keyFilePath; /// <summary> /// Service account credentials for Google Wallet APIs /// </summary> public static ServiceAccountCredential credentials; /// <summary> /// Google Wallet service client /// </summary> public static WalletobjectsService service; public DemoLoyalty() { keyFilePath = Environment.GetEnvironmentVariable( "GOOGLE_APPLICATION_CREDENTIALS") ?? "/path/to/key.json"; Auth(); }
Node.js
כדי להתחיל את השילוב ב-Node, צריך לעיין ב דוגמאות קוד ב-GitHub.
const { google } = require('googleapis'); const jwt = require('jsonwebtoken'); const { v4: uuidv4 } = require('uuid'); /** * Demo class for creating and managing Loyalty cards in Google Wallet. */ class DemoLoyalty { constructor() { /** * Path to service account key file from Google Cloud Console. Environment * variable: GOOGLE_APPLICATION_CREDENTIALS. */ this.keyFilePath = process.env.GOOGLE_APPLICATION_CREDENTIALS || '/path/to/key.json'; this.auth(); }
Go
כדי להתחיל את השילוב עם Go, אפשר לעיין בדוגמאות הקוד המלאות שלנו ב-GitHub דוגמאות קוד ב-GitHub.
package main import ( "bytes" "context" "encoding/json" "fmt" "github.com/golang-jwt/jwt" "github.com/google/uuid" "golang.org/x/oauth2" "golang.org/x/oauth2/google" oauthJwt "golang.org/x/oauth2/jwt" "google.golang.org/api/option" "google.golang.org/api/walletobjects/v1" "io" "log" "os" "strings" )
לאחר מכן, משתמשים באחת מספריות ה-framework כדי לאחזר את פרטי הכניסה הנחוצים כדי לקרוא ל-Google Wallet API.
Java
כדי להתחיל בשילוב ב-Java, קראו את דוגמאות קוד ב-GitHub.
/** * Create authenticated HTTP client using a service account file. * */ public void auth() throws Exception { credentials = GoogleCredentials.fromStream(new FileInputStream(keyFilePath)) .createScoped(List.of(WalletobjectsScopes.WALLET_OBJECT_ISSUER)); credentials.refresh(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); // Initialize Google Wallet API service service = new Walletobjects.Builder( httpTransport, GsonFactory.getDefaultInstance(), new HttpCredentialsAdapter(credentials)) .setApplicationName("APPLICATION_NAME") .build(); }
PHP
כדי להתחיל את השילוב עם PHP, קראו את דוגמאות קוד ב-GitHub.
/** * Create authenticated HTTP client using a service account file. */ public function auth() { $this->credentials = new ServiceAccountCredentials( Walletobjects::WALLET_OBJECT_ISSUER, $this->keyFilePath ); // Initialize Google Wallet API service $this->client = new GoogleClient(); $this->client->setApplicationName('APPLICATION_NAME'); $this->client->setScopes(Walletobjects::WALLET_OBJECT_ISSUER); $this->client->setAuthConfig($this->keyFilePath); $this->service = new Walletobjects($this->client); }
Python
כדי להתחיל את השילוב ב-Python, קראו את דוגמאות קוד ב-GitHub.
def auth(self): """Create authenticated HTTP client using a service account file.""" self.credentials = Credentials.from_service_account_file( self.key_file_path, scopes=['https://www.googleapis.com/auth/wallet_object.issuer']) self.client = build('walletobjects', 'v1', credentials=self.credentials)
C#
כדי להתחיל את השילוב ב-C#, עיינו דוגמאות קוד ב-GitHub.
/// <summary> /// Create authenticated service client using a service account file. /// </summary> public void Auth() { credentials = (ServiceAccountCredential)GoogleCredential .FromFile(keyFilePath) .CreateScoped(new List<string> { WalletobjectsService.ScopeConstants.WalletObjectIssuer }) .UnderlyingCredential; service = new WalletobjectsService( new BaseClientService.Initializer() { HttpClientInitializer = credentials }); }
Node.js
כדי להתחיל את השילוב ב-Node, צריך לעיין ב דוגמאות קוד ב-GitHub.
/** * Create authenticated HTTP client using a service account file. */ auth() { const auth = new google.auth.GoogleAuth({ keyFile: this.keyFilePath, scopes: ['https://www.googleapis.com/auth/wallet_object.issuer'], }); this.credentials = require(this.keyFilePath); this.client = google.walletobjects({ version: 'v1', auth: auth, }); }
Go
כדי להתחיל את השילוב עם Go, אפשר לעיין בדוגמאות הקוד המלאות שלנו ב-GitHub דוגמאות קוד ב-GitHub.
// Create authenticated HTTP client using a service account file. func (d *demoLoyalty) auth() { credentialsFile := os.Getenv("GOOGLE_APPLICATION_CREDENTIALS") b, _ := os.ReadFile(credentialsFile) credentials, err := google.JWTConfigFromJSON(b, walletobjects.WalletObjectIssuerScope) if err != nil { fmt.Println(err) log.Fatalf("Unable to load credentials: %v", err) } d.credentials = credentials d.service, _ = walletobjects.NewService(context.Background(), option.WithCredentialsFile(credentialsFile)) }
בקשות של Android SDK עבור Google Wallet
בקשות שמשתמשות ב-Android SDK של Google Wallet מאומתות באופן אוטומטי באמצעות האישור שלך לחתימת אפליקציה. ערכת ה-SDK ל-Android תיצור באופן אוטומטי את טביעת האצבע SHA-1 של אישור החתימה ותכלול אותה בבקשות ל-Google Wallet API.
למידע נוסף על יצירה ורישום של טביעת אצבע מסוג SHA-1 עבור אישור חתימת האפליקציה, ראה מתן הרשאה לאפליקציה שלך עבור Android SDK של Google Wallet.