- HTTP 请求
- 请求正文
- 响应正文
- RequestHeader
- 版本
- OrderLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- ResponseHeader
- GetOrderDetailsResultCode
- 订单
- 单品
- 税费
获取一份订单,以便 Google 合作伙伴根据该订单向最终用户收费。
如果端点在处理请求时遇到错误,来自此端点的响应将是
类型。ErrorResponse
如果此方法未返回 HTTP 200,对此查询的响应可能为空。如果可以使用包含明确说明的
来帮助攻击者了解其他集成商的付款集成商帐号标识符,则响应正文为空。在这些情况下,无论是签名密钥不匹配,未找到付款集成商标识符,或者加密密钥未知,此方法将返回正文为空的 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 |
必需:此请求的时间戳,以自纪元以来的毫秒数表示。接收者应验证此时间戳是否为“现在”的 ± 60 秒。此请求时间戳在重试时不具有幂等性。 |
userLocale |
已弃用:由两个或三个字母组成的 ISO 639-2 Alpha 3 语言代码(可视需要后跟连字符和 ISO 3166-1 Alpha-2 国家/地区代码),例如“pt”“pt-BR”“fil”或“fil-PH”。使用此方法有助于驱动响应中的 |
protocolVersion |
必需:此请求的版本。 |
版本
Version 对象,是经典 a.b.c
版本结构的结构化形式。相同编号的主要版本保证兼容。请注意,次要和修订可能会频繁变动,恕不另行通知。集成商必须支持针对同一主要版本的所有请求。
JSON 表示法 |
---|
{ "major": integer, "minor": integer, "revision": integer } |
字段 | |
---|---|
major |
必需:主要版本。此属性会被标记为不同版本的兼容性请求,但这并不保证兼容。 |
minor |
必需:次要版本。这表示修复了重大问题。 |
revision |
必需:次要版本。表示小的 bug 修复。 |
OrderLookupCriteria
订单查询条件。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段
|
|
dcb3CorrelationId |
根据 Google 生成的唯一标识付款的 DCB 关联 ID 进行查找。此值由 Google 生成,并在 Auth 调用期间发送给运营商结算付款集成商。 |
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
更精细的控制措施。当调用方是来自多个外部客户端的中间服务提供商时,此 API 尤其有用。
JSON 表示法 |
---|
{ "organizationId": string, "organizationDescription": string } |
字段 | |
---|---|
organizationId |
必需:发起此请求的公司、组织或组织群组的标识符。在此 |
organizationDescription |
必需:便于用户阅读的组织名称或说明,便于 Google 员工与该组织集成商之间的沟通。 |
ResponseHeader
从服务器发送的所有响应中定义的标头对象。
JSON 表示法 |
---|
{ "responseTimestamp": string } |
字段 | |
---|---|
responseTimestamp |
必需:此响应的时间戳,以自纪元以来的毫秒数表示。接收者应验证此时间戳是否为“现在”的 ± 60 秒。 |
GetOrderDetailsResultCode
getOrderDetails
方法调用的结果。
枚举 | |
---|---|
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 |
可选:下单时的时间戳(以从公元纪年开始计算的毫秒数表示)。并不适用于所有订单类型。 |
orderId |
可选:唯一标识此订单的字符串。并不适用于所有订单类型。 |
currencyCode |
可选:此订单中所有金额的 ISO 4217 货币代码(由 3 个字母组成)。并不适用于所有订单类型。 |
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 |
必需:税费金额,以 |