Bu kılavuzda, Google Cüzdan API'si ile geri çağırmaların nasıl kullanılacağı açıklanmaktadır. Bir değerli öğe oluşturulduğunda veya silindiğinde Google, seçtiğiniz bir HTTPS uç noktasına geri çağırma gerçekleştirebilir. Bu geri çağırma sınıfa özgüdür ve etkinlikle ilgili sınıf, nesne ve etkinlik türü gibi verileri içerir. Bu, gerçekleşen kullanıcı ekleme ve silme işlemlerinin sayısını senkronize etmek için kullanılabilir. Örneğin, geri çağırma işlevleri, promosyon etkinlikleri sırasında müşteri etkileşimini izlemek için etkinlikleri bir analiz uygulamasına gönderecek şekilde yapılandırılabilir.
Ön koşullar
Başlamadan önce aşağıdaki ön koşulları inceleyin:
- POST isteklerini işleyen bir HTTPS uç noktası oluşturun. Bu uç noktanın herkese açık olması gerekir.
-
Her sınıf için geri çağırma uç noktasını programlı olarak güncelleyin. REST API'de
callbackOptions
özelliğini sınıfa göre inceleyin. - Önerilir: İmzaları doğrulamak için Tink kitaplığını kullanın.
Geri çağırmaları uygulama
Kullanıcı tarafından bir nesne üzerinde gerçekleştirilen her ekleme veya silme işlemi için Google, satıcıları her sınıfa ait URL'deki ekleme ya da silme işlemiyle ilgili ayrıntılarla birlikte geri çağırır. Satıcılar, iletinin özgünlüğünü doğrulamak için önce Genel Anahtarları kullanmalıdır. Geri çağırmalar mesajı doğruladıktan sonra, geri çağırmalar aşağı akış işlemleri için kullanılabilir.
İmzayı doğrulayın
HTTPS uç noktanızı uygularken mesaj imzasını doğrulamak için Tink kitaplığını kullanmanızı öneririz. Tink kitaplığı, imzayı otomatik olarak doğrulayan ve başarılı doğrulamanın ardından iletiyi döndüren PaymentMethodTokenRecipient
adlı yardımcı programı sunar.
Aşağıdaki örnekte, PaymentMethodTokenRecipient
uygulamak için Tink kitaplığının nasıl kullanılacağı gösterilmektedir:
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 } }
Expected message format
The message format is JSON that's serialized into a string with the following properties:
Identifier | Description |
---|---|
classId |
Fully qualified class ID. Uses the following format: <issuer_id.class_id> objectId
Tam nitelikli nesne kimliği. Aşağıdaki biçimi kullanır: <issuer_id.object_id> expTimeMillis
EPOCH tarihinden itibaren milisaniye cinsinden geçerlilik süresi. Geçerlilik süresi sona erdikten sonra mesajın geçersiz olarak kabul edilmesi gerekir.
eventType
DELETE ve SAVE için del veya save olabilir.
nonce
Yinelenen teslimatları takip etme seçeneği yok.
İsteği bir Google sunucusundan işlemeAşağıda, geri çağırma uç noktanıza gönderilen isteğin başlığında yer alan önemli alanların bir listesi bulunmaktadır:
Sunucunuzu isteği reddetmeyecek şekilde yapılandırın. Bunun için User-agent: Googlebot Disallow: Yeniden deneme sayısıGeri çağırma işlevleri için en iyi çaba esas alınır. Google, geçici hataları hesaba katmak için iki kez deneme yapar. İki kez deneme yaptıktan sonra Google mesajı siler ve tekrar gönderme girişiminde bulunmaz. Yinelenen yayınlamalar
Bazı durumlarda yinelenen teslimatlar olabilir. Bunları tekilleştirmek için Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır. Son güncelleme tarihi: 2024-03-26 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"İhtiyacım olan bilgiler yok"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Çok karmaşık / çok fazla adım var"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Güncel değil"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Çeviri sorunu"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Örnek veya kod sorunu"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Diğer"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Anlaması kolay"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Sorunumu çözdü"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Diğer"
}]
|