คำขอที่ส่งไปยัง Google Wallet API ต้องผ่านการตรวจสอบสิทธิ์เพื่อให้ Wallet API ระบุได้ว่าคำขอนั้นมาจากแอปพลิเคชันของคุณ
ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณได้สร้างและลงทะเบียนข้อมูลรับรองสำหรับ Google Wallet REST API และ Google Wallet Android SDK อย่างถูกต้อง
คำขอ Google Wallet REST API
คำขอที่ส่งไปยัง Google Wallet REST API ผ่านการตรวจสอบสิทธิ์โดยใช้คีย์บัญชีบริการ Google Cloud ของ Google Wallet REST เพื่อรับโทเค็นเพื่อการเข้าถึง
ไลบรารีของไคลเอ็นต์ 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 Offers in Google Wallet. */ public class DemoOffer { /** * 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 DemoOffer() 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\DateTime; use Google\Service\Walletobjects\TimeInterval; use Google\Service\Walletobjects\OfferObject; use Google\Service\Walletobjects\OfferClass; 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 Offers in Google Wallet. */ class DemoOffer { /** * 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 DemoOffer: """Demo class for creating and managing Offers 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 Offers in Google Wallet. /// </summary> class DemoOffer { /// <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 DemoOffer() { keyFilePath = Environment.GetEnvironmentVariable( "GOOGLE_APPLICATION_CREDENTIALS") ?? "/path/to/key.json"; Auth(); }
Node.js
หากต้องการเริ่มการผสานรวมในโหนด โปรดดู ตัวอย่างโค้ดทั้งหมดบน GitHub
const { google } = require('googleapis'); const jwt = require('jsonwebtoken'); const { v4: uuidv4 } = require('uuid'); /** * Demo class for creating and managing Offers in Google Wallet. */ class DemoOffer { 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" )
ถัดไป ให้ใช้ไลบรารีเฟรมเวิร์กรายการใดรายการหนึ่งเพื่อเรียกข้อมูลเข้าสู่ระบบที่จำเป็นในการเรียกใช้ 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
หากต้องการเริ่มการผสานรวมในโหนด โปรดดู ตัวอย่างโค้ดทั้งหมดบน 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 *demoOffer) 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)) }
คำขอ Google Wallet Android SDK
คำขอที่ใช้ Google Wallet Android SDK จะได้รับการตรวจสอบสิทธิ์โดยอัตโนมัติโดยใช้ใบรับรอง App Signing Android SDK จะสร้างลายนิ้วมือ SHA-1 ของใบรับรองที่ลงนามโดยอัตโนมัติ และรวมลายนิ้วมือดังกล่าวไว้กับคำขอที่ส่งไปยัง Google Wallet API
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและลงทะเบียนลายนิ้วมือ SHA-1 ของใบรับรอง App Signing ได้ที่การให้สิทธิ์แอปสำหรับ Google Wallet Android SDK