Method: captureResultNotification

Beri tahu Google hasil perekaman 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 untuk kueri ini boleh kosong jika metode ini tidak menampilkan HTTP 200. Isi respons kosong dalam situasi saat ErrorResponse dengan deskripsi yang jelas dapat digunakan untuk membantu penyerang memahami ID akun integrator pembayaran dari integrator lain. Dalam situasi ini, saat 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 tersebut akan dikirimkan dalam isi respons.

Contoh permintaan terlihat seperti:


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

Contoh respons akan 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)

WAJIB: Header umum untuk semua permintaan.

paymentIntegratorAccountId

string

WAJIB: ID akun integrator pembayaran tempat pengambilan terjadi.

captureRequestId

string

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

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

captureResult

object (CaptureResult)

WAJIB: Hasil dari pengambilan ini.

paymentIntegratorTransactionId

string

OPSIONAL: ID ini khusus untuk integrator dan dihasilkan oleh integrator. Ini adalah ID yang digunakan integrator untuk mengetahui transaksi ini.

Demi kemudahan, 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)

WAJIB: Header umum untuk semua respons.

result

enum (CaptureResultNotificationResultCode)

WAJIB: Hasil dari panggilan ini.

CaptureResult

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)

WAJIB: Kode hasil tangkapan ini.

rawResult

object (RawResult)

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

Nilai ini wajib jika result bukan SUCCESS.

Kolom union FailureDetail.

FailureDetail hanya dapat berupa salah satu dari yang berikut:

transactionMaxLimit

string (Int64Value format)

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

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

transactionMinLimit

string (Int64Value format)

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

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

currentBalance

string (Int64Value format)

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

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

CaptureResultCode

Kode hasil untuk tangkapan.

Enum
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini!
SUCCESS Pengambilan gambar berhasil.
CHARGE_UNDER_TRANSACTION_LIMIT Jumlah tangkapan yang diminta tidak memenuhi jumlah minimum per transaksi 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 dari 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 saat ini karena telah melampaui batas hariannya.
CHARGE_EXCEEDS_MONTHLY_LIMIT Akun pengguna tidak dapat digunakan untuk pembelian saat ini karena telah melampaui batas bulanan.
INSUFFICIENT_FUNDS Akun ini tidak memiliki cukup dana untuk menjamin penangkapan ini.
SUSPECTED_FRAUD Integrator memiliki alasan untuk mencurigai bahwa transaksi ini bersifat menipu.
ACCOUNT_CLOSED Akun pengguna yang disimpan dengan integrator telah ditutup. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Akun pengguna dengan integrator telah ditutup, akun yang dicurigai mengambil alih. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_CLOSED_FRAUD Akun pengguna yang disimpan dengan integrator telah ditutup karena penipuan. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_ON_HOLD Akun pengguna ditangguhkan.
OTP_NOT_MATCHED OTP tidak cocok dengan yang dikirim integrator.
OTP_ALREADY_USED OTP sudah digunakan.
CAPTURE_REQUEST_EXPIRED Integrator memerlukan waktu terlalu lama untuk mengambil dana pengguna. Google akan menganggap penolakan ini sebagai kondisi terakhir, sehingga integrator harus memastikan bahwa dana pengguna tidak ditangkap nanti atau bahwa pengguna mendapatkan pengembalian dana secara otomatis jika penangkapan ikan 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 PIN cukup sering sehingga mereka kehabisan percobaan ulang.
USER_EXITED_PAYMENT_FLOW Pengguna membatalkan seluruh upaya pembayaran (baik di kunci OS atau di layar entri PIN).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Akun pengguna tidak dapat digunakan untuk pembelian saat ini karena telah melebihi batas percobaan transaksi bulanannya.
DECLINED_BY_ISSUER

Kode penolakan ini tidak boleh digunakan dalam keadaan stabil. Hal ini dimaksudkan sebagai kode tangkapan semua sementara untuk digunakan saat integrator menemukan kode penolakan yang tidak diketahui dari penerbit yang mendasarinya pada instrumen pengguna. Kode hasil ini dapat digunakan sementara integrator menentukan kode hasil yang lebih sesuai untuk menggunakan atau menegosiasikan penambahan kode hasil baru ke spesifikasi ini.

Yang penting, kode penolakan ini merupakan penurunan yang nyata. Penolakan ini bersifat permanen, sejauh yang diperhatikan Google. Jika integrator menampilkan kode ini, mereka dapat melacak arti kode penerbit yang sebenarnya dan mengembalikan dana pengguna jika ternyata kode tersebut benar-benar berarti SUCCESS.

Jika kode penolakan ini digunakan untuk kode penolakan pokok yang sama selama lebih dari jumlah hari tertentu, Google akan memperlakukannya sebagai bug dan melacaknya sesuai dengan sanksi kontrak terkait perbaikan bug.

RawResult

Objek hasil mentah.

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

string

OPSIONAL: Cakupan rawCode, boleh kosong.

rawCode

string

WAJIB: Kode mentah dari integrator atau subsistem di dalamnya.

CaptureResultNotificationResultCode

Kode hasil untuk metode captureResultNotification.

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