Method: card.verifycard

Memverifikasi kartu pengguna untuk melihat apakah kartu tersebut valid.

Metode ini dipanggil oleh Google untuk memverifikasi detail kartu pengguna dan melihat apakah kartu tersebut dapat digunakan untuk pembayaran. Panggilan ini tidak memindahkan uang dan tidak boleh ada perubahan permanen pada akun pengguna.

Contoh permintaan terlihat seperti:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
    "requestTimestamp": "1481855969503"
  },
  "standardCard": {
    "accountNumber": "4123456789101112",
    "expiryDate": "01/2020",
    "cvn": "123"
  },
  "avsData": {
    "streetAddress": "123 Main St APT #200",
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "countryCode": "US"
  }
}

Contoh respons akan terlihat seperti ini:


{
  "responseHeader": {
    "responseTimestamp": "1481855970403",
  },
  "cardNetworkResult": {
    "network": "VISA",
    "iso8583Result": "00",
    "rawNetworkResult": "00"
  },
  "avsResult": {
    "rawAvsResult": "B",
    "streetAddress": "MATCH",
    "localityName": "MATCH",
    "administrativeAreaName": "MATCH",
    "postalCodeNumber": "NOT_SENT",
    "countryCode": "SKIPPED"
  },
  "cvnResult": "MATCH"
}

Permintaan HTTP

POST https://card-verification-service.google.com/v1/card/verifycard

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestHeader": {
    object(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
Kolom
requestHeader

object(RequestHeader)

WAJIB: Header umum untuk semua permintaan.

standardCard

object(StandardCard)

WAJIB: Data tentang kartu pembayaran pengguna.

avsData

object(AvsData)

OPSIONAL: Alamat pengguna yang akan diverifikasi oleh AVS.

Isi respons

Jika berhasil, isi respons memuat data dengan struktur berikut:

Objek respons untuk metode card.verifycard yang dihosting Integrator Pembayaran.

Representasi JSON
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
Kolom
responseHeader

object(ResponseHeader)

WAJIB: Header umum untuk semua respons.

cardNetworkResult

object(CardNetworkResult)

WAJIB: Hasil dari pemberian otorisasi pada jaringan kartu.

avsResult

object(AvsResult)

OPSIONAL: Hasil dari verifikasi kolom alamat yang dikirim dalam permintaan.

Kolom ini wajib ada jika addressVerificationSystemData ditetapkan dalam permintaan.

cvnResult

enum(CvnResult)

WAJIB: Hasil verifikasi CVN yang dikirim dalam permintaan. Jika CVN tidak ditetapkan pada permintaan, nilai ini harus NOT_SENT.

RequestHeader

Objek header yang ditentukan pada semua permintaan yang dikirim ke server.

Representasi JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object(Version)
  }
}
Kolom
requestId

string

WAJIB: ID unik permintaan ini.

String ini memiliki panjang maksimal 100 karakter, dan hanya berisi karakter "a-z", "A-Z", "0-9", ":", "-", dan "_".

requestTimestamp

string (int64 format)

WAJIB: Stempel waktu permintaan ini diwakili sebagai milidetik sejak epoch. Penerima harus memverifikasi bahwa stempel waktu ini adalah ± 60 detik dari 'sekarang'. Stempel waktu permintaan ini tidak idempoten saat percobaan ulang.

userLocale
(deprecated)

string

OPSIONAL: Kode bahasa dua atau tiga huruf ISO 639-2 Alpha 3 yang secara opsional diikuti dengan tanda hubung dan kode negara ISO 3166-1 Alpha-2, misalnya 'pt', 'pt-BR', 'fil', atau 'fil-PH'. Gunakan ini untuk membantu mendorong kolom user_message dalam respons.

protocolVersion

object(Version)

WAJIB: Versi permintaan ini.

Versi

Objek versi yang merupakan bentuk terstruktur dari struktur versi a.b.c klasik. Versi utama dari nomor yang sama dijamin kompatibel. Perlu diketahui bahwa revisi kecil dan revisi dapat sering berubah dan tanpa pemberitahuan. Integrator harus mendukung semua permintaan untuk versi utama yang sama.

Representasi JSON
{
  "major": number,
  "minor": number,
  "revision": number
}
Kolom
major

number

WAJIB: Versi utama. Hal ini ditandai untuk permintaan kompatibilitas dengan versi yang berbeda tidak dijamin akan kompatibel.

minor

number

WAJIB: Versi minor. Hal ini menunjukkan perbaikan bug yang signifikan.

revision

number

WAJIB: Versi minor. Ini menunjukkan perbaikan {i>bug<i} minor.

StandardCard

Representasi standar kartu

Representasi JSON
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
Kolom
accountNumber

string

WAJIB: Nomor Rekening Utama (PAN) kartu dalam teks biasa.

expiryDate

string

OPSIONAL: Tanggal habis masa berlaku kartu dalam format MM/YYYY. Opsional karena kartu tertentu di wilayah tertentu tidak memiliki tanggal habis masa berlaku.

cvn

string

OPSIONAL: Jika Google mengumpulkan CVN dari pengguna, CVN diberikan di sini dan harus diverifikasi.

AvsData

Berisi kolom alamat yang akan diverifikasi oleh AVS.

Representasi JSON
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Kolom
streetAddress

string

OPSIONAL: Alamat alamat penagihan pengguna. Ketika pengguna telah menyediakan beberapa baris untuk memasukkan alamat jalan (misalnya, baris untuk nomor apartemen), baris tersebut digabungkan dengan spasi.

localityName

string

OPSIONAL: Istilah ini samar-samar, tetapi umumnya mengacu pada bagian kota dari suatu alamat. Di wilayah dunia dengan lokalitas yang tidak didefinisikan dengan baik atau tidak cocok dengan struktur ini (misalnya, Jepang dan China), kosongkan localityName dan gunakan address_line.

Contoh: US city, IT comune, UK post city.

administrativeAreaName

string

OPSIONAL: Subdivisi administratif tingkat teratas negara ini untuk alamat penagihan pengguna.

Contoh: Negara bagian AS, wilayah IT, negara konstituen Inggris Raya, prefektur Jepang

Jika country == US, ini diharapkan menjadi singkatan 2 karakter untuk Negara Bagian AS.

postalCodeNumber

string

OPSIONAL: Kode pos penagihan pengguna.

countryCode

string

OPSIONAL: Kode negara alamat penagihan pengguna dalam format ISO-3166-1 Alpha-2.

ResponseHeader

Objek header yang ditentukan pada semua respons yang dikirim dari server.

Representasi JSON
{
  "responseTimestamp": string
}
Kolom
responseTimestamp

string (int64 format)

WAJIB: Stempel waktu respons ini direpresentasikan sebagai milidetik sejak epoch. Penerima harus memverifikasi bahwa stempel waktu ini adalah ± 60 detik dari 'sekarang'.

CardNetworkResult

Berisi jaringan dan kode hasil mentah dari jaringan tersebut.

Representasi JSON
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
Kolom
network

enum(Network)

WAJIB: Jaringan tempat kode hasil berasal.

iso8583Result

string

WAJIB: Kode pengembalian ISO-8583 yang ditampilkan oleh jaringan.

Jika jaringan menggunakan format kode respons mereka sendiri, integrator harus memetakan kode respons tersebut ke kode respons ISO-8583.

rawNetworkResult

string

WAJIB: Nilai mentah yang ditampilkan dari jaringan. Jaringan yang menggunakan kode pengembalian ISO-8583 sudah akan memiliki nilai yang sama di kolom ini dan di iso8583Result. Kolom ini digunakan untuk memberi tahu mesin risiko Google dan paling berguna untuk jaringan yang menggunakan kode responsnya sendiri.

Jaringan

Menentukan kemungkinan jaringan kartu yang mungkin telah menampilkan rawResult.

Enum
UNKNOWN_NETWORK Jaringan tidak dikenali
NETWORK_NOT_INVOLVED Gunakan nilai ini jika penolakan tidak berasal dari jaringan. Misalnya, jika integrator menolak pembelian bahkan sebelum penolakan dikirim di jaringan kartu.
AMEX Jaringan AMEX
COMPROCARD Jaringan COMPROCARD
DANKORT Jaringan DANKORT
DINACARD Jaringan DINACARD
DINERS_CLUB Jaringan DINERS_CLUB
DISCOVER Temukan Jaringan
EFTPOS Jaringan EFTPOS
ELO Jaringan ELO
ENROUTE Jaringan ENROUTE
FELICA Jaringan FELICA
GE_CAPITAL Jaringan GE_CAPITAL
HIPERCARD Jaringan HIPERCARD
ID Jaringan ID
INTERAC Jaringan INTERAC
JCB Jaringan JCB
LASER Jaringan LASER
MAESTRO Jaringan MAESTRO
MASTERCARD Jaringan MASTERCARD
PPT Jaringan PPT
QUICPAY Jaringan QUICPAY
RUPAY Jaringan RUPAY
SBERCARD Jaringan SBERCARD
SOLO Jaringan SOLO
SYNCHRONY Jaringan SYNCHRONY
UNIONPAY Jaringan UNIONPAY
VISA Jaringan VISA

AvsResult

Hasil verifikasi kolom alamat yang diberikan dalam permintaan.

Semua kolom wajib ada karena kita menginginkan hasil eksplisit untuk setiap kolom, bukan mengandalkan tidak adanya kolom sebagai hasil tersirat.

Representasi JSON
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
Kolom
rawAvsResult

string

WAJIB: Nilai AVS mentah yang ditampilkan dari jaringan kartu.

streetAddress

enum(VerificationResult)

WAJIB: Hasil verifikasi streetAddress yang dikirim di kolom addressVerificationSystemData permintaan.

Jika kolom tidak ditetapkan dalam permintaan, nilai ini harus "NOT_SENT".

localityName

enum(VerificationResult)

WAJIB: Hasil verifikasi localityName yang dikirim di kolom addressVerificationSystemData permintaan.

Jika kolom tidak ditetapkan dalam permintaan, nilai ini harus "NOT_SENT".

administrativeAreaName

enum(VerificationResult)

WAJIB: Hasil verifikasi administrativeAreaName yang dikirim di kolom addressVerificationSystemData permintaan.

Jika kolom tidak ditetapkan dalam permintaan, nilai ini harus "NOT_SENT".

postalCodeNumber

enum(VerificationResult)

WAJIB: Hasil verifikasi postalCodeNumber yang dikirim di kolom addressVerificationSystemData permintaan.

Jika kolom tidak ditetapkan dalam permintaan, nilai ini harus "NOT_SENT".

countryCode

enum(VerificationResult)

WAJIB: Hasil verifikasi countryCode yang dikirim di kolom addressVerificationSystemData permintaan.

Jika kolom tidak ditetapkan dalam permintaan, nilai ini harus "NOT_SENT".

VerificationResult

Enum
UNKNOWN_AVS_MATCH Jangan pernah menetapkan nilai default ini!
NOT_SENT Google tidak mengirim kolom ini sehingga tidak ada yang dapat dilakukan dengan kolom tersebut.
MATCH Google mengirimkan kolom ini ke integrator dan diperiksa melalui AVS serta cocok dengan nilai yang diharapkan.
MISMATCH Google mengirimkan kolom ini ke integrator dan diperiksa melalui AVS, tetapi nilai tersebut tidak sesuai dengan yang diharapkan.
SKIPPED Google mengirimkan lapangan ke integrator, tetapi integrator tidak memeriksa lapangan tersebut.
NOT_SPECIFIED Google mengirimkan kolom ini ke integrator dan integrator memeriksa kolom tersebut melalui AVS, tetapi kode hasil AVS tidak memberikan info yang memadai bagi integrator untuk mengetahui apakah kolom tersebut cocok dengan nilai yang diharapkan.

CvnResult

Hasil verifikasi CVN yang diberikan dalam permintaan.

Enum
UNKNOWN_CVN_RESULT Jangan pernah menetapkan nilai default ini!
NOT_SENT Google tidak memberikan CVN, sehingga tidak dapat diverifikasi.
NOT_VERIFIED Google telah mengirimkan CVN, tetapi tidak diverifikasi. Ini sesuai dengan kode hasil jaringan "F"
MATCH Google telah mengirim CVN, diverifikasi, dan cocok. Ini sesuai dengan kode hasil jaringan "M".
MISMATCH Google telah mengirimkan CVN, yang telah diverifikasi, tetapi tidak cocok. Ini sesuai dengan kode hasil jaringan "N".