Method: getOrderDetails

Nhận đơn đặt hàng cung cấp cơ sở cho các đối tác của Google để tính phí người dùng cuối.

Nếu điểm cuối gặp lỗi trong khi xử lý yêu cầu, thì phản hồi từ điểm cuối này sẽ thuộc loại ErrorResponse.

Phản hồi cho truy vấn này có thể trống nếu phương thức này không trả về HTTP 200. Nội dung phản hồi bị trống trong trường hợp ErrorResponse có nội dung mô tả rõ ràng có thể được dùng để giúp kẻ tấn công hiểu được giá trị nhận dạng tài khoản của đối tác tích hợp thanh toán khác. Trong những trường hợp như vậy, khi khoá ký không khớp, không tìm thấy giá trị nhận dạng của trình tích hợp thanh toán hoặc không xác định được khoá mã hoá, thì phương thức này sẽ trả về một HTTP 404 có phần nội dung trống. Nếu chữ ký của yêu cầu có thể được xác minh thì thông tin bổ sung về lỗi sẽ được trả về trong nội dung phản hồi.

Yêu cầu mẫu sẽ có dạng như sau:


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

Câu trả lời mẫu sẽ có dạng như sau:


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

Yêu cầu HTTP

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

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Trường
requestHeader

object (RequestHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các yêu cầu.

paymentIntegratorAccountId

string

BẮT BUỘC: Giá trị nhận dạng tài khoản của đối tác tích hợp thanh toán giúp xác định người gọi và các điều kiện ràng buộc theo hợp đồng có liên quan đối với hoạt động tương tác này.

orderLookupCriteria

object (OrderLookupCriteria)

BẮT BUỘC: Các tiêu chí cho biết thứ tự cần tra cứu.

requestOriginator

object (RequestOriginator)

KHÔNG BẮT BUỘC: Thông tin về tổ chức hoặc nhóm con của tổ chức đưa ra yêu cầu này (nếu đơn vị tích hợp gọi cho chúng tôi thay mặt cho một tổ chức khác).

Nội dung phản hồi

Tải trọng phản hồi cho phương thức getOrderDetails.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Trường
responseHeader

object (ResponseHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả câu trả lời.

result

enum (GetOrderDetailsResultCode)

BẮT BUỘC: Kết quả của cuộc gọi này.

order

object (Order)

KHÔNG BẮT BUỘC: Thông tin về đơn đặt hàng thực hiện thanh toán. (Trình bày khi và chỉ khi result là THÀNH CÔNG.)

RequestHeader

Đối tượng tiêu đề được xác định trên tất cả các yêu cầu gửi đến máy chủ.

Biểu diễn dưới dạng JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Trường
requestId

string

BẮT BUỘC: Giá trị nhận dạng duy nhất của yêu cầu này.

Đây là chuỗi có độ dài tối đa là 100 ký tự và chỉ chứa các ký tự "a-z", "A-Z", "0-9", ":", "-" và "_".

requestTimestamp

string (int64 format)

BẮT BUỘC: Dấu thời gian của yêu cầu này được biểu thị dưới dạng mili giây kể từ thời gian bắt đầu của hệ thống. Trình nhận phải xác minh rằng dấu thời gian này dài 60 giây so với "hiện tại". Dấu thời gian yêu cầu này không đồng đều sau khi thử lại.

userLocale
(deprecated)

string

KHÔNG DÙNG NỮA: Mã ngôn ngữ gồm hai hoặc ba chữ cái theo tiêu chuẩn ISO 639-2 Alpha 3 (không bắt buộc) có dấu gạch nối và mã quốc gia theo ISO 3166-1 Alpha-2, ví dụ: "pt", "pt-BR", "fil" hoặc "fil-PH". Sử dụng mã này để giúp điều khiển các trường userMessage trong phản hồi.

protocolVersion

object (Version)

BẮT BUỘC: Phiên bản của yêu cầu này.

Phiên bản

Đối tượng Version (phiên bản) là một dạng có cấu trúc của cấu trúc phiên bản a.b.c cũ. Các phiên bản chính của cùng một số điện thoại được đảm bảo sẽ tương thích. Xin lưu ý rằng các bản sửa đổi và bản sửa đổi nhỏ có thể thay đổi thường xuyên mà không cần thông báo trước. Trình tích hợp phải hỗ trợ tất cả các yêu cầu cho cùng một phiên bản chính.

Biểu diễn dưới dạng JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Trường
major

integer

BẮT BUỘC: Phiên bản lớn. Giá trị này được đánh dấu cho các yêu cầu về khả năng tương thích với nhiều phiên bản và không đảm bảo sẽ tương thích.

minor

integer

BẮT BUỘC: Phiên bản nhỏ. Điều này cho thấy các bản sửa lỗi quan trọng.

revision

integer

BẮT BUỘC: Phiên bản nhỏ. Điều này biểu thị các bản sửa lỗi nhỏ.

OrderLookupCriteria

Tiêu chí tìm kiếm đơn đặt hàng.

Biểu diễn dưới dạng 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.
}
Trường

Trường kết hợp criteria.

criteria chỉ có thể là một trong những trạng thái sau đây:

dcb3CorrelationId

string

Tra cứu dựa trên mã tương quan DCB do Google tạo để xác định chính xác khoản thanh toán. Giá trị này do Google tạo và được gửi tới đối tác tích hợp thanh toán qua nhà mạng trong cuộc gọi Xác thực.

arnCriteria

object (ArnCriteria)

Tra cứu dựa trên Số tham chiếu của người thu nạp (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Tra cứu dựa trên Số tham chiếu giao dịch của Google.

ArnCriteria

Tiêu chí tra cứu khoản thanh toán dựa trên Số tham chiếu của người thu nạp (ARN).

Biểu diễn dưới dạng JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Trường
acquirerReferenceNumber

string

BẮT BUỘC: Số tham chiếu của người thu nạp (ARN) xác định riêng biệt khoản thanh toán. Phải có 23 chữ số.

authorizationCode

string

BẮT BUỘC: Mã uỷ quyền cho giao dịch.

GoogleTransactionReferenceNumberCriteria

Tiêu chí tra cứu khoản thanh toán dựa trên Số tham chiếu giao dịch do Google tạo.

Biểu diễn dưới dạng JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Trường
googleTransactionReferenceNumber

string

BẮT BUỘC: Số tham chiếu của giao dịch do Google tạo giúp xác định chính xác khoản thanh toán.

authorizationCode

string

BẮT BUỘC: Mã uỷ quyền cho giao dịch.

RequestOriginator

Thông tin về tổ chức hoặc nhóm con tổ chức tạo ra yêu cầu này. Điều này cho phép Google xác định các vấn đề hoặc hành vi sai trái và triển khai các biện pháp kiểm soát ở mức độ chi tiết hơn so với paymentIntegratorAccountId. Phương thức này đặc biệt có giá trị khi phương thức gọi là nhà cung cấp dịch vụ trung gian nhận yêu cầu từ nhiều máy khách bên ngoài.

Biểu diễn dưới dạng JSON
{
  "organizationId": string,
  "organizationDescription": string
}
Trường
organizationId

string

BẮT BUỘC: Giá trị nhận dạng của công ty, tổ chức hoặc nhóm tổ chức phát sinh yêu cầu này. Phải là duy nhất trong paymentIntegratorAccountId này.

organizationDescription

string

BẮT BUỘC: Tên hoặc nội dung mô tả về tổ chức mà con người có thể đọc được, có thể dùng để dễ dàng liên lạc giữa nhân viên của Google và đơn vị tích hợp về tổ chức đó.

ResponseHeader

Đối tượng tiêu đề được xác định trên tất cả các phản hồi gửi từ máy chủ.

Biểu diễn dưới dạng JSON
{
  "responseTimestamp": string
}
Trường
responseTimestamp

string (int64 format)

BẮT BUỘC: Dấu thời gian của phản hồi này được biểu thị dưới dạng mili giây kể từ thời gian bắt đầu của hệ thống. Trình nhận phải xác minh rằng dấu thời gian này dài 60 giây so với "hiện tại".

GetOrderDetailsResultCode

Kết quả của lệnh gọi phương thức getOrderDetails.

Enum
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Đừng bao giờ đặt giá trị mặc định này!
SUCCESS Đơn đặt hàng đã được tìm thấy và bị trả lại.
ORDER_CANNOT_BE_RETURNED

Đơn đặt hàng được yêu cầu đã tồn tại nhưng không thể trả lại. Lý do bao gồm cả trường hợp đơn đặt hàng đã bị xóa theo yêu cầu của chủ sở hữu.

PAYMENT_TOO_OLD Đã tìm thấy khoản thanh toán mà bạn yêu cầu, nhưng thông tin chi tiết về đơn đặt hàng chưa được cung cấp do thời hạn thanh toán.
PAYMENT_NOT_FOUND Không tìm thấy khoản thanh toán được yêu cầu.
NO_ADDITIONAL_DETAILS Đã tìm thấy khoản thanh toán được yêu cầu nhưng không có thông tin chi tiết về đơn đặt hàng.

Đặt

Thông tin về đơn đặt hàng.

Biểu diễn dưới dạng JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Trường
timestamp

string (int64 format)

KHÔNG BẮT BUỘC: Dấu thời gian về thời điểm thực hiện đơn đặt hàng, được biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống. Không áp dụng cho một số loại đơn đặt hàng.

orderId

string

KHÔNG BẮT BUỘC: Chuỗi xác định duy nhất thứ tự này. Không áp dụng cho một số loại đơn đặt hàng.

currencyCode

string

KHÔNG BẮT BUỘC: Mã đơn vị tiền tệ gồm 3 chữ cái theo ISO 4217 cho tất cả số tiền trong đơn đặt hàng này. Không áp dụng cho một số loại đơn đặt hàng.

subTotalAmount

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng số tiền của đơn đặt hàng này trước thuế, được thể hiện dưới dạng một đơn vị tiền tệ được chỉ định bằng order.currencyCode. Giá trị này tương đương với SUM(items.totalPrice). Không áp dụng cho một số loại đơn đặt hàng.

totalAmount

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng số tiền của đơn đặt hàng này bao gồm cả thuế, được thể hiện dưới dạng một đơn vị tiền tệ được quy định trong order.currencyCode. Giá trị này tương đương với subTotalAmount + SUM(taxes.amount). Không áp dụng cho một số loại đơn đặt hàng.

items[]

object (Item)

BẮT BUỘC: Danh sách các mặt hàng thuộc đơn đặt hàng này.

taxes[]

object (Tax)

KHÔNG BẮT BUỘC: Danh sách các khoản thuế thuộc đơn đặt hàng này.

Mục

Thông tin về một mặt hàng trong đơn đặt hàng.

Biểu diễn dưới dạng JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Trường
description

string

KHÔNG BẮT BUỘC: Nội dung mô tả về mặt hàng đã được mua. Không áp dụng cho một số loại đơn đặt hàng.

merchant

string

BẮT BUỘC: Người bán, nghệ sĩ hoặc nhà sản xuất mặt hàng.

quantity

string (Int64Value format)

KHÔNG BẮT BUỘC: Số lượng đã được đặt mua mặt hàng này.

Trường này sẽ bị bỏ qua nếu bạn không thể áp dụng số lượng là số nguyên cho sản phẩm (ví dụ: sản phẩm theo định mức có thể có số lượng dạng phân số).

totalPrice

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng giá của mặt hàng này, được thể hiện dưới dạng đơn vị tiền tệ micrô được chỉ định bằng order.currencyCode. Nếu bạn điền quantity, giá trị này sẽ phản ánh tổng giá của toàn bộ số lượng. Không áp dụng cho một số loại đơn đặt hàng.

googleProductName

string

BẮT BUỘC: Tên dịch vụ sản phẩm của Google dành cho mặt hàng.

Thuế

Thông tin về mức thuế áp dụng cho đơn đặt hàng này.

Biểu diễn dưới dạng JSON
{
  "description": string,
  "amount": string
}
Trường
description

string

BẮT BUỘC: Nội dung mô tả về khoản thuế.

amount

string (Int64Value format)

BẮT BUỘC: Số tiền thuế, được thể hiện dưới dạng một phần triệu của đơn vị tiền tệ được chỉ định bằng order.currencyCode.