Method: getOrderDetails

รับคำสั่งซื้อซึ่งเป็นข้อมูลพื้นฐานให้กับพาร์ทเนอร์ของ Google ในการเรียกเก็บเงินผู้ใช้ปลายทาง

หากปลายทางพบข้อผิดพลาดขณะประมวลผลคำขอ การตอบกลับจากปลายทางนี้จะเป็นประเภท ErrorResponse

การตอบสนองต่อการค้นหานี้อาจว่างเปล่าหากวิธีนี้ไม่แสดงผล HTTP 200 เนื้อหาการตอบสนองจะว่างเปล่าในกรณีที่อาจใช้ ErrorResponse ที่มีคำอธิบายที่ชัดเจนเพื่อช่วยให้ผู้โจมตีเข้าใจตัวระบุบัญชีของผู้รวมระบบการชำระเงินรายอื่น ในสถานการณ์เหล่านี้ ในกรณีที่คีย์ Signing ไม่ตรงกัน ไม่พบตัวระบุผู้ผสานการชำระเงิน หรือไม่ทราบคีย์การเข้ารหัส วิธีนี้จะส่งกลับ HTTP 404 พร้อมเนื้อหาว่างเปล่า หากยืนยันลายเซ็นคำขอได้ ระบบจะแสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดในเนื้อหาการตอบกลับ

ตัวอย่างคำขอมีลักษณะดังนี้


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

ตัวอย่างคำตอบจะมีลักษณะดังนี้


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

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

เนื้อหาของคำขอ

เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
ช่อง
requestHeader

object (RequestHeader)

ต้องระบุ: ส่วนหัวทั่วไปสำหรับคำขอทั้งหมด

paymentIntegratorAccountId

string

ต้องระบุ: ตัวระบุบัญชีผู้ผสานรวมการชำระเงินซึ่งระบุผู้โทรและข้อจำกัดทางสัญญาที่เกี่ยวข้องสำหรับการโต้ตอบนี้

orderLookupCriteria

object (OrderLookupCriteria)

ต้องระบุ: เกณฑ์ที่ระบุลำดับที่จะค้นหา

requestOriginator

object (RequestOriginator)

ไม่บังคับ: ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กรที่สร้างคำขอนี้ (หากผู้ผสานการทำงานโทรหาเราในนามขององค์กรอื่น)

เนื้อหาการตอบกลับ

เปย์โหลดการตอบกลับสำหรับเมธอด getOrderDetails

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
ช่อง
responseHeader

object (ResponseHeader)

ต้องระบุ: ส่วนหัวทั่วไปของคำตอบทั้งหมด

result

enum (GetOrderDetailsResultCode)

ต้องระบุ: ผลของการโทรนี้

order

object (Order)

ไม่บังคับ: ข้อมูลเกี่ยวกับคำสั่งซื้อที่มีการชำระเงิน (แสดงเมื่อ result สำเร็จเท่านั้น)

RequestHeader

ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในคำขอทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์

การแสดง JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
ช่อง
requestId

string

ต้องระบุ: ตัวระบุที่ไม่ซ้ำกันของคำขอนี้

โดยเป็นสตริงที่มีความยาวสูงสุด 100 อักขระ และมีเฉพาะอักขระ "a-z", "A-Z", "0-9", ":", "-" และ "_" เท่านั้น

requestTimestamp

string (int64 format)

ต้องระบุ: การประทับเวลาของคำขอนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้" การประทับเวลาของคำขอนี้ไม่ได้ระบุตัวตนเมื่อลองใหม่

userLocale
(deprecated)

string

เลิกใช้งานแล้ว: รหัสภาษา ISO 639-2 Alpha 3 แบบ 2 หรือ 3 ตัวอักษร (ไม่บังคับ) ตามด้วยขีดกลางและรหัสประเทศตามมาตรฐาน ISO 3166-1 Alpha-2 เช่น "pt", "pt-BR", "fil" หรือ "fil-PH" ใช้ข้อมูลนี้เพื่อช่วยเพิ่มฟิลด์ userMessage ในคำตอบ

protocolVersion

object (Version)

ต้องระบุ: เวอร์ชันของคำขอนี้

เวอร์ชัน

ออบเจ็กต์เวอร์ชัน ซึ่งเป็นรูปแบบที่มีโครงสร้างของโครงสร้างเวอร์ชัน a.b.c คลาสสิก เวอร์ชันหลักๆ ของหมายเลขเดียวกันรับประกันว่าจะใช้งานร่วมกันได้ โปรดทราบว่าการแก้ไขเล็กน้อยและการแก้ไขอาจเปลี่ยนแปลงได้บ่อยครั้งโดยไม่ต้องแจ้งให้ทราบ ผู้ผสานรวมระบบต้องรองรับคำขอทั้งหมดสำหรับเวอร์ชันหลักเดียวกัน

การแสดง JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
ช่อง
major

integer

ต้องระบุ: เวอร์ชันหลัก ส่วนนี้ทำเครื่องหมายไว้สำหรับคำขอความเข้ากันได้กับเวอร์ชันต่างๆ เราไม่รับประกันว่าจะใช้งานร่วมกันได้

minor

integer

ต้องระบุ: เวอร์ชันย่อย นี่เป็นการแก้ไขข้อบกพร่องที่สำคัญ

revision

integer

ต้องระบุ: เวอร์ชันย่อย ข้อความนี้เป็นการแก้ไขข้อบกพร่องเล็กๆ น้อยๆ

OrderLookupCriteria

เกณฑ์การค้นหาคำสั่งซื้อ

การแสดง 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.
}
ช่อง

ช่องการรวม criteria

criteria ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

dcb3CorrelationId

string

ค้นหาตามรหัสความสัมพันธ์ DCB ที่ Google สร้างขึ้นซึ่งระบุการชำระเงินโดยไม่ซ้ำกัน ค่านี้สร้างขึ้นโดย Google และส่งไปยังผู้รวมการชำระเงินการเรียกเก็บเงินผ่านผู้ให้บริการเครือข่ายมือถือระหว่างการโทรตรวจสอบสิทธิ์

arnCriteria

object (ArnCriteria)

ค้นหาตามหมายเลขอ้างอิงผู้รับ (ARN)

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

ค้นหาตามหมายเลขอ้างอิงธุรกรรมของ Google

ArnCriteria

เกณฑ์การค้นหาการชำระเงินตามหมายเลขอ้างอิงผู้รับ (ARN)

การแสดง JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
ช่อง
acquirerReferenceNumber

string

ต้องระบุ: หมายเลขอ้างอิงผู้รับ (ARN) ที่ระบุการชำระเงินโดยไม่ซ้ำกัน ต้องมีความยาว 23 หลัก

authorizationCode

string

ต้องระบุ: รหัสการให้สิทธิ์สำหรับธุรกรรม

GoogleTransactionReferenceNumberCriteria

เกณฑ์การค้นหาการชำระเงินตามหมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้น

การแสดง JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
ช่อง
googleTransactionReferenceNumber

string

ต้องระบุ: หมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้นซึ่งระบุการชำระเงินอย่างไม่ซ้ำกัน

authorizationCode

string

ต้องระบุ: รหัสการให้สิทธิ์สำหรับธุรกรรม

RequestOriginator

ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กรที่เป็นแหล่งที่มาของคำขอนี้ วิธีนี้ช่วยให้ Google ระบุปัญหาหรือการละเมิดและนำการควบคุมไปใช้ได้ในระดับที่ละเอียดกว่า paymentIntegratorAccountId และมีประโยชน์อย่างยิ่งเมื่อผู้โทรเป็นผู้ให้บริการตัวกลางที่ส่งคำขอจากลูกค้าภายนอกหลายราย

การแสดง JSON
{
  "organizationId": string,
  "organizationDescription": string
}
ช่อง
organizationId

string

ต้องระบุ: ตัวระบุของบริษัท องค์กร หรือกลุ่มองค์กรที่เป็นแหล่งที่มาของคำขอนี้ ต้องไม่ซ้ำกันภายใน paymentIntegratorAccountId นี้

organizationDescription

string

ต้องระบุ: ชื่อหรือคำอธิบายที่มนุษย์อ่านได้ขององค์กร ซึ่งสามารถใช้ความสะดวกในการสื่อสารระหว่างพนักงานของ Google และผู้ผสานรวมระบบเกี่ยวกับองค์กรนั้น

ResponseHeader

ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในการตอบกลับทั้งหมดที่ส่งจากเซิร์ฟเวอร์

การแสดง JSON
{
  "responseTimestamp": string
}
ช่อง
responseTimestamp

string (int64 format)

ต้องระบุ: การประทับเวลาของคำตอบนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้"

GetOrderDetailsResultCode

ผลการเรียกเมธอด getOrderDetails

Enum
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN โปรดอย่าตั้งค่าเริ่มต้นนี้
SUCCESS พบคำสั่งซื้อและส่งคืนแล้ว
ORDER_CANNOT_BE_RETURNED

คำสั่งซื้อที่ขอซึ่งมีอยู่ แต่ไม่สามารถส่งคืนได้ ทั้งนี้ สาเหตุรวมถึงกรณีที่คำสั่งซื้อถูกนำออกตามคำขอของเจ้าของ

PAYMENT_TOO_OLD พบการชำระเงินที่ร้องขอ แต่ไม่ได้ระบุรายละเอียดคำสั่งซื้อเนื่องจากอายุการชำระเงิน
PAYMENT_NOT_FOUND ไม่พบการชำระเงินตามที่ระบุ
NO_ADDITIONAL_DETAILS พบการชำระเงินที่ร้องขอแต่ไม่มีรายละเอียดคำสั่งซื้อ

สั่งซื้อ

ข้อมูลเกี่ยวกับคำสั่งซื้อ

การแสดง JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
ช่อง
timestamp

string (int64 format)

ไม่บังคับ: การประทับเวลาที่สร้างคำสั่งซื้อ ซึ่งแสดงเป็นมิลลิวินาทีนับตั้งแต่ Epoch ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

orderId

string

ไม่บังคับ: สตริงที่ระบุคำสั่งซื้อนี้โดยไม่ซ้ำกัน ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

currencyCode

string

ไม่บังคับ: รหัสสกุลเงิน 3 ตัวอักษรตามมาตรฐาน ISO 4217 สำหรับจำนวนเงินทั้งหมดในคำสั่งซื้อนี้ ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

subTotalAmount

string (Int64Value format)

ไม่บังคับ: จำนวนเงินรวมของคำสั่งซื้อนี้ไม่รวมภาษี แสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน order.currencyCode ซึ่งเท่ากับ SUM(items.totalPrice) ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

totalAmount

string (Int64Value format)

ไม่บังคับ: จำนวนเงินรวมของคำสั่งซื้อนี้รวมภาษี โดยแสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน order.currencyCode ซึ่งเท่ากับ subTotalAmount + SUM(taxes.amount) ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

items[]

object (Item)

ต้องระบุ: รายการที่เป็นส่วนหนึ่งของคำสั่งซื้อนี้

taxes[]

object (Tax)

ไม่บังคับ: รายการภาษีที่เป็นส่วนหนึ่งของคำสั่งซื้อนี้

รายการ

ข้อมูลเกี่ยวกับสินค้าในคำสั่งซื้อ

การแสดง JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
ช่อง
description

string

ไม่บังคับ: รายละเอียดของสินค้าที่ซื้อ ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

merchant

string

ต้องระบุ: ผู้ขาย ศิลปิน หรือผู้สร้างสินค้า

quantity

string (Int64Value format)

ไม่บังคับ: จำนวนที่สั่งซื้อของสินค้านี้

ระบบจะละเว้นช่องนี้หากจำนวนจำนวนเต็มใช้ไม่ได้กับผลิตภัณฑ์ (ผลิตภัณฑ์ที่มีการตรวจวัดอาจมีจำนวนที่เป็นเศษส่วน เป็นต้น)

totalPrice

string (Int64Value format)

ไม่บังคับ: ราคารวมของรายการนี้ แสดงเป็นไมโครของสกุลเงินที่ระบุใน order.currencyCode หากมีการป้อนข้อมูล quantity ไว้ ตัวเลขนี้จะแสดงราคารวมของจำนวนทั้งหมด ใช้ไม่ได้กับคำสั่งซื้อบางประเภท

googleProductName

string

ต้องระบุ: ชื่อบริการผลิตภัณฑ์ Google สำหรับสินค้า

ภาษี

ข้อมูลเกี่ยวกับภาษีที่ใช้กับคำสั่งซื้อนี้

การแสดง JSON
{
  "description": string,
  "amount": string
}
ช่อง
description

string

ต้องระบุ: คำอธิบายภาษี

amount

string (Int64Value format)

ต้องระบุ: จำนวนภาษีซึ่งแสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน order.currencyCode