Method: getDisputeInquiryReport

Dapatkan laporan yang memberikan informasi untuk memfasilitasi percakapan dukungan pelanggan dengan pengguna terkait potensi sengketa pembayaran.

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

Respons kueri ini mungkin kosong jika metode ini tidak menampilkan HTTP 200. Isi respons akan kosong jika ErrorResponse dengan deskripsi yang jelas dapat digunakan untuk membantu penyerang memahami ID akun integrator pembayaran dari integrator lain. 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 tersebut akan ditampilkan dalam isi respons.

Contoh permintaan terlihat seperti ini:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

Contoh respons terlihat seperti ini:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

Permintaan HTTP

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

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Kolom
requestHeader

object (RequestHeader)

WAJIB: Header umum untuk semua permintaan.

paymentIntegratorAccountId

string

WAJIB: ID akun integrator pembayaran yang mengidentifikasi pemanggil dan batasan kontraktual terkait untuk interaksi ini.

paymentLookupCriteria

object (PaymentLookupCriteria)

WAJIB: Kriteria yang menunjukkan pembayaran yang harus dicari untuk pertanyaan ini.

existingGoogleClaimId

string

OPSIONAL: String yang dibuat Google yang ditampilkan oleh panggilan sebelumnya ke getDisputeInquiryReport yang mengidentifikasi klaim sengketa pelanggan ini secara unik.

Jika hal ini tidak ada, ID klaim baru akan dibuat. Pemanggil dapat memberikan googleClaimId yang ditampilkan oleh panggilan sebelumnya ke getDisputeInquiryReport jika ini merupakan kelanjutan dari sengketa pelanggan yang sama.

ID klaim yang diisi di sini atau dihasilkan akan ditampilkan di kolom googleClaimId respons.

Tidak valid untuk memberikan googleClaimId yang tidak ditampilkan oleh panggilan sebelumnya ke getDisputeInquiryReport. Jika ini terjadi, Permintaan Buruk HTTP 400 akan dikembalikan.

requestOriginator

object (RequestOriginator)

WAJIB: Informasi tentang organisasi atau subgrup organisasi yang berasal dari permintaan ini.

Isi respons

Payload respons untuk metode getDisputeInquiryReport.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Kolom
responseHeader

object (ResponseHeader)

WAJIB: Header umum untuk semua respons.

result

enum (GetDisputeInquiryReportResultCode)

WAJIB: Hasil panggilan ini.

googleClaimId

string

OPSIONAL: String yang dibuat Google yang mengidentifikasi sengketa pelanggan ini secara unik. (Ditampilkan jika dan hanya jika result adalah SUKSES.)

Jika existingGoogleClaimId diisi dalam permintaan, ini akan memiliki nilai yang sama. Jika tidak, nilai akan berupa nilai yang baru dibuat. Nilai ini dapat diberikan dalam permintaan getDisputeInquiryReport mendatang jika merupakan bagian dari sengketa pelanggan yang sama.

report

object (PurchaseReport)

OPSIONAL: Detail yang relevan dengan sengketa pembayaran yang diidentifikasi dalam permintaan. (Ditampilkan jika dan hanya jika result adalah SUKSES.)

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 yang dinyatakan sebagai milidetik sejak epoch. Penerima harus memverifikasi bahwa stempel waktu ini adalah ± 60 detik dari 'sekarang'. Stempel waktu permintaan ini tidak idempoten setelah percobaan ulang.

userLocale
(deprecated)

string

TIDAK DIGUNAKAN LAGI: Kode bahasa ISO 639-2 Alpha 3 dua atau tiga huruf 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 userMessage 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 nomor yang sama dijamin kompatibel. Perhatikan bahwa minor dan revisi dapat sering berubah dan tanpa pemberitahuan. Integrator harus mendukung semua permintaan untuk versi utama yang sama.

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

integer

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

minor

integer

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

revision

integer

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

PaymentLookupCriteria

Penampung untuk kriteria yang dapat secara unik mencari pembayaran. Satu (dan hanya satu) kolom anggota harus diisi.

Representasi JSON
{

  // Union field criteria can be only one of the following:
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
Kolom

Kolom union criteria.

criteria hanya dapat berupa salah satu dari berikut:

arnCriteria

object (ArnCriteria)

OPSIONAL: Pencarian berdasarkan Nomor Referensi Akuisisi (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPSIONAL: Pencarian berdasarkan Nomor Referensi Transaksi Google.

ArnCriteria

Kriteria pencarian pembayaran berdasarkan Acquirer Reference Number (ARN).

Representasi JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Kolom
acquirerReferenceNumber

string

WAJIB: Nomor Referensi Akuisisi (ARN) yang mengidentifikasi pembayaran secara unik. Harus terdiri dari 23 digit.

authorizationCode

string

WAJIB: Kode Otorisasi untuk transaksi.

GoogleTransactionReferenceNumberCriteria

Kriteria pencarian pembayaran berdasarkan Nomor Referensi Transaksi yang dibuat Google.

Representasi JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Kolom
googleTransactionReferenceNumber

string

WAJIB: Nomor Referensi Transaksi yang dibuat Google yang mengidentifikasi pembayaran secara unik.

authorizationCode

string

WAJIB: Kode Otorisasi untuk transaksi.

RequestOriginator

Informasi tentang organisasi atau subgrup organisasi, dan secara opsional karyawan, tempat permintaan ini berasal. Hal ini memungkinkan Google mengidentifikasi masalah atau penyalahgunaan dan menerapkan kontrol pada tingkat yang lebih terperinci daripada paymentIntegratorAccountId. Fungsi ini sangat berguna jika pemanggil adalah penyedia layanan perantara yang mendapatkan permintaan dari beberapa klien eksternal.

Representasi JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Kolom
organizationId

string

WAJIB: ID perusahaan, organisasi, atau grup organisasi tempat permintaan ini berasal. Harus unik dalam paymentIntegratorAccountId ini.

organizationDescription

string

WAJIB: Nama atau deskripsi organisasi yang dapat dibaca manusia dan dapat digunakan untuk memudahkan komunikasi antara karyawan Google dan integrator terkait organisasi tersebut.

agentId

string

OPSIONAL: ID unik untuk agen tertentu (karyawan) organisasi yang diidentifikasi oleh organizationId tempat permintaan ini berasal. Harus unik dalam organizationId ini.

GetDisputeInquiryReportResultCode

Hasil panggilan metode getDisputeInquiryReport.

Enum
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
SUCCESS Pembayaran ditemukan dan laporan diberikan.
PAYMENT_NOT_FOUND Pembayaran yang diminta tidak ditemukan.
PAYMENT_TOO_OLD Pembayaran yang diminta ditemukan, tetapi laporan tidak diberikan karena usia pembayaran.
ORDER_CANNOT_BE_RETURNED Pembayaran yang diminta adalah bagian dari pesanan yang sudah ada, tetapi tidak dapat dikembalikan. Alasannya mencakup kasus pesanan dihapus atas permintaan pemiliknya.
NO_ADDITIONAL_DETAILS Pembayaran yang diminta ditemukan, tetapi laporan tidak tersedia.

PurchaseReport

Laporan yang berisi detail yang relevan terkait pembelian yang dikaitkan dengan pembayaran yang diminta.

Representasi JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Kolom
customerAccount

object (CustomerAccount)

WAJIB: Informasi mengenai pelanggan dan akunnya.

order

object (Order)

WAJIB: Informasi mengenai urutan pembayaran yang dilakukan.

payment

object (Payment)

OPSIONAL: Informasi mengenai pembayaran. Catatan: Beberapa pembayaran dapat dilakukan untuk satu pesanan, tetapi hanya akan berisi info pembayaran yang diidentifikasi dalam permintaan asli. Tidak tersedia untuk semua jenis pesanan.

CustomerAccount

Informasi tentang akun pelanggan

Representasi JSON
{
  "customerEmail": string,
  "customerName": string
}
Kolom
customerEmail

string

WAJIB: Alamat email yang terkait dengan Akun Google pelanggan.

customerName

string

WAJIB: Nama pelanggan.

Pesan

Informasi tentang pesanan.

Representasi JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Kolom
timestamp

string (int64 format)

OPSIONAL: Stempel waktu saat pesanan dibuat, dinyatakan sebagai milidetik sejak epoch. Tidak tersedia untuk semua jenis pesanan.

orderId

string

OPSIONAL: String yang secara unik mengidentifikasi pesanan ini. Tidak tersedia untuk semua jenis pesanan.

currencyCode

string

OPSIONAL: Kode mata uang 3 huruf ISO 4217 untuk semua jumlah dalam urutan ini. Tidak tersedia untuk semua jenis pesanan.

subTotalAmount

string (Int64Value format)

OPSIONAL: Jumlah total pesanan ini sebelum pajak, yang dinyatakan sebagai micros dari mata uang yang ditentukan dalam order.currencyCode. Ini sama dengan SUM(items.totalPrice). Tidak tersedia untuk semua jenis pesanan.

totalAmount

string (Int64Value format)

OPSIONAL: Jumlah total pesanan ini termasuk pajak, yang dinyatakan sebagai micros dari mata uang yang ditentukan dalam order.currencyCode. Ini sama dengan subTotalAmount + SUM(taxes.amount). Tidak tersedia untuk semua jenis pesanan.

shippingAddress

object (Address)

OPSIONAL: Alamat pengiriman untuk item fisik dalam pesanan ini.

items[]

object (Item)

WAJIB: Daftar item yang merupakan bagian dari pesanan ini.

taxes[]

object (Tax)

WAJIB: Daftar item yang merupakan bagian dari pesanan ini. Daftar ini mungkin kosong.

Alamat

Struktur yang menyimpan informasi tentang alamat.

Representasi JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Kolom
name

string

OPSIONAL: Nama lengkap pelanggan.

addressLine[]

string

OPSIONAL: Kolom ini berisi teks Alamat yang tidak terstruktur.

localityName

string

OPSIONAL: Ini adalah istilah yang sulit dipahami, tetapi umumnya mengacu pada bagian kota dari alamat. Di wilayah dunia dengan lokalitas yang tidak didefinisikan dengan baik atau tidak cocok dengan struktur ini (misalnya, Jepang dan China), biarkan localityName kosong dan gunakan addressLine.

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

administrativeAreaName

string

OPSIONAL: Subdivisi administratif tingkat teratas negara ini" Contoh: negara bagian AS, wilayah IT, provinsi CN, prefektur JP."

postalCodeNumber

string

OPSIONAL: Meskipun namanya, nilai postalCodeNumber sering kali berupa alfanumerik. Contoh: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

OPSIONAL: Kode negara alamat pelanggan, diharapkan adalah ISO-3166-1 Alpha-2.

Item

Informasi tentang item dalam pesanan.

Representasi JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Kolom
description

string

OPSIONAL: Deskripsi item yang dibeli. Tidak tersedia untuk semua jenis pesanan.

merchant

string

WAJIB: Penjual, artis, atau pembuat item.

quantity

string (Int64Value format)

OPSIONAL: Jumlah yang diurutkan untuk item ini.

Kolom ini akan dihilangkan jika kuantitas bilangan bulat tidak berlaku untuk produk (misalnya produk yang diukur mungkin memiliki kuantitas pecahan).

totalPrice

string (Int64Value format)

OPSIONAL: Harga total item ini, yang dinyatakan sebagai micros dari mata uang yang ditentukan dalam order.currencyCode. Jika quantity diisi, nilai ini mencerminkan harga total seluruh jumlah. Tidak tersedia untuk semua jenis pesanan.

googleProductName

string

WAJIB: Nama layanan produk Google untuk item tersebut.

Pajak

Informasi tentang pajak yang berlaku untuk pesanan ini.

Representasi JSON
{
  "description": string,
  "amount": string
}
Kolom
description

string

WAJIB: Deskripsi pajak.

amount

string (Int64Value format)

WAJIB: Jumlah pajak, yang direpresentasikan sebagai micros dari mata uang yang ditentukan dalam order.currencyCode.

Pembayaran

Informasi tentang pembayaran.

Representasi JSON
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Kolom
billingAddress

object (Address)

WAJIB: Alamat penagihan untuk pembayaran ini.

amount

string (Int64Value format)

WAJIB: Jumlah pembayaran ini, yang dinyatakan sebagai micros dari mata uang yang ditentukan dalam order.currencyCode. Catatan: Ini mungkin tidak cocok dengan order.totalAmount jika pesanan dibayar melalui beberapa kali pembayaran.

refunds[]

object (Refund)

WAJIB: Daftar pengembalian dana yang dilakukan untuk pembayaran ini. Daftar ini mungkin kosong.

Kolom union fopDetails.

fopDetails hanya dapat berupa salah satu dari berikut:

cardDetails

object (PaymentCardDetails)

OPSIONAL: Detail pembayaran khusus untuk FoP kartu kredit & debit.

Pengembalian Dana

Informasi tentang pengembalian dana yang dilakukan atas pembayaran.

Representasi JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Kolom
amount

string (Int64Value format)

WAJIB: Jumlah yang dikembalikan, jumlah positif micros dari mata uang yang ditentukan dalam order.currencyCode.

initiatedTimestamp

string (int64 format)

WAJIB: Stempel waktu saat pengembalian dana dimulai, dinyatakan sebagai milidetik sejak epoch.

PaymentCardDetails

Detail pembayaran khusus untuk kartu kredit & debit.

Representasi JSON
{
  "authResult": enum (AuthResult)
}
Kolom
authResult

enum (AuthResult)

WAJIB: Hasil autentikasi pembayaran.

AuthResult

Hasil autentikasi pembayaran.

Enum
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
APPROVED Otorisasi Disetujui.
DENIED Otorisasi ditolak.
NOT_ATTEMPTED Otorisasi tidak dicoba.