Method: getOrderDetails

Google iş ortaklarına, son kullanıcılardan ödeme alınması için temel sağlayan bir talimat alın.

Uç nokta, isteği işlerken bir hatayla karşılaşırsa bu uç noktadan gelen yanıt ErrorResponse türünde olur.

Bu yöntem HTTP 200 döndürmezse bu sorguya verilen yanıtlar boş olabilir. Açık açıklamaya sahip bir ErrorResponse, saldırganların diğer entegratörlerin ödeme entegrasyon hesap tanımlayıcılarını anlamasına yardımcı olmak için kullanılabileceği durumlarda yanıt gövdesi boştur. İmzalama anahtarının eşleşmediği, ödeme entegratörü tanımlayıcısının bulunamadığı veya şifreleme anahtarının bilinmediği durumlarda bu yöntem, gövdesi boş bir HTTP 404 döndürür. İstek imzası doğrulanabilirse yanıt gövdesinde hatayla ilgili ek bilgiler döndürülür.

Örnek istek:


{
  "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"
  }
}

Örnek bir yanıt aşağıdaki gibidir:


{
  "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"
      }
    ]
  }
}

HTTP isteği

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

İstek içeriği

İstek gövdesi, aşağıdaki yapıya sahip verileri içerir:

JSON gösterimi
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Alanlar
requestHeader

object (RequestHeader)

ZORUNLU: Tüm istekler için ortak başlık.

paymentIntegratorAccountId

string

ZORUNLU: Arayanı ve bu etkileşim için ilişkili sözleşme kısıtlamalarını tanımlayan ödeme entegratörü hesap tanımlayıcısı.

orderLookupCriteria

object (OrderLookupCriteria)

ZORUNLU: Aranacak sırayı belirten kriterler.

requestOriginator

object (RequestOriginator)

İSTEĞE BAĞLI: Bu isteğin kaynağı olan kuruluş veya kuruluş alt grubuyla ilgili bilgiler (entegratör bizi başka bir kuruluş adına arıyorsa).

Yanıt gövdesi

getOrderDetails yöntemi için yanıt yükü.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Alanlar
responseHeader

object (ResponseHeader)

ZORUNLU: Tüm yanıtlar için ortak başlık.

result

enum (GetOrderDetailsResultCode)

ZORUNLU: Bu çağrının sonucu.

order

object (Order)

İSTEĞE BAĞLI: Ödemenin yapıldığı siparişle ilgili bilgiler. (Yalnızca result BAŞARILI ise ve bu durumda sunulur.)

RequestHeader

Sunucuya gönderilen tüm isteklerde tanımlanan başlık nesnesi.

JSON gösterimi
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Alanlar
requestId

string

ZORUNLU: Bu isteğin benzersiz tanımlayıcısı.

Bu dize, en fazla 100 karakter uzunluğunda olabilir ve yalnızca "a-z", "A-Z", "0-9", ":", "-" ve "_" karakterlerini içerir.

requestTimestamp

string (int64 format)

ZORUNLU: Bu isteğin, dönemden bu yana geçen milisaniye cinsinden temsil edilen zaman damgası. Alıcı, bu zaman damgasının ± 60 sn. "şimdi" olduğunu doğrulamalıdır. Bu istek zaman damgası, yeniden denemeler sonrasında belirleyici değil.

userLocale
(deprecated)

string

KULLANIMDAN KALDIRILDI: İsteğe bağlı olarak kısa çizgi ve ISO 3166-1 Alpha-2 ülke kodu (ör. "pt", "pt-BR", "fil" veya "fil-PH") ile devam eden, iki veya üç harfli ISO 639-2 Alpha 3 dil kodu. Yanıttaki userMessage alanlarını desteklemek için bunu kullanın.

protocolVersion

object (Version)

ZORUNLU: Bu isteğin sürümü.

Sürüm

Klasik a.b.c sürüm yapısının yapılandırılmış bir biçimi olan sürüm nesnesi. Aynı sayının ana sürümlerinin uyumlu olacağı garanti edilir. Küçük çaplı ve düzeltmelerin sık sık ve önceden bildirimde bulunulmaksızın değişebileceğini unutmayın. Entegratör, aynı ana sürüm için tüm istekleri desteklemelidir.

JSON gösterimi
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Alanlar
major

integer

ZORUNLU: Ana sürüm. Bu, farklı sürümlere sahip uyumluluk istekleri için işaretlenmiştir ve bunların uyumlu olacağı garanti edilmez.

minor

integer

ZORUNLU: Alt sürüm. Bu, önemli hata düzeltmelerini gösterir.

revision

integer

ZORUNLU: Alt sürüm. Bu, küçük hata düzeltmelerini ifade eder.

OrderLookupCriteria

Sipariş arama ölçütleri.

JSON gösterimi
{

  // 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.
}
Alanlar

Birleştirme alanı criteria.

criteria şunlardan yalnızca biri olabilir:

dcb3CorrelationId

string

Google tarafından oluşturulan ve ödemeyi benzersiz şekilde tanımlayan DCB korelasyon kimliğine göre arama yapın. Bu değer, Google tarafından oluşturulmuş ve Auth araması sırasında operatör faturalandırması entegratörüne gönderilmiştir.

arnCriteria

object (ArnCriteria)

Alıcı Referans Numarası'na (ARN) göre arama.

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Google Transaction Referans Numarası'na göre arama yapın.

ArnCriteria

Alıcı Referans Numarası'na (ARN) dayalı ödeme arama ölçütleri.

JSON gösterimi
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Alanlar
acquirerReferenceNumber

string

ZORUNLU: Ödemeyi benzersiz şekilde tanımlayan Alıcı Referans Numarası (ARN). 23 haneli olmalıdır.

authorizationCode

string

ZORUNLU: İşlem için Yetkilendirme Kodu.

GoogleTransactionReferenceNumberCriteria

Google tarafından oluşturulan İşlem Referans Numarası'na dayalı ödeme arama ölçütleri.

JSON gösterimi
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Alanlar
googleTransactionReferenceNumber

string

ZORUNLU: Google tarafından oluşturulan ve ödemeyi benzersiz bir şekilde tanımlayan İşlem Referans Numarası'dır.

authorizationCode

string

ZORUNLU: İşlem için Yetkilendirme Kodu.

RequestOriginator

Bu isteğin geldiği kuruluş veya kuruluş alt grubuyla ilgili bilgiler. Bu sayede Google, sorunları veya kötüye kullanımı tespit edip paymentIntegratorAccountId'ye kıyasla daha ayrıntılı denetimler uygulayabilir. Bu, özellikle arayan kişinin, birden fazla harici istemciden gelen istekleri sağlayan bir aracı servis sağlayıcı olması durumunda kullanışlıdır.

JSON gösterimi
{
  "organizationId": string,
  "organizationDescription": string
}
Alanlar
organizationId

string

ZORUNLU: Bu isteğin geldiği şirket, kuruluş veya kuruluş grubunun tanımlayıcısı. Bu paymentIntegratorAccountId içinde benzersiz olmalıdır.

organizationDescription

string

ZORUNLU: Kuruluşla ilgili olarak Google çalışanları ve entegrasyon uzmanı arasındaki iletişimi kolaylaştırmak için kullanılabilecek, kuruluşun kullanıcılar tarafından okunabilen adı veya açıklaması.

ResponseHeader

Sunucudan gönderilen tüm yanıtlarda tanımlanan başlık nesnesi.

JSON gösterimi
{
  "responseTimestamp": string
}
Alanlar
responseTimestamp

string (int64 format)

ZORUNLU: Bu yanıtın, dönemden bu yana geçen milisaniye cinsinden temsil edilen zaman damgasıdır. Alıcı, bu zaman damgasının ± 60 sn. "şimdi" olduğunu doğrulamalıdır.

GetOrderDetailsResultCode

getOrderDetails yöntem çağrısının sonucu.

Sıralamalar
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Bu varsayılan değeri asla ayarlamayın.
SUCCESS Sipariş bulundu ve iade edildi.
ORDER_CANNOT_BE_RETURNED

İstenen mevcut sipariş, ancak iade edilemez. Nedenler arasında, sahibinin talebi üzerine mahkeme emrinin kaldırıldığı durumlar yer alır.

PAYMENT_TOO_OLD İstenen ödeme bulundu, ancak ödemenin tarihi nedeniyle sipariş ayrıntıları sağlanmadı.
PAYMENT_NOT_FOUND İstenen ödeme bulunamadı.
NO_ADDITIONAL_DETAILS İstenen ödeme bulundu, ancak sipariş ayrıntıları yok.

Sipariş

Siparişle ilgili bilgiler.

JSON gösterimi
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Alanlar
timestamp

string (int64 format)

İSTEĞE BAĞLI: Siparişin verildiği zamanı gösteren zaman damgası. Zaman damgasından bu yana geçen milisaniye cinsinden belirtilir. Tüm sipariş türleri için kullanılamaz.

orderId

string

İSTEĞE BAĞLI: Bu siparişi benzersiz şekilde tanımlayan bir dize. Tüm sipariş türleri için kullanılamaz.

currencyCode

string

İSTEĞE BAĞLI: Bu siparişteki tüm tutarlar için ISO 4217 3 harfli para birimi kodu. Tüm sipariş türleri için kullanılamaz.

subTotalAmount

string (Int64Value format)

İSTEĞE BAĞLI: Bu siparişin vergi öncesi toplam tutarı. order.currencyCode ile belirtilen para biriminin mikroları olarak gösterilir. Bu değer SUM(items.totalPrice) değerine eşit. Tüm sipariş türleri için kullanılamaz.

totalAmount

string (Int64Value format)

İSTEĞE BAĞLI: Bu siparişin vergi dahil toplam tutarı. order.currencyCode ile belirtilen para biriminin mikroları olarak gösterilir. Bu değer subTotalAmount + SUM(taxes.amount) değerine eşit. Tüm sipariş türleri için kullanılamaz.

items[]

object (Item)

ZORUNLU: Bu siparişin bir parçası olan öğelerin listesi.

taxes[]

object (Tax)

İSTEĞE BAĞLI: Bu siparişin bir parçası olan vergilerin listesi.

Öğe

Siparişteki bir öğeyle ilgili bilgiler.

JSON gösterimi
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Alanlar
description

string

İSTEĞE BAĞLI: Satın alınan öğenin açıklaması. Tüm sipariş türleri için kullanılamaz.

merchant

string

ZORUNLU: Öğenin satıcısı, sanatçısı veya üreticisi.

quantity

string (Int64Value format)

İSTEĞE BAĞLI: Bu öğenin sipariş edilen miktar.

Tam sayı miktarları ürün için geçerli değilse bu alan atlanır (örneğin, sayaçlı ürünlerin kesirli miktarları olabilir).

totalPrice

string (Int64Value format)

İSTEĞE BAĞLI: Bu öğenin, order.currencyCode ile belirtilen para biriminin mikroları olarak gösterilen toplam fiyatıdır. quantity doldurulursa tüm miktarın toplam fiyatını yansıtır. Tüm sipariş türleri için kullanılamaz.

googleProductName

string

ZORUNLU: Öğeyle ilgili Google ürün hizmetinin adı.

Vergi

Bu sipariş için geçerli olan vergiyle ilgili bilgiler.

JSON gösterimi
{
  "description": string,
  "amount": string
}
Alanlar
description

string

ZORUNLU: Vergiyle ilgili açıklama.

amount

string (Int64Value format)

ZORUNLU: order.currencyCode ile belirtilen para biriminin mikroları olarak ifade edilen vergi tutarı.