- Permintaan HTTP
- Isi Permintaan
- Isi respons
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Memulai perpindahan uang antara akun pelanggan yang disimpan dengan Google dan pemroses pembayaran. Kombinasi requestId
dalam header dan paymentIntegratorAccountId
adalah kunci idempotency dan mengidentifikasi transaksi ini secara unik. Semua mutasi pada transaksi ini (pengembalian dana) mengisi nilai requestId
di kolom captureRequestId
.
Jika endpoint mengalami error saat memproses permintaan, isi respons dari endpoint ini harus berjenis
.ErrorResponse
Contoh permintaan terlihat seperti:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
Contoh respons akan terlihat seperti ini:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
Permintaan HTTP
POST https://www.integratorhost.example.com/v1/capture
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
Representasi JSON |
---|
{ "requestHeader": { object ( |
Kolom | |
---|---|
requestHeader |
WAJIB: Header umum untuk semua permintaan. |
paymentIntegratorAccountId |
WAJIB: Ini adalah ID akun integrator pembayaran yang mengidentifikasi batasan kontrak terkait transaksi ini. |
transactionDescription |
WAJIB: Deskripsi transaksi yang dapat dimasukkan dalam laporan mutasi pelanggan. Dilokalkan ke userLocale yang ditemukan di |
currencyCode |
WAJIB: Kode mata uang 3 huruf ISO 4217 |
amount |
WAJIB: Jumlah pembelian, dalam mikro unit mata uang. |
captureContext |
WAJIB: Konteks tentang gambar ini. |
Kolom union fopDetails . WAJIB: Detail FOP untuk transaksi Ambil foto ini. fopDetails hanya dapat berupa salah satu dari yang berikut: |
|
googlePaymentToken |
Token yang akan digunakan kedua perusahaan untuk mengidentifikasi akun untuk pembelian di antara satu sama lain. |
mandateDetails |
Detail pembayaran khusus untuk mandat. |
mandateWithNotificationDetails |
Detail pembayaran khusus untuk mandat, yang memerlukan |
Kolom union
|
|
authenticationRequestId |
OPSIONAL: Jika hal ini ada, berarti pengguna telah diautentikasi tepat sebelum panggilan ini, atau telah diautentikasi saat jadwal pembayaran otomatis disiapkan. |
otpVerification |
OPSIONAL: Data yang diperlukan untuk memverifikasi OTP yang dihasilkan dari |
Isi respons
Objek respons untuk metode pengambilan.
Jika berhasil, isi respons memuat data dengan struktur berikut:
Representasi JSON |
---|
{ "responseHeader": { object ( |
Kolom | |
---|---|
responseHeader |
WAJIB: Header umum untuk semua respons. |
paymentIntegratorTransactionId |
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 |
userMessage |
TIDAK DIGUNAKAN LAGI: Deskripsi hasil yang akan ditampilkan kepada pengguna jika hasilnya bukan |
result |
WAJIB: Hasil dari pengambilan ini. |
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, Nilai ini wajib jika |
transactionLimit |
OPSIONAL: Jika Hasil adalah Nilai ini harus berupa batas sesuai dengan |
currentBalance |
OPSIONAL: Jika Hasil adalah Nilai ini harus dalam mata uang yang sama dengan |
MandateDetails
Detail tentang mandat untuk mengambil data.
Representasi JSON |
---|
{ "mandateId": string } |
Kolom | |
---|---|
mandateId |
WAJIB: ID mandat yang dibuat Google yang dikirim selama panggilan |
MandateWithNotificationDetails
Detail tentang mandat untuk mengambil data, bersama dengan detail notifikasi yang diperlukan.
Representasi JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Kolom | |
---|---|
mandateId |
WAJIB: ID mandat yang dibuat Google yang dikirim selama panggilan |
upcomingTransactionNotificationId |
WAJIB: |
CaptureContext
Objek ini memberikan konteks tentang cara pengambilan gambar diminta.
Representasi JSON |
---|
{ "userIpAddress": string } |
Kolom | |
---|---|
userIpAddress |
OPSIONAL: Ini adalah alamat IP perangkat pengguna jika pembelian dilakukan oleh pengguna dalam sesi. Jika pengguna tidak ada dalam sesi, kolom ini akan kosong. Jika kontrak tertentu tidak menetapkan kebutuhan untuk kolom ini, kolom ini akan selalu kosong. |
CaptureResultCode
Kode hasil untuk pengambilan.
Enum | |
---|---|
UNKNOWN_RESULT |
Jangan pernah menetapkan nilai default ini! |
SUCCESS |
Berhasil menangkap, mengirimkan barang. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
amount permintaan pengambilan ini melebihi batas per transaksi. Jika kode ini digunakan, isi kolom transactionLimit untuk tujuan pesan pengguna. |
CHARGE_EXCEEDS_DAILY_LIMIT |
Akun ini tidak dapat digunakan untuk pembelian saat ini karena telah melebihi batas hariannya. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Saat ini, akun ini tidak dapat digunakan untuk pembelian karena telah melebihi batas bulanannya. |
CHARGE_UNDER_LIMIT |
amount permintaan pengambilan ini tidak memenuhi jumlah transaksi minimum. |
INSUFFICIENT_FUNDS |
Akun ini tidak memiliki cukup dana untuk menjamin penangkapan ini. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
Akun ini tidak mendukung mata uang yang diminta. |
ACCOUNT_CLOSED |
Akun pengguna yang disimpan dengan integrator telah ditutup. Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
Akun pengguna dengan integrator telah ditutup, akun yang dicurigai mengambil alih. Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi. |
ACCOUNT_ON_HOLD |
Akun ditangguhkan. |
ACCOUNT_CLOSED_FRAUD |
Akun pengguna yang disimpan dengan integrator telah ditutup karena penipuan. Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
Akun aktif, tetapi GPT telah dibatalkan validasinya oleh pengguna di sisi integrator. Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi. |
TOKEN_REFRESH_REQUIRED |
Jika ditampilkan, pengguna harus melalui alur refresh. |
OTP_NOT_MATCHED |
OTP tidak cocok dengan yang dikirim integrator. |
OTP_ALREADY_USED |
OTP sudah digunakan. |
RISK_DECLINED |
Transaksi ditolak karena pemeriksaan risiko di pihak integrator. Kegagalan ini bersifat permanen untuk pembayaran ini, tetapi tidak menyebabkan instrumen pengguna ditutup di Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Pengguna tidak memiliki sumber pendanaan yang berfungsi di akunnya yang dapat digunakan untuk membayar transaksi. |
FUNDING_SOURCE_UNAVAILABLE |
Penerbit atau sumber dana yang mendasarinya tidak tersedia dan percobaan ulang pembayaran yang ada ini tidak akan berhasil jika dicoba lagi. Google akan mencoba kembali pembayaran jika kode respons 4xx atau 5xx dikirimkan oleh partner. Oleh karena itu, partner biasanya harus mengembalikan salah satu kode respons tersebut jika percobaan ulang untuk pembayaran yang sama ini dapat berhasil saat sumber dana yang mendasarinya kembali tersedia. Namun, jika ada alasan teknis yang membuat Google gagal mencoba kembali pembayaran, partner dapat mengembalikan "FUNDING_SOURCE_UNAVAILABLE" sebagai cara untuk memberi tahu Google bahwa pembayaran yang sama tidak boleh dilakukan kembali. Catatan: Google masih dapat mencoba kembali pembayaran ini, tetapi hanya dengan requestId lain, tetapi permintaan pembayaran ini akan ditandai sebagai Ditolak. |
MANDATE_NOT_ACTIVE |
Mandat yang digunakan untuk pengambilan ini sudah tidak aktif. Nilai yang ditampilkan ini akan menyebabkan instrumen mandat pengguna ditutup dengan Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
Notifikasi yang dikirim kepada pengguna untuk pembayaran mandat berulang sudah tidak berlaku. |