Geri çağırmaları ekleme ve silme

Bu kılavuzda, Google Cüzdan API'si ile geri çağırmaların nasıl kullanılacağı açıklanmaktadır. Bir kart oluşturulduğunda veya silindiğinde Google, HTTPS üzerinden bitiş noktası oluşturabilirsiniz. Bu geri çağırma, geçişe özeldir ve veriler içerir. (ör. externalPassId ve etkinlik türü) etkinlik hakkında. Bu, Gerçekleşen kullanıcı ekleme ve silme işlemlerinin sayısını takip etmek. Örneğin, Örneğin, geri çağırmalar etkinlikleri bir analiz aracına promosyon etkinlikleri sırasında müşteri etkileşimini takip etmek için kullanılan bir uygulamadır.

Ön koşullar

Başlamadan önce aşağıdaki ön koşulları gözden geçirin:

  • POST isteklerini işleyen bir HTTPS uç noktası oluşturun. Bu uç noktanın ihtiyacı herkesin erişimine açık olacak.
  • Geri çağırmayı programatik olarak güncelleyin yayıncının uç nokta URL'sini kullanın. Bkz. callbackOptions mülkündeki karşılığıdır.
  • Önerilen: İmzaları doğrulamak için Tink kitaplığını kullanın.

Geri çağırma uygulama

Kullanıcının kart belirttiğinde, Google, satıcılara bir aramada ekleme veya silmeyle ilgili ayrıntıları kartı veren kuruluş geri araması URL'yi tıklayın. Satıcılar, ilk olarak ortak anahtarların doğruluğunu onaylamak için mesajı alırsınız. Geri çağırmalar mesajı doğruladıktan sonra, geri çağırma işlevleri kullanılabilir. için kullanılır.

İmzayı doğrulayın

İleti imzasını doğrulamak için Tink kitaplığını kullanmanızı öneririz dikkat etmeniz gerekir. İlgili içeriği oluşturmak için kullanılan Tink kitaplığı PaymentMethodTokenRecipient adlı bir yardımcı program sunar. imzayı otomatik olarak doğrular ve gerçek iletiyi başarılı olanlar.

Aşağıdaki örnekte, web sitenizi ziyaret etmek için PaymentMethodTokenRecipient:

import java.io.IOException;
import javax.servlet.http.*;
import com.google.common.io.CharStreams;
import com.google.crypto.tink.apps.paymentmethodtoken.*;

// Replace ISSUER_ID with your issuer id
private static final String RECIPIENT_ID = "ISSUER_ID";

private static final String PUBLIC_KEY_URL = "https://pay.google.com/gp/m/issuer/keys";
private static final String SENDER_ID = "GooglePayPasses";
private static final String PROTOCOL = "ECv2SigningOnly";

private static final GooglePaymentsPublicKeysManager keysManager = new GooglePaymentsPublicKeysManager.Builder()
        .setKeysUrl(PUBLIC_KEY_URL)
        .build();

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
  try {
    // Extract signed message with signature from POST request body.
    String signedMessage = CharStreams.toString(request.getReader());
    PaymentMethodTokenRecipient recipient =
            new PaymentMethodTokenRecipient.Builder()
                    .protocolVersion(PROTOCOL)
                    .fetchSenderVerifyingKeysWith(keysManager)
                    .senderId(SENDER_ID)
                    .recipientId(RECIPIENT_ID)
                    .build();

    String serializedJsonMessage = recipient.unseal(signedMessage);

    // Use serializedJsonMessage to extract the details
  } catch (Exception e) {
    // Handle the error
  }
}

Beklenen mesaj biçimi

Mesaj biçimi, şu dizeye göre serileştirilmiş JSON'dur: özellikler:

Tanımlayıcı Açıklama
externalPassId

Tam nitelikli harici kart kimliği. Aşağıdaki biçimi kullanır:

<issuer_id.external_pass_id>
expTimeMillis EPOCH'tan bu yana geçen milisaniye cinsinden geçerlilik süresi. Süre sona erdiğinde, bu mesajın geçersiz kabul edilmesi gerekir.
eventType Şunun için del veya save olabilir: DELETE ve SAVE.
nonce Yinelenen yayınları takip etmek için tek seferlik rastgele sayı.

Google sunucusundan gelen isteği işleme

Aşağıda, isteğinize konu olan isteğin başlığındaki geri çağırma uç noktanıza gönderilir:

  • Kullanıcı Aracısı: Googlebot
  • İçerik Türü: application/json

Sunucunuzu isteği reddetmeyecek şekilde yapılandırın. Bunun için: robots.txt içinde şunları ayarla:

User-agent: Googlebot
Disallow:

Yeniden deneme sayısı

Geri arama, elimizden gelenin en iyisini yapar. Google, yeni bir deneme başlatma belgesi oluşturmak için yanıt vermediği veya bir geri çağırma uç noktasının söz konusu olduğu durumlarda ara sıra kesintiler yaşanır ve girişimler olumlu yönde geri alınır.

Yinelenen dağıtımlar

Bazı durumlarda yinelenen yayınlar olabilir. Optimum kampanya performansı için nonce.