Method: getDisputeInquiryReport

Dapatkan laporan yang menyediakan informasi untuk memfasilitasi percakapan dukungan pelanggan dengan pengguna terkait kemungkinan sengketa pembayaran.

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": "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)

DIPERLUKAN: Header umum untuk semua permintaan.

paymentIntegratorAccountId

string

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

paymentLookupCriteria

object (PaymentLookupCriteria)

DIPERLUKAN: Kriteria yang menunjukkan pembayaran yang akan 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 tidak ada, ID klaim baru akan dibuat. Penelepon dapat memberikan googleClaimId yang ditampilkan oleh panggilan sebelumnya ke getDisputeInquiryReport jika ini adalah kelanjutan dari sengketa pelanggan yang sama.

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

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

requestOriginator

object (RequestOriginator)

DIPERLUKAN: Informasi tentang organisasi atau subgrup organisasi yang membuat 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)

DIPERLUKAN: Header umum untuk semua respons.

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED: Hasil dari panggilan ini.

googleClaimId

string

OPSIONAL: String yang dibuat Google yang mengidentifikasi sengketa pelanggan ini secara unik. (Presentasikan jika dan hanya jika result BERHASIL.)

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

report

object (PurchaseReport)

OPSIONAL: Detail yang relevan dengan sengketa pembayaran yang diidentifikasi dalam permintaan. (Presentasikan jika dan hanya jika result BERHASIL.)

Kriteria PaymentLookup

Penampung untuk kriteria yang dapat mencari pembayaran secara unik. 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)
  },
  "captureRequestCriteria": {
    object (CaptureRequestCriteria)
  }
  // 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 Acquirer (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPSIONAL: Cari berdasarkan Nomor Referensi Transaksi Google.

captureRequestCriteria

object (CaptureRequestCriteria)

OPSIONAL: Cari berdasarkan ID Permintaan Pengambilan.

Kriteria Arn

Kriteria pencarian pembayaran berdasarkan Acquirer Reference Number (ARN).

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

string

DIPERLUKAN: Nomor Referensi Acquirer (ARN) yang mengidentifikasi pembayaran secara unik. Harus 23 digit.

authorizationCode

string

REQUIRED: Kode Otorisasi untuk transaksi.

GoogleReferenceReferenceNumberCriteria

Kriteria pencarian pembayaran berdasarkan Nomor Referensi Transaksi yang dibuat Google.

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

string

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

authorizationCode

string

REQUIRED: Kode Otorisasi untuk transaksi.

KriteriaRequestRequest

Kriteria pencarian pembayaran berdasarkan permintaan pengambilan asli.

Representasi JSON
{
  "captureRequestId": string
}
Kolom
captureRequestId

string

DIPERLUKAN: ID unik untuk transaksi ini. Ini adalah requestId yang dibuat oleh Google selama panggilan capture yang sedang dicari.

Asal Permintaan

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. Hal ini sangat berharga jika pemanggil adalah penyedia layanan perantara yang menerima permintaan dari beberapa klien eksternal.

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

string

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

organizationDescription

string

DIPERLUKAN: Nama atau deskripsi organisasi yang dapat dibaca manusia yang 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, yang permintaannya berasal dari permintaan ini. Harus unik dalam organizationId ini.

GetDisputeInquiryReportResultCode

Hasil panggilan metode getDisputeInquiryReport.

Enumerasi
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 milik pesanan yang sudah ada, tetapi tidak dapat dikembalikan. Alasannya mencakup kasus saat pesanan dihapus atas permintaan pemiliknya.
NO_ADDITIONAL_DETAILS Pembayaran yang diminta ditemukan, tetapi laporan tidak tersedia.

LaporanPembelian

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

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

object (CustomerAccount)

DIPERLUKAN: Informasi terkait pelanggan dan akunnya.

order

object (Order)

DIPERLUKAN: Informasi terkait pesanan yang digunakan untuk melakukan pembayaran.

payment

object (Payment)

OPSIONAL: Informasi terkait pembayaran. Catatan: Beberapa pembayaran dapat dilakukan pada satu pesanan, tetapi ini hanya akan berisi info untuk pembayaran yang diidentifikasi dalam permintaan asli. Hanya tersedia untuk jenis pesanan tertentu.

AkunPelanggan

Informasi tentang akun pelanggan

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

string

DIPERLUKAN: Alamat email yang terkait dengan Akun Google pelanggan.

customerName

string

DIPERLUKAN: Nama pelanggan.

Susunan

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. Hanya tersedia untuk jenis pesanan tertentu.

orderId

string

OPSIONAL: String yang mengidentifikasi pesanan ini secara unik. Hanya tersedia untuk jenis pesanan tertentu.

currencyCode

string

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

subTotalAmount

string (Int64Value format)

OPSIONAL: Jumlah total pesanan ini sebelum pajak, yang dinyatakan sebagai mikro mata uang yang ditentukan dalam order.currencyCode. Jumlah ini setara dengan SUM(items.totalPrice). Hanya tersedia untuk jenis pesanan tertentu.

totalAmount

string (Int64Value format)

OPSIONAL: Jumlah total pesanan ini termasuk pajak, yang dinyatakan sebagai mikro mata uang yang ditentukan dalam order.currencyCode. Jumlah ini setara dengan subTotalAmount + SUM(taxes.amount). Hanya tersedia untuk jenis pesanan tertentu.

shippingAddress

object (Address)

OPSIONAL: Alamat pengiriman untuk item fisik dalam pesanan ini.

items[]

object (Item)

DIPERLUKAN: Daftar item yang merupakan bagian dari pesanan ini.

taxes[]

object (Tax)

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

Alamat

Struktur 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: Opsi ini menyimpan teks Alamat yang tidak terstruktur.

localityName

string

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

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

administrativeAreaName

string

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

postalCodeNumber

string

OPSIONAL: Terlepas dari nama, nilai posCodeNumber sering kali berupa alfanumerik. Contoh: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

OPSIONAL: Kode negara alamat pelanggan, diharapkan 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. Hanya tersedia untuk jenis pesanan tertentu.

merchant

string

DIPERLUKAN: Penjual, artis, atau produsen item.

quantity

string (Int64Value format)

OPSIONAL: Jumlah yang dipesan dari item ini.

Kolom ini akan dihilangkan jika kuantitas bilangan bulat tidak berlaku untuk produk (misalnya, produk terukur dapat memiliki jumlah pecahan).

totalPrice

string (Int64Value format)

OPSIONAL: Harga total item ini, yang direpresentasikan sebagai mikro mata uang yang ditentukan dalam order.currencyCode. Jika quantity diisi, ini mencerminkan harga total dari seluruh kuantitas. Hanya tersedia untuk jenis pesanan tertentu.

googleProductName

string

REQUIRED: Nama layanan produk Google untuk item.

Pajak

Informasi tentang pajak yang berlaku untuk pesanan ini.

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

string

DIPERLUKAN: Deskripsi pajak.

amount

string (Int64Value format)

DIPERLUKAN: Jumlah pajak, yang direpresentasikan sebagai mikro 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)

DIPERLUKAN: Alamat penagihan untuk pembayaran ini.

amount

string (Int64Value format)

DIPERLUKAN: Jumlah pembayaran ini, yang direpresentasikan sebagai mikro mata uang yang ditentukan dalam order.currencyCode. Catatan: Hal ini mungkin tidak cocok dengan order.totalAmount jika pesanan dibayar dengan beberapa pembayaran.

refunds[]

object (Refund)

DIPERLUKAN: 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 saat pembayaran.

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

string (Int64Value format)

REQUIRED: Jumlah yang dikembalikan, jumlah positif mikro dari mata uang yang ditentukan dalam order.currencyCode.

initiatedTimestamp

string (int64 format)

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

Detail KartuPembayaran

Detail pembayaran khusus kartu kredit & debit.

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

enum (AuthResult)

DIPERLUKAN: Hasil autentikasi pembayaran.

AuthResult

Hasil autentikasi pembayaran.

Enumerasi
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
APPROVED Auth Disetujui.
DENIED Auth ditolak.
NOT_ATTEMPTED Auth tidak dicoba.