- คำขอ HTTP
- เนื้อหาคำขอ
- เนื้อหาการตอบกลับ
- RequestHeader
- เวอร์ชัน
- OrderLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- ResponseHeader
- GetOrderDetailsResultCode
- คำสั่งซื้อ
- รายการ
- ภาษี
รับคำสั่งซื้อซึ่งเป็นข้อมูลพื้นฐานให้กับพาร์ทเนอร์ของ Google ในการเรียกเก็บเงินผู้ใช้ปลายทาง
หากปลายทางพบข้อผิดพลาดขณะประมวลผลคำขอ การตอบกลับจากปลายทางนี้จะเป็นประเภท ErrorResponse
การตอบสนองต่อการค้นหานี้อาจว่างเปล่าหากวิธีนี้ไม่แสดงผล HTTP 200 เนื้อหาการตอบสนองจะว่างเปล่าในกรณีที่อาจใช้ ที่มีคำอธิบายที่ชัดเจนเพื่อช่วยให้ผู้โจมตีเข้าใจตัวระบุบัญชีของผู้รวมระบบการชำระเงินรายอื่น ในสถานการณ์เหล่านี้ ในกรณีที่คีย์ Signing ไม่ตรงกัน ไม่พบตัวระบุผู้ผสานการชำระเงิน หรือไม่ทราบคีย์การเข้ารหัส วิธีนี้จะส่งกลับ HTTP 404 พร้อมเนื้อหาว่างเปล่า หากยืนยันลายเซ็นคำขอได้ ระบบจะแสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดในเนื้อหาการตอบกลับErrorResponse
ตัวอย่างคำขอมีลักษณะดังนี้
{
"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 |
ต้องระบุ: ตัวระบุบัญชีผู้ผสานรวมการชำระเงินซึ่งระบุผู้โทรและข้อจำกัดทางสัญญาที่เกี่ยวข้องสำหรับการโต้ตอบนี้ |
orderLookupCriteria |
ต้องระบุ: เกณฑ์ที่ระบุลำดับที่จะค้นหา |
requestOriginator |
ไม่บังคับ: ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กรที่สร้างคำขอนี้ (หากผู้ผสานการทำงานโทรหาเราในนามขององค์กรอื่น) |
เนื้อหาการตอบกลับ
เปย์โหลดการตอบกลับสำหรับเมธอด getOrderDetails
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
| การแสดง JSON |
|---|
{ "responseHeader": { object ( |
| ช่อง | |
|---|---|
responseHeader |
ต้องระบุ: ส่วนหัวทั่วไปของคำตอบทั้งหมด |
result |
ต้องระบุ: ผลของการโทรนี้ |
order |
ไม่บังคับ: ข้อมูลเกี่ยวกับคำสั่งซื้อที่มีการชำระเงิน (แสดงเมื่อ |
RequestHeader
ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในคำขอทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์
| การแสดง JSON |
|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object ( |
| ช่อง | |
|---|---|
requestId |
ต้องระบุ: ตัวระบุที่ไม่ซ้ำกันของคำขอนี้ โดยเป็นสตริงที่มีความยาวสูงสุด 100 อักขระ และมีเฉพาะอักขระ "a-z", "A-Z", "0-9", ":", "-" และ "_" เท่านั้น |
requestTimestamp |
ต้องระบุ: การประทับเวลาของคำขอนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้" การประทับเวลาของคำขอนี้ไม่ได้ระบุตัวตนเมื่อลองใหม่ |
userLocale |
เลิกใช้งานแล้ว: รหัสภาษา ISO 639-2 Alpha 3 แบบ 2 หรือ 3 ตัวอักษร (ไม่บังคับ) ตามด้วยขีดกลางและรหัสประเทศตามมาตรฐาน ISO 3166-1 Alpha-2 เช่น "pt", "pt-BR", "fil" หรือ "fil-PH" ใช้ข้อมูลนี้เพื่อช่วยเพิ่มฟิลด์ |
protocolVersion |
ต้องระบุ: เวอร์ชันของคำขอนี้ |
เวอร์ชัน
ออบเจ็กต์เวอร์ชัน ซึ่งเป็นรูปแบบที่มีโครงสร้างของโครงสร้างเวอร์ชัน a.b.c คลาสสิก เวอร์ชันหลักๆ ของหมายเลขเดียวกันรับประกันว่าจะใช้งานร่วมกันได้ โปรดทราบว่าการแก้ไขเล็กน้อยและการแก้ไขอาจเปลี่ยนแปลงได้บ่อยครั้งโดยไม่ต้องแจ้งให้ทราบ ผู้ผสานรวมระบบต้องรองรับคำขอทั้งหมดสำหรับเวอร์ชันหลักเดียวกัน
| การแสดง JSON |
|---|
{ "major": integer, "minor": integer, "revision": integer } |
| ช่อง | |
|---|---|
major |
ต้องระบุ: เวอร์ชันหลัก ส่วนนี้ทำเครื่องหมายไว้สำหรับคำขอความเข้ากันได้กับเวอร์ชันต่างๆ เราไม่รับประกันว่าจะใช้งานร่วมกันได้ |
minor |
ต้องระบุ: เวอร์ชันย่อย นี่เป็นการแก้ไขข้อบกพร่องที่สำคัญ |
revision |
ต้องระบุ: เวอร์ชันย่อย ข้อความนี้เป็นการแก้ไขข้อบกพร่องเล็กๆ น้อยๆ |
OrderLookupCriteria
เกณฑ์การค้นหาคำสั่งซื้อ
| การแสดง JSON |
|---|
{ // Union field |
| ช่อง | |
|---|---|
ช่องการรวม
|
|
dcb3CorrelationId |
ค้นหาตามรหัสความสัมพันธ์ DCB ที่ Google สร้างขึ้นซึ่งระบุการชำระเงินโดยไม่ซ้ำกัน ค่านี้สร้างขึ้นโดย Google และส่งไปยังผู้รวมการชำระเงินการเรียกเก็บเงินผ่านผู้ให้บริการเครือข่ายมือถือระหว่างการโทรตรวจสอบสิทธิ์ |
arnCriteria |
ค้นหาตามหมายเลขอ้างอิงผู้รับ (ARN) |
googleTransactionReferenceNumberCriteria |
ค้นหาตามหมายเลขอ้างอิงธุรกรรมของ Google |
ArnCriteria
เกณฑ์การค้นหาการชำระเงินตามหมายเลขอ้างอิงผู้รับ (ARN)
| การแสดง JSON |
|---|
{ "acquirerReferenceNumber": string, "authorizationCode": string } |
| ช่อง | |
|---|---|
acquirerReferenceNumber |
ต้องระบุ: หมายเลขอ้างอิงผู้รับ (ARN) ที่ระบุการชำระเงินโดยไม่ซ้ำกัน ต้องมีความยาว 23 หลัก |
authorizationCode |
ต้องระบุ: รหัสการให้สิทธิ์สำหรับธุรกรรม |
GoogleTransactionReferenceNumberCriteria
เกณฑ์การค้นหาการชำระเงินตามหมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้น
| การแสดง JSON |
|---|
{ "googleTransactionReferenceNumber": string, "authorizationCode": string } |
| ช่อง | |
|---|---|
googleTransactionReferenceNumber |
ต้องระบุ: หมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้นซึ่งระบุการชำระเงินอย่างไม่ซ้ำกัน |
authorizationCode |
ต้องระบุ: รหัสการให้สิทธิ์สำหรับธุรกรรม |
RequestOriginator
ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กรที่เป็นแหล่งที่มาของคำขอนี้ วิธีนี้ช่วยให้ Google ระบุปัญหาหรือการละเมิดและนำการควบคุมไปใช้ได้ในระดับที่ละเอียดกว่า paymentIntegratorAccountId และมีประโยชน์อย่างยิ่งเมื่อผู้โทรเป็นผู้ให้บริการตัวกลางที่ส่งคำขอจากลูกค้าภายนอกหลายราย
| การแสดง JSON |
|---|
{ "organizationId": string, "organizationDescription": string } |
| ช่อง | |
|---|---|
organizationId |
ต้องระบุ: ตัวระบุของบริษัท องค์กร หรือกลุ่มองค์กรที่เป็นแหล่งที่มาของคำขอนี้ ต้องไม่ซ้ำกันภายใน |
organizationDescription |
ต้องระบุ: ชื่อหรือคำอธิบายที่มนุษย์อ่านได้ขององค์กร ซึ่งสามารถใช้ความสะดวกในการสื่อสารระหว่างพนักงานของ Google และผู้ผสานรวมระบบเกี่ยวกับองค์กรนั้น |
ResponseHeader
ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในการตอบกลับทั้งหมดที่ส่งจากเซิร์ฟเวอร์
| การแสดง JSON |
|---|
{ "responseTimestamp": string } |
| ช่อง | |
|---|---|
responseTimestamp |
ต้องระบุ: การประทับเวลาของคำตอบนี้แสดงเป็นมิลลิวินาทีตั้งแต่ 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 ( |
| ช่อง | |
|---|---|
timestamp |
ไม่บังคับ: การประทับเวลาที่สร้างคำสั่งซื้อ ซึ่งแสดงเป็นมิลลิวินาทีนับตั้งแต่ Epoch ใช้ไม่ได้กับคำสั่งซื้อบางประเภท |
orderId |
ไม่บังคับ: สตริงที่ระบุคำสั่งซื้อนี้โดยไม่ซ้ำกัน ใช้ไม่ได้กับคำสั่งซื้อบางประเภท |
currencyCode |
ไม่บังคับ: รหัสสกุลเงิน 3 ตัวอักษรตามมาตรฐาน ISO 4217 สำหรับจำนวนเงินทั้งหมดในคำสั่งซื้อนี้ ใช้ไม่ได้กับคำสั่งซื้อบางประเภท |
subTotalAmount |
ไม่บังคับ: จำนวนเงินรวมของคำสั่งซื้อนี้ไม่รวมภาษี แสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน |
totalAmount |
ไม่บังคับ: จำนวนเงินรวมของคำสั่งซื้อนี้รวมภาษี โดยแสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน |
items[] |
ต้องระบุ: รายการที่เป็นส่วนหนึ่งของคำสั่งซื้อนี้ |
taxes[] |
ไม่บังคับ: รายการภาษีที่เป็นส่วนหนึ่งของคำสั่งซื้อนี้ |
รายการ
ข้อมูลเกี่ยวกับสินค้าในคำสั่งซื้อ
| การแสดง JSON |
|---|
{ "description": string, "merchant": string, "quantity": string, "totalPrice": string, "googleProductName": string } |
| ช่อง | |
|---|---|
description |
ไม่บังคับ: รายละเอียดของสินค้าที่ซื้อ ใช้ไม่ได้กับคำสั่งซื้อบางประเภท |
merchant |
ต้องระบุ: ผู้ขาย ศิลปิน หรือผู้สร้างสินค้า |
quantity |
ไม่บังคับ: จำนวนที่สั่งซื้อของสินค้านี้ ระบบจะละเว้นช่องนี้หากจำนวนจำนวนเต็มใช้ไม่ได้กับผลิตภัณฑ์ (ผลิตภัณฑ์ที่มีการตรวจวัดอาจมีจำนวนที่เป็นเศษส่วน เป็นต้น) |
totalPrice |
ไม่บังคับ: ราคารวมของรายการนี้ แสดงเป็นไมโครของสกุลเงินที่ระบุใน |
googleProductName |
ต้องระบุ: ชื่อบริการผลิตภัณฑ์ Google สำหรับสินค้า |
ภาษี
ข้อมูลเกี่ยวกับภาษีที่ใช้กับคำสั่งซื้อนี้
| การแสดง JSON |
|---|
{ "description": string, "amount": string } |
| ช่อง | |
|---|---|
description |
ต้องระบุ: คำอธิบายภาษี |
amount |
ต้องระบุ: จำนวนภาษีซึ่งแสดงเป็นหน่วยไมโครของสกุลเงินที่ระบุใน |