Google Pay API, Temmuz 2018'de
PaymentDataRequest ve
IsReadyToPayRequest nesneleri için yeni nesne yapıları kullanıma sundu. Bu kılavuzda, Google Pay API sürüm 1 için biçimlendirilmiş nesnelerin sürüm 2 için biçimlendirilmiş nesnelere nasıl güncelleneceği açıklanmaktadır.
Ödeme yöntemleri
Google Pay API'nin 2. sürümünde her istek nesnesiyle bir API sürümü belirtilir.
Google Pay API'nin 1. sürümü, tek ödeme şekli olarak kartları destekliyordu. CARD Ödeme yöntemi, Google Pay API'nin 2. sürümündeki olası ödeme yöntemi seçeneklerinden biridir. Daha önce allowedPaymentMethods değeri olarak CARD değerini belirten siteler artık allowedAuthMethods değeri olarak PAN_ONLY değerini ayarlamalıdır. Daha önce allowedPaymentMethods değeri olarak TOKENIZED_CARD değerini belirten siteler artık allowedAuthMethods değeri olarak CRYPTOGRAM_3DS değerini ayarlamalıdır.
İzin verilen kart ağları, bu ağlardaki kartlar için desteklenen kimlik doğrulama yöntemleriyle birlikte belirtilir.
apiVersion 1
{ allowedPaymentMethods: [ 'CARD', 'TOKENIZED_CARD' ], cardRequirements: { allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [{ type: 'CARD', parameters: { allowedAuthMethods: [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ], allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }] }
İzin verilen kart ağları ve bunların kimlik doğrulama yöntemleri, CARD
ödeme yöntemi için
IsReadyToPayRequest içinde yer alır.
Kartla ödeme verilerinin jetonlaştırılması
Google Pay API, belirttiğiniz ağ geçidi tarafından referans verilen veya sunucularınızda şifresi çözülen şifrelenmiş kart verilerini döndürür. Google Pay API'nin 2. sürümünde ödeme yöntemi jetonlaştırma işlemi CARD ödeme yönteminin içine taşınıyor.
apiVersion 1
{ paymentMethodTokenizationParameters: { tokenizationType: 'PAYMENT_GATEWAY', parameters: { 'gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', tokenizationSpecification: { type: 'PAYMENT_GATEWAY', parameters: { 'gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }] }
Google satıcı kimliği
Google satıcı kimliği, Google Pay API'nin 1. sürümünde üst düzey bir özellikti. Artık Google satıcı kimliği, isteğe bağlı satıcı adıyla birlikte bir MerchantInfo nesnesinin içine yerleştiriliyor.
apiVersion 1
{ merchantId: '12345678901234567890' }
apiVersion 2
{ merchantInfo: { merchantId: '12345678901234567890' } }
Fatura adresi
CARD ödeme yöntemiyle isteğe bağlı bir fatura adresi ve fatura telefon numarası ilişkilendirilir.
Bir site fatura adresi isterse beklenen yanıtla ilgili tüm yapılandırma BillingAddressParameters nesnesinin içine yerleştirilir.
apiVersion 1
{ cardRequirements: { billingAddressRequired: true, billingAddressFormat: 'FULL' }, phoneNumberRequired: true }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', parameters: { billingAddressRequired: true, billingAddressParameters: { format: 'FULL', phoneNumberRequired: true } } }] }
Gönderim adresi
İsteğe bağlı bir kargo adresi şartı, PaymentDataRequest nesnesinin en üst düzeyinde kalır.
shippingAddressRequirements özelliği shippingAddressParameters olarak yeniden adlandırıldı.
Daha önceki Google Pay API yanıtlarında, telefon numarası istendiğinde kargo adresinin bir parçası olarak telefon numarası döndürülmüş olabilir. Kargo için telefon numarası, Google Pay API'nin hiçbir sürümünde artık desteklenmiyor. Kargo telefon numarası bekleyen tüm yanıt işleyiciler güncellenmelidir.
apiVersion 1
{ shippingAddressRequired: true, shippingAddressRequirements: { allowedCountryCodes: [ 'US', 'CA' ] } }
apiVersion 2
{ shippingAddressRequired: true, shippingAddressParameters: { allowedCountryCodes: [ 'US', 'CA' ] } }
PaymentData yanıtı
PaymentDataRequest içinde apiVersion özelliği için 2 değerini ayarlayan sitelerdeki PaymentData nesne yanıtı, olası birden fazla ödeme verisi yanıtından biri olarak referans kartlarını içerecek şekilde değiştirildi.
PaymentDataRequest nesnesine dahil edilen apiVersion ve apiVersionMinor özellikleri, beklenen biçimi belirtmek için PaymentData yanıtında gösterilir.
apiVersion 1
{ // no version specified }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0 }
Seçilen bir ödeme yöntemi ve jetonlaştırma işlemiyle ilgili bilgiler paymentMethodData özelliği içine yerleştirilir.
Kartla ödeme yönteminin cardInfo nesnesinden iki özellik kaldırıldı:
cardClass ve cardImageUri.
apiVersion 1
{ cardInfo: { cardDescription: 'Visa •••• 1234', cardNetwork: 'VISA', cardDetails: 1234 }, paymentMethodToken: { tokenizationType: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } }
apiVersion 2
{ paymentMethodData: { type: 'CARD', description: 'Visa •••• 1234', info: { cardNetwork: 'VISA', cardDetails: '1234' }, tokenizationData: { type: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } } }
Şifrelenmiş ileti yanıtı
DIRECT ödeme yöntemi jetonlaştırma türünü belirten ve TOKENIZED_CARD API sürüm 1 ödeme yöntemini kabul eden siteler, şifresi çözülmüş encryptedMessage özelliğini nasıl işlediklerini güncellemelidir. Sitenin, 3-D Secure kriptogramı ile kimliği doğrulanmış Android cihaz jetonlarını ve isteğe bağlı elektronik ticaret göstergesini (ECI) ağ geçidinize veya işlemcinize yönlendirmeye devam edebilmesi için bu işlemi yapması gerekir. Kartlar, paymentMethod bir CARD olup seçilen kartın kimlik doğrulama yöntemiyle ilgili ek bilgiler paymentMethodDetails.authMethod bölümünde yer alır.
apiVersion 1
{ "paymentMethod": "TOKENIZED_CARD", "paymentMethodDetails": { "authMethod": "3DS", "dpan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "3dsCryptogram": "AAAAAA...", "3dsEciIndicator": "eci indicator" } }
apiVersion 2
{ "paymentMethod": "CARD", "paymentMethodDetails": { "authMethod": "CRYPTOGRAM_3DS", "pan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "cryptogram": "AAAAAA...", "eciIndicator": "eci indicator" } }