Google Pay API memperkenalkan struktur objek baru untuk
PaymentDataRequest dan
IsReadyToPayRequest pada Juli 2018. Panduan ini menjelaskan cara memperbarui
objek yang diformat untuk Google Pay API versi 1 menjadi objek yang diformat untuk versi 2.
Metode pembayaran
Versi API ditentukan dengan setiap objek permintaan di Google Pay API versi 2.
Google Pay API versi 1 mendukung kartu sebagai satu-satunya metode pembayaran.
CARD metode pembayaran
adalah salah satu dari beberapa opsi metode pembayaran yang mungkin dalam Google Pay API versi 2. Situs yang
sebelumnya menentukan nilai allowedPaymentMethods sebesar CARD kini harus menetapkan
nilai allowedAuthMethods sebesar PAN_ONLY. Situs yang sebelumnya menentukan
nilai allowedPaymentMethods sebesar TOKENIZED_CARD kini harus menetapkan
nilai allowedAuthMethods sebesar CRYPTOGRAM_3DS.
Jaringan kartu yang diizinkan ditentukan bersama dengan metode autentikasi yang didukung untuk kartu di jaringan tersebut.
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' ] } }] }
Jaringan kartu yang diizinkan dan metode autentikasinya disertakan dalam
IsReadyToPayRequest untuk CARD
metode pembayaran.
Tokenisasi data pembayaran kartu
Google Pay API menampilkan data kartu terenkripsi yang dirujuk oleh gateway yang Anda tentukan atau didekripsi di server Anda. Google Pay API versi 2 memindahkan
tokenisasi metode pembayaran
di dalam metode pembayaran CARD.
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' } } }] }
ID merchant Google
ID penjual Google adalah properti tingkat teratas di Google Pay API versi 1. Sekarang, ID penjual Google ditempatkan di dalam objek MerchantInfo dengan nama penjual opsional.
apiVersion 1
{ merchantId: '12345678901234567890' }
apiVersion 2
{ merchantInfo: { merchantId: '12345678901234567890' } }
Alamat penagihan
Alamat penagihan dan nomor telepon penagihan opsional dikaitkan dengan metode pembayaran CARD.
Jika situs meminta alamat penagihan, konfigurasi apa pun yang terkait dengan respons yang diharapkan ditempatkan di dalam
objek BillingAddressParameters.
apiVersion 1
{ cardRequirements: { billingAddressRequired: true, billingAddressFormat: 'FULL' }, phoneNumberRequired: true }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', parameters: { billingAddressRequired: true, billingAddressParameters: { format: 'FULL', phoneNumberRequired: true } } }] }
Alamat pengiriman
Persyaratan alamat pengiriman opsional tetap berada di tingkat teratas objek
PaymentDataRequest.
Properti shippingAddressRequirements telah diganti namanya menjadi
shippingAddressParameters.
Respons Google Pay API sebelumnya mungkin menampilkan nomor telepon sebagai bagian dari alamat pengiriman saat nomor telepon diminta. Nomor telepon pengiriman tidak lagi didukung oleh Google Pay API di versi apa pun. Semua handler respons yang mengharapkan nomor telepon pengiriman harus diperbarui.
apiVersion 1
{ shippingAddressRequired: true, shippingAddressRequirements: { allowedCountryCodes: [ 'US', 'CA' ] } }
apiVersion 2
{ shippingAddressRequired: true, shippingAddressParameters: { allowedCountryCodes: [ 'US', 'CA' ] } }
Respons PaymentData
Respons objek PaymentData
untuk situs yang menetapkan nilai properti apiVersion 2 di
PaymentDataRequest
telah berubah menjadi kartu referensi sebagai salah satu dari beberapa kemungkinan respons data pembayaran.
Properti apiVersion dan apiVersionMinor yang disertakan dalam
objek PaymentDataRequest
muncul dalam
respons PaymentData untuk menunjukkan
format yang diharapkan.
apiVersion 1
{ // no version specified }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0 }
Informasi tentang metode pembayaran yang dipilih dan tokenisasinya ditempatkan di dalam
properti paymentMethodData.
Dua properti telah dihapus dari objek cardInfo metode pembayaran kartu:
cardClass dan 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' } } }
Respons pesan terenkripsi
Situs yang menentukan jenis tokenisasi metode pembayaran DIRECT dan menerima metode pembayaran API versi 1 TOKENIZED_CARD harus memperbarui cara mereka menangani properti encryptedMessage yang didekripsi. Situs harus melakukannya untuk terus meneruskan
token perangkat Android yang diautentikasi dengan kriptogram 3-D Secure dan indikator e-commerce (ECI) opsional ke gateway atau pemroses Anda. Kartu adalah paymentMethod dari
CARD, dengan informasi tambahan tentang metode autentikasi kartu yang dipilih di
paymentMethodDetails.authMethod.
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" } }