Method: captureResultNotification

Beri tahu Google tentang hasil pengambilan gambar setelah panggilan metode capture atau asynchronousCapture dilakukan.

Nilai captureResult bersifat idempoten untuk captureRequestId ini, sehingga nilainya tidak dapat diubah oleh panggilan berikutnya ke metode ini.

Jika endpoint mengalami error saat memproses permintaan, respons dari endpoint ini akan berjenis ErrorResponse.

Respons terhadap kueri ini mungkin kosong jika metode ini tidak menampilkan HTTP 200. Isi respons kosong jika ErrorResponse dengan deskripsi yang jelas dapat digunakan untuk membantu penyerang memahami ID akun integrator pembayaran dari integrator lainnya. Dalam situasi ini, jika kunci penandatanganan tidak cocok, ID integrator pembayaran tidak ditemukan, atau kunci enkripsi tidak diketahui, metode ini akan menampilkan HTTP 404 dengan isi kosong. Jika tanda tangan permintaan dapat diverifikasi, informasi tambahan terkait error akan ditampilkan dalam isi respons.

Contoh permintaan terlihat seperti ini:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

Contoh respons terlihat seperti ini:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

Permintaan HTTP

POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
Kolom
requestHeader

object (RequestHeader)

DIPERLUKAN: Header umum untuk semua permintaan.

paymentIntegratorAccountId

string

DIPERLUKAN: ID akun integrator pembayaran tempat pengambilan dilakukan.

captureRequestId

string

DIPERLUKAN: ID unik untuk transaksi ini. Ini adalah requestId yang dihasilkan oleh Google selama panggilan capture atau asynchronousCapture yang terkait dengan permintaan ini.

Ini adalah string dengan panjang maksimal 100 karakter dan hanya berisi karakter "a-z", "A-Z", "0-9", ":", "-", dan "_".

captureResult

object (CaptureResult)

REQUIRED: Hasil pengambilan gambar ini.

paymentIntegratorTransactionId

string

OPSIONAL: ID ini dikhususkan untuk integrator dan dibuat oleh integrator. Ini adalah ID yang digunakan integrator untuk mengetahui transaksi ini.

Untuk memudahkan, ID ini disertakan dalam detail transfer dana

Isi respons

Objek respons untuk metode captureResultNotification.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
Kolom
responseHeader

object (ResponseHeader)

DIPERLUKAN: Header umum untuk semua respons.

result

enum (CaptureResultNotificationResultCode)

REQUIRED: Hasil dari panggilan ini.

Hasil Tangkapan

Informasi tentang hasil akhir pengambilan gambar.

Representasi JSON
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
Kolom
captureResultCode

enum (CaptureResultCode)

REQUIRED: Kode hasil dari pengambilan ini.

rawResult

object (RawResult)

OPSIONAL: Hasil mentah dari pengambilan gambar ini. Digunakan untuk membantu menginformasikan mesin risiko dan analisis Google. Dalam situasi pemetaan–kode yang ditolak, terkadang data hilang. Integrator dapat memilih untuk memberikan kode mentah kepada Google. Misalnya, gateway kartu kredit (integrator) dapat menggunakan kolom ini untuk menyampaikan kepada Google kode penolakan persis yang diterima dari jaringan VISA. Dalam hal ini, scope akan menjadi "visa" dan rawCode akan menjadi apa pun yang ditampilkan jaringan VISA.

Nilai ini wajib jika result bukan SUCCESS.

Kolom union FailureDetail.

FailureDetail hanya dapat berupa salah satu dari berikut:

transactionMaxLimit

string (Int64Value format)

OPSIONAL: Jika captureResultCode adalah CHARGE_EXCEEDS_TRANSACTION_LIMIT, ini adalah nilai transaksi maksimum yang diizinkan. Mode ini digunakan untuk analisis pesan dan rasio penolakan yang terstruktur dan digunakan pengguna.

Jumlah ini adalah mikro currencyCode yang sama dengan panggilan metode capture atau asynchronousCapture yang asli.

transactionMinLimit

string (Int64Value format)

OPSIONAL: Jika captureResultCode adalah CHARGE_UNDER_TRANSACTION_LIMIT, ini adalah nilai transaksi minimum yang diizinkan. Mode ini digunakan untuk analisis pesan dan rasio penolakan yang terstruktur dan digunakan pengguna.

Jumlah ini adalah mikro currencyCode yang sama dengan panggilan metode capture atau asynchronousCapture yang asli.

currentBalance

string (Int64Value format)

OPSIONAL: Jika Hasilnya adalah INSUFFICIENT_FUNDS, ini adalah saldo yang tersedia saat ini di akun pengguna (dalam mikro). Ini digunakan untuk pesan terstruktur yang ditampilkan kepada pengguna.

Nilai ini harus dalam mata uang yang sama dengan currencyCode dalam permintaan.

CaptureResultCode

Kode hasil untuk pengambilan.

Enumerasi
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
SUCCESS Pengambilan berhasil.
CHARGE_UNDER_TRANSACTION_LIMIT Jumlah tangkapan yang diminta tidak memenuhi jumlah minimum transaksi per integrator. Jika kode ini digunakan, isi kolom transactionMinLimit dengan jumlah transaksi minimum untuk tujuan pesan pengguna.
CHARGE_EXCEEDS_TRANSACTION_LIMIT Jumlah tangkapan yang diminta melebihi batas maksimum per transaksi untuk integrator. Jika kode ini digunakan, isi kolom transactionMaxLimit dengan batas transaksi untuk tujuan pesan pengguna.
CHARGE_EXCEEDS_DAILY_LIMIT Akun pengguna tidak dapat digunakan untuk pembelian sekarang karena akun ini telah melampaui batas harian.
CHARGE_EXCEEDS_MONTHLY_LIMIT Akun pengguna tidak dapat digunakan untuk pembelian sekarang karena akun ini telah melampaui batas bulanannya.
INSUFFICIENT_FUNDS Akun ini tidak memiliki dana yang memadai untuk menjamin pengambilan gambar ini.
SUSPECTED_FRAUD Integrator memiliki alasan untuk mencurigai bahwa transaksi ini merupakan penipuan.
ACCOUNT_CLOSED Akun pengguna yang dibekukan dengan integrator telah ditutup. Nilai pengembalian ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Akun pengguna dengan integrator telah ditutup, dan akun yang dicurigai akan mengambil alih. Nilai pengembalian ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru.
ACCOUNT_CLOSED_FRAUD Akun pengguna yang ditahan oleh integrator telah ditutup karena penipuan. Nilai pengembalian ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru.
ACCOUNT_ON_HOLD Akun pengguna ditangguhkan.
OTP_NOT_MATCHED OTP tidak sesuai dengan yang dikirim oleh integrator.
OTP_ALREADY_USED OTP sudah digunakan.
CAPTURE_REQUEST_EXPIRED Integrator memerlukan waktu terlalu lama untuk mengambil dana pengguna. Google akan memperlakukan penolakan ini sebagai keadaan akhir, sehingga integrator harus memastikan bahwa dana pengguna tidak ditangkap nanti atau pengguna akan menerima pengembalian dana secara otomatis jika tangkapan berhasil.
INVALID_PIN Pengguna memberikan PIN yang tidak valid.
OS_LOCK_FAILED Alur pembayaran ini memerlukan verifikasi kunci OS dan pengguna gagal membuka kunci perangkat.
PIN_ENTRY_ATTEMPTS_EXHAUSTED Alur pembayaran ini memerlukan entri PIN pengguna. Pengguna gagal memasukkan entri PIN cukup kali sehingga kehabisan percobaan ulang.
USER_EXITED_PAYMENT_FLOW Pengguna membatalkan seluruh upaya pembayaran (baik di layar OS atau di layar entri PIN).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Akun pengguna tidak dapat digunakan untuk pembelian sekarang karena telah melampaui batas upaya transaksi bulanan.
DECLINED_BY_ISSUER

Kode penolakan ini tidak boleh digunakan dalam kondisi stabil. Fungsi ini dimaksudkan sebagai kode generik sementara untuk digunakan saat integrator menemukan kode penolakan yang tidak diketahui dari penerbit pokok instrumen pengguna. Kode hasil ini dapat digunakan saat integrator menentukan kode hasil yang lebih sesuai untuk digunakan atau menegosiasikan penambahan kode hasil baru ke spesifikasi ini.

Yang terpenting, kode penolakan ini adalah penolakan yang sebenarnya. Penolakan bersifat permanen bagi Google. Jika integrator menampilkan ini, mereka dapat melacak apa yang dimaksud dengan kode penerbit dan mengembalikan dana pengguna jika ternyata kode tersebut benar-benar SUCCESS.

Jika kode penolakan ini digunakan untuk kode penolakan yang sama selama lebih dari jumlah hari tertentu, Google akan memperlakukannya sebagai bug dan melacaknya sesuai dengan penalti kontrak yang berlaku saat memperbaiki bug.

HasilMentah

Objek hasil mentah.

Representasi JSON
{
  "scope": string,
  "rawCode": string
}
Kolom
scope

string

OPTIONAL: Cakupan rawCode, boleh kosong.

rawCode

string

DIPERLUKAN: Kode mentah dari integrator atau subsistem di dalamnya.

CaptureResultNotificationResultCode

Kode hasil untuk metode captureResultNotification.

Enumerasi
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
SUCCESS Notifikasi hasil pengambilan berhasil diproses.