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
.