Method: getOrderDetails

Mendapatkan pesanan yang memberikan dasar kepada partner Google untuk menagih pengguna akhir.

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": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "IntegratorFakeAccount",
  "orderLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City"
  }
}

Contoh respons akan terlihat seperti ini:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "order": {
    "timestamp": "1517992525972",
    "orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
    "currencyCode": "USD",
    "subTotalAmount": "399000000",
    "totalAmount": "459000000",
    "taxes": [],
    "items": [
      {
        "description": "YouTube TV membership",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "399000000"
      },
      {
        "description": "Showtime",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "6000000"
      }
    ]
  }
}

Permintaan HTTP

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

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "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.

orderLookupCriteria

object (OrderLookupCriteria)

WAJIB: Kriteria yang menunjukkan urutan yang akan dicari.

requestOriginator

object (RequestOriginator)

OPSIONAL: Informasi tentang organisasi atau subgrup organisasi yang berasal dari permintaan ini (jika integrator memanggil kami atas nama organisasi lain).

Isi respons

Payload respons untuk metode getOrderDetails.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Kolom
responseHeader

object (ResponseHeader)

WAJIB: Header umum untuk semua respons.

result

enum (GetOrderDetailsResultCode)

WAJIB: Hasil dari panggilan ini.

order

object (Order)

OPSIONAL: Informasi mengenai urutan pembayaran yang dilakukan. (Tampilkan jika dan hanya jika result BERHASIL.)

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

userLocale
(deprecated)

string

TIDAK DIGUNAKAN LAGI: Kode bahasa dua atau tiga huruf ISO 639-2 Alpha 3 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 dari nomor yang sama dijamin kompatibel. Perlu diketahui bahwa revisi kecil 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 akan kompatibel.

minor

integer

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

revision

integer

WAJIB: Versi minor. Ini menunjukkan perbaikan {i>bug<i} minor.

OrderLookupCriteria

Kriteria pencarian pesanan.

Representasi JSON
{

  // Union field criteria can be only one of the following:
  "dcb3CorrelationId": string,
  "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 yang berikut:

dcb3CorrelationId

string

Cari berdasarkan ID korelasi DCB yang dibuat Google yang mengidentifikasi pembayaran secara unik. Nilai ini dibuat oleh Google dan dikirim ke integrator pembayaran tagihan operator selama panggilan Auth.

arnCriteria

object (ArnCriteria)

Cari berdasarkan Nomor Referensi Acquirer (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Cari berdasarkan Nomor Referensi Transaksi Google.

ArnCriteria

Kriteria pencarian pembayaran berdasarkan Nomor Referensi Acquirer (ARN).

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

string

WAJIB: Nomor Referensi Acquirer (ARN) yang mengidentifikasi pembayaran secara unik. Panjangnya harus 23 digit.

authorizationCode

string

WAJIB: Kode Otorisasi untuk transaksi.

GoogleTransactionReferenceNumberCriteria

Kriteria pencarian pembayaran berdasarkan Nomor Referensi Transaksi yang dibuat oleh 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 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 berguna jika pemanggil adalah penyedia layanan perantara yang mendapatkan permintaan dari beberapa klien eksternal.

Representasi JSON
{
  "organizationId": string,
  "organizationDescription": 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, yang dapat digunakan untuk memudahkan komunikasi antara karyawan Google dan integrator terkait organisasi tersebut.

ResponseHeader

Objek header yang ditentukan pada semua respons yang dikirim dari server.

Representasi JSON
{
  "responseTimestamp": string
}
Kolom
responseTimestamp

string (int64 format)

WAJIB: Stempel waktu respons ini direpresentasikan sebagai milidetik sejak epoch. Penerima harus memverifikasi bahwa stempel waktu ini adalah ± 60 detik dari 'sekarang'.

GetOrderDetailsResultCode

Hasil dari panggilan metode getOrderDetails.

Enum
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Jangan pernah menetapkan nilai default ini!
SUCCESS Pesanan ditemukan dan dikembalikan.
ORDER_CANNOT_BE_RETURNED

Pesanan yang diminta sudah ada, tetapi tidak dapat dikembalikan. Alasannya mencakup kasus saat pesanan dihapus atas permintaan pemiliknya.

PAYMENT_TOO_OLD Pembayaran yang diminta ditemukan, tetapi detail pesanan tidak diberikan karena usia pembayaran.
PAYMENT_NOT_FOUND Pembayaran yang diminta tidak ditemukan.
NO_ADDITIONAL_DETAILS Pembayaran yang diminta ditemukan, tetapi detail pesanan tidak tersedia.

Pesan

Informasi tentang pesanan.

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

string (int64 format)

OPSIONAL: Stempel waktu saat pesanan dibuat, direpresentasikan sebagai milidetik sejak epoch. Hanya tersedia untuk jenis pesanan tertentu.

orderId

string

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

currencyCode

string

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

subTotalAmount

string (Int64Value format)

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

totalAmount

string (Int64Value format)

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

items[]

object (Item)

WAJIB: Daftar item yang merupakan bagian dari pesanan ini.

taxes[]

object (Tax)

OPSIONAL: Daftar pajak yang merupakan bagian dari pesanan ini.

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

WAJIB: Penjual, artis, atau pembuat item.

quantity

string (Int64Value format)

OPSIONAL: Jumlah yang dipesan untuk item ini.

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

totalPrice

string (Int64Value format)

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

googleProductName

string

WAJIB: Nama layanan produk Google untuk item.

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 ditampilkan dalam mikro mata uang yang ditentukan dalam order.currencyCode.