- Permintaan HTTP
- Isi permintaan
- Isi respons
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Memulai perpindahan uang antara akun pelanggan yang ada di Google dan pemroses pembayaran. Kombinasi requestId
dalam header dan paymentIntegratorAccountId
adalah kunci idempotensi 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 ini:
{
"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 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 kontraktual terkait transaksi ini. |
transactionDescription |
WAJIB: Ini adalah deskripsi transaksi yang dapat ditampilkan di laporan mutasi pelanggan. Dilokalkan ke userLocale yang ditemukan di |
currencyCode |
WAJIB: Kode mata uang 3 huruf ISO 4217 |
amount |
WAJIB: Jumlah pembelian, dalam micros satuan mata uang. |
captureContext |
WAJIB: Konteks tentang rekaman ini. |
Kolom union fopDetails . WAJIB: Detail FOP untuk transaksi Capture ini. fopDetails hanya dapat berupa salah satu dari berikut: |
|
googlePaymentToken |
Token yang akan digunakan kedua perusahaan untuk mengidentifikasi akun untuk pembelian 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 segera sebelum panggilan ini, atau 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. Untuk memudahkan, ID ini disertakan dalam detail pembayaran |
userMessage |
TIDAK DIGUNAKAN LAGI: Deskripsi hasil yang akan ditampilkan kepada pengguna jika hasilnya bukan |
result |
REQUIRED: Hasil pengambilan ini. |
rawResult |
OPSIONAL: Hasil mentah dari pengambilan ini. Digunakan untuk membantu menginformasikan mesin risiko dan analisis Google. Dalam situasi pemetaan kode penolakan, terkadang data hilang. Integrator dapat memilih untuk memberi Google kode mentah. Misalnya, gateway kartu kredit (integrator) dapat menggunakan kolom ini untuk memberitahukan kode penolakan persis yang diterima dari jaringan VISA kepada Google. Dalam hal ini, Nilai ini wajib jika |
transactionLimit |
OPSIONAL: Jika Hasilnya adalah Jumlah ini harus menjadi batas yang sesuai dengan |
currentBalance |
OPSIONAL: Jika Hasilnya adalah Nilai ini harus dalam mata uang yang sama dengan |
MandateDetails
Detail tentang mandat yang harus diambil.
Representasi JSON |
---|
{ "mandateId": string } |
Kolom | |
---|---|
mandateId |
WAJIB: ID mandat buatan Google yang dikirim selama panggilan |
MandateWithNotificationDetails
Detail tentang mandat yang harus diambil, beserta detail notifikasi yang diperlukan.
Representasi JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Kolom | |
---|---|
mandateId |
WAJIB: ID mandat buatan Google yang dikirim selama panggilan |
upcomingTransactionNotificationId |
WAJIB: |
CaptureContext
Objek ini memberikan konteks tentang bagaimana 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, ini akan kosong. Jika kontrak tertentu tidak menyebutkan kebutuhan untuk kolom ini, kolom tersebut akan selalu kosong. |
CaptureResultCode
Kode hasil untuk pengambilan.
Enum | |
---|---|
UNKNOWN_RESULT |
Jangan pernah menetapkan nilai default ini. |
SUCCESS |
Berhasil ditangkap, kirim barangnya. |
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 sekarang karena telah melebihi batas harian. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Akun ini tidak dapat digunakan untuk pembelian sekarang karena telah melebihi batas bulanannya. |
CHARGE_UNDER_LIMIT |
amount permintaan pengambilan gambar 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 dimiliki oleh integrator telah ditutup. Jika nilai ini ditampilkan, instrumen pengguna akan 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. Jika nilai ini ditampilkan, instrumen pengguna akan 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 dimiliki bersama integrator telah ditutup karena penipuan. Jika nilai ini ditampilkan, instrumen pengguna akan 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. Jika nilai ini ditampilkan, instrumen pengguna akan ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi. |
TOKEN_REFRESH_REQUIRED |
Untuk mengembalikan ini, pengguna harus melalui alur pemuatan ulang. |
OTP_NOT_MATCHED |
OTP tidak sesuai dengan yang dikirim integrator. |
OTP_ALREADY_USED |
OTP sudah digunakan. |
RISK_DECLINED |
Transaksi ditolak karena pemeriksaan risiko dari pihak integrator. Ini adalah kegagalan permanen untuk pembayaran ini, tetapi tidak menyebabkan instrumen pengguna ditutup di Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Pengguna tidak memiliki sumber pendanaan yang berfungsi yang dikonfigurasi di akunnya yang dapat membayar transaksi. |
FUNDING_SOURCE_UNAVAILABLE |
Penerbit atau sumber dana pokok tidak tersedia dan mencoba kembali pembayaran yang ada ini tidak akan berhasil jika dicoba lagi. Google akan mencoba kembali pembayaran jika kode respons 4xx atau 5xx ditampilkan oleh partner. Oleh karena itu, partner biasanya akan menampilkan salah satu kode respons tersebut jika percobaan ulang pembayaran yang sama ini mungkin berhasil saat sumber dana pokok kembali tersedia. Namun, jika ada alasan teknis di mana Google mencoba kembali pembayaran akan terus gagal, partner dapat mengembalikan "FUNDING_SOURCE_UNAVAILABLE" sebagai cara untuk memberi tahu Google bahwa pihaknya tidak boleh mencoba kembali pembayaran yang sama ini. Catatan: Google tetap dapat mencoba lagi pembayaran ini, tetapi hanya dengan requestId yang berbeda, tetapi permintaan pembayaran ini akan ditandai sebagai Ditolak. |
MANDATE_NOT_ACTIVE |
Mandat yang digunakan untuk pengambilan ini tidak lagi aktif. Nilai hasil ini akan menyebabkan instrumen mandat pengguna ditutup dengan Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
Notifikasi yang dikirimkan kepada pengguna untuk pembayaran mandat berulang sudah tidak berlaku. |