- 资源:Order
 - 状态
 - BuyerAddress
 - OrderDetails
 - LineItem
 - OneTimePurchaseDetails
 - PreorderDetails
 - RentalDetails
 - SubscriptionDetails
 - OfferPhase
 - PaidAppDetails
 - OrderHistory
 - ProcessedEvent
 - CancellationEvent
 - RefundEvent
 - RefundDetails
 - RefundReason
 - PartialRefundEvent
 - 状态
 - PointsDetails
 - 方法
 
资源:订单
Order 资源封装了有关 Google Play 上交易的全面信息。它包含各种属性,可提供有关订单本身、所购商品以及与订单相关的事件历史记录的详细信息。
Orders API 可让您实时访问 Google Play 生态系统中的订单数据。您可以检索一次性订单和周期性订单的详细信息和元数据,包括费用、税费和退款等交易详情,以及订阅的定价阶段等元数据。借助 Orders API,您可以自动执行与订单管理相关的任务,从而减少通过 Play 管理中心进行手动检查的需求。
以下是此 API 的一些应用场景:
实时检索订单数据 - 使用订单 ID 在购买后立即检索订单详情和元数据。
订单更新同步 - 定期同步订单更新,以保持最新的订单信息记录。
注意:
Orders API 调用会计入您的 Play Developer API 配额,该配额默认为每天 20 万,可能不足以同步大量订单历史记录。
每次调用最多可检索 1,000 个订单。建议使用较大的页面大小,以最大限度地减少配额用量。在 Cloud 控制台中查看您的配额,并在需要时申请更多配额。
| JSON 表示法 | 
|---|
{ "lineItems": [ { object (  | 
              
| 字段 | |
|---|---|
lineItems[] | 
                
                   
 构成相应订单的各个订单项。  | 
              
orderId | 
                
                   
 订单 ID。  | 
              
purchaseToken | 
                
                   
 在用户购买订阅或商品时向用户设备提供的令牌。  | 
              
state | 
                
                   
 订单的状态。  | 
              
createTime | 
                
                   
 创建订单的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
lastEventTime | 
                
                   
 订单的最后一个事件的发生时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
buyerAddress | 
                
                   
 用于计算税费的客户地址信息。如果订单的收单商家是 Google,系统将仅显示国家/地区。  | 
              
total | 
                
                   
 在将折扣和税费纳入计算之后,客户最终支付的金额。  | 
              
tax | 
                
                   
 作为相应订单的一部分支付的总税费。  | 
              
orderDetails | 
                
                   
 订单创建时的相关详细信息。  | 
              
orderHistory | 
                
                   
 修改订单的事件的详细信息。  | 
              
developerRevenueInBuyerCurrency | 
                
                   
 此订单的收入(以买家的币种表示),包括部分退款、税费和手续费的扣减金额。Google 会从每笔销售交易的收入中扣除标准交易手续费和第三方费用,包括一些地区的增值税。  | 
              
pointsDetails | 
                
                   
 应用于订单的 Play 积分,包括优惠信息、折扣率和积分价值。  | 
              
州
订单的状态。
| 枚举 | |
|---|---|
STATE_UNSPECIFIED | 
                未指定状态。未使用此值。 | 
PENDING | 
                订单已创建,正在等待处理。 | 
PROCESSED | 
                订单已成功处理。 | 
CANCELED | 
                订单在处理前已被取消。 | 
PENDING_REFUND | 
                所请求的退款正在等待处理。 | 
PARTIALLY_REFUNDED | 
                已退回部分订单款项。 | 
REFUNDED | 
                已退回全额订单款项。 | 
BuyerAddress
用于计算税费的客户地址信息。
| JSON 表示法 | 
|---|
{ "buyerState": string, "buyerCountry": string, "buyerPostcode": string }  | 
              
| 字段 | |
|---|---|
buyerState | 
                
                   
 买家地址所属国家/地区的顶级行政区划。如果订单的收单商家是 Google,此信息将不包含在内。  | 
              
buyerCountry | 
                
                   
 基于 ISO-3166-1 Alpha-2(联合国国家/地区代码)的国家/地区代码,由两个字母组成。  | 
              
buyerPostcode | 
                
                   
 地址中的邮政编码。如果订单的收单商家是 Google,此信息将不包含在内。  | 
              
OrderDetails
订单创建时的相关详细信息。
| JSON 表示法 | 
|---|
{ "taxInclusive": boolean }  | 
              
| 字段 | |
|---|---|
taxInclusive | 
                
                   
 指示定价是否含税。  | 
              
LineItem
订单项的详细信息。
| JSON 表示法 | 
|---|
{ "productTitle": string, "productId": string, "listingPrice": { object (  | 
              
| 字段 | |
|---|---|
productTitle | 
                
                   
 开发者指定的商品名称。以买家的当地语言显示。例如:coins(虚拟货币)、monthly subscription(按月订阅)等。  | 
              
productId | 
                
                   
 所购买商品的 ID 或应用内 SKU(例如:“monthly001”或“com.some.thing.inapp1”)。  | 
              
listingPrice | 
                
                   
 商品在 Play 商店中的标价,可能含税,也可能不含税。不含任何折扣或促销优惠。  | 
              
total | 
                
                   
 在将折扣和税费纳入计算之后,用户为相应订单项支付的总金额。  | 
              
tax | 
                
                   
 用户为相应订单项支付的税费。  | 
              
联合字段  
  | 
              |
oneTimePurchaseDetails | 
                
                   
 一次性购买交易的详细信息。  | 
              
subscriptionDetails | 
                
                   
 订阅购买交易的详细信息。  | 
              
paidAppDetails | 
                
                   
 购买的付费应用的详细信息。  | 
              
OneTimePurchaseDetails
一次性购买交易的详细信息。
| JSON 表示法 | 
|---|
{ "quantity": integer, "offerId": string, "purchaseOptionId": string, "preorderDetails": { object (  | 
              
| 字段 | |
|---|---|
quantity | 
                
                   
 购买的商品的数量(针对购买多件商品的交易)。  | 
              
offerId | 
                
                   
 一次性购买交易的优惠 ID。  | 
              
purchaseOptionId | 
                
                   
 购买选项的 ID。此字段针对购买选项和变体优惠均设置。对于购买选项,此 ID 用于标识购买选项本身。对于变体优惠,此 ID 指的是关联的购买选项,并与 offerId 结合使用来标识变体优惠。  | 
              
preorderDetails | 
                
                   
 预订的详细信息。仅为预订购买交易设置此字段。  | 
              
rentalDetails | 
                
                   
 租借购买交易的详细信息。仅当购买交易为租借交易时才设置此字段。  | 
              
PreorderDetails
此类型没有字段。
预订购买交易的详细信息。
RentalDetails
此类型没有字段。
租赁购买交易的详细信息。
SubscriptionDetails
订阅购买交易的详细信息。
| JSON 表示法 | 
|---|
{
  "basePlanId": string,
  "offerId": string,
  "offerPhase": enum ( | 
              
| 字段 | |
|---|---|
basePlanId | 
                
                   
 订阅的基础方案 ID。  | 
              
offerId | 
                
                   
 当前订阅优惠的优惠 ID。  | 
              
offerPhase | 
                
                   
 相应订单采用的结算周期的定价阶段。  | 
              
servicePeriodStartTime | 
                
                   
 相应订单采用的结算周期的开始时间。这是在处理订单时记录的结算/服务周期开始时间,应仅用于记账目的。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
servicePeriodEndTime | 
                
                   
 相应订单采用的结算周期的结束时间。这是在处理订单时记录的结算/服务周期结束时间,应仅用于记账目的。如需获取订阅服务周期的当前结束时间,请使用 purchases.subscriptionsv2.get。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
OfferPhase
相应订单所对应的使用权期限的定价阶段。
| 枚举 | |
|---|---|
OFFER_PHASE_UNSPECIFIED | 
                未指定优惠阶段。未使用此值。 | 
BASE | 
                订单对应基本价格期间。 | 
INTRODUCTORY | 
                订单对应初次体验价期间。 | 
FREE_TRIAL | 
                订单对应免费试用期。 | 
PaidAppDetails
此类型没有字段。
购买的付费应用的详细信息。
OrderHistory
修改订单的事件的详细信息。
| JSON 表示法 | 
|---|
{ "partialRefundEvents": [ { object (  | 
              
| 字段 | |
|---|---|
partialRefundEvents[] | 
                
                   
 相应订单的部分退款事件的详细信息。  | 
              
processedEvent | 
                
                   
 订单处理时间的详细信息。  | 
              
cancellationEvent | 
                
                   
 订单取消时间的详细信息。  | 
              
refundEvent | 
                
                   
 订单全额退款的详细信息。  | 
              
ProcessedEvent
订单处理时间的详细信息。
| JSON 表示法 | 
|---|
{ "eventTime": string }  | 
              
| 字段 | |
|---|---|
eventTime | 
                
                   
 处理订单的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
CancellationEvent
订单取消时间的详细信息。
| JSON 表示法 | 
|---|
{ "eventTime": string }  | 
              
| 字段 | |
|---|---|
eventTime | 
                
                   
 取消订单的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
RefundEvent
订单全额退款的详细信息。
| JSON 表示法 | 
|---|
{ "eventTime": string, "refundDetails": { object (  | 
              
| 字段 | |
|---|---|
eventTime | 
                
                   
 订单全额退款的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
refundDetails | 
                
                   
 全额退款的详细信息。  | 
              
refundReason | 
                
                   
 订单退款的原因。  | 
              
RefundDetails
部分退款或全额退款的详细信息。
| JSON 表示法 | 
|---|
{ "total": { object (  | 
              
| 字段 | |
|---|---|
total | 
                
                   
 退款总额,包含税费。  | 
              
tax | 
                
                   
 退还的税费金额。  | 
              
RefundReason
订单退款的原因。
| 枚举 | |
|---|---|
REFUND_REASON_UNSPECIFIED | 
                未指定 orders.refund 的原因。未使用此值。 | 
OTHER | 
                订单因此处未列出的其他原因而退款。 | 
CHARGEBACK | 
                订单已退单。 | 
PartialRefundEvent
相应订单的部分退款事件的详细信息。
| JSON 表示法 | 
|---|
{ "createTime": string, "processTime": string, "state": enum (  | 
              
| 字段 | |
|---|---|
createTime | 
                
                   
 创建部分退款的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
processTime | 
                
                   
 处理部分退款的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:  | 
              
state | 
                
                   
 部分退款的状态。  | 
              
refundDetails | 
                
                   
 部分退款的详细信息。  | 
              
州
部分退款的状态。
| 枚举 | |
|---|---|
STATE_UNSPECIFIED | 
                未指定状态。未使用此值。 | 
PENDING | 
                部分退款已创建,但尚未得到处理。 | 
PROCESSED_SUCCESSFULLY | 
                部分退款已成功完成处理。 | 
PointsDetails
与应用于订单的任何 Play 积分相关的详细信息。
| JSON 表示法 | 
|---|
{
  "pointsOfferId": string,
  "pointsCouponValue": {
    object ( | 
              
| 字段 | |
|---|---|
pointsOfferId | 
                
                   
 相应订单所用 Play Points 优惠的唯一 ID。  | 
              
pointsCouponValue | 
                
                   
 Play Points 优惠券的货币价值。这是优惠券提供的折扣,可能不是总金额。仅在已使用 Play Points 优惠券时设置。例如,对于“100 积分兑换 2 美元优惠券”的优惠,此值为 2 美元。  | 
              
pointsDiscountRateMicros | 
                
                   
 Play Points 促销活动可降低的费用百分比。例如,对于 100 积分兑换 2 美元优惠券,此值为 500,000。由于 $2 的估计点数为 200,但实际所需点数 100 是此估计值的 50%,而 50% 的微币值为 500,000。介于 0 和 1,000,000 之间。  | 
              
pointsSpent | 
                
                   
 相应订单中使用的 Play 积分数量。例如,对于“2 美元优惠券,可兑换 100 积分”的优惠,此值为 100。对于与基本优惠叠加的优惠券,这是两者花费的总积分。  | 
              
方法 | 
            |
|---|---|
                
 | 
              获取一系列订单的订单详细信息。 | 
                
 | 
              获取单笔订单的订单详细信息。 | 
                
 | 
              针对用户订阅或应用内购买订单进行退款。 | 
错误代码
此资源的操作会返回以下 HTTP 错误代码:
| 错误代码 | 原因 | 分辨率 | 
|---|---|---|
5xx | 
  Google Play 服务器中的一般错误。 | 请重试您的请求。
     如果问题仍然存在,请与您的 Google Play 客户经理联系,或提交支持请求。 不妨查看 Play 状态信息中心,了解是否存在任何已知的中断。  | 
409 | 
  并发更新错误。
     尝试更新正在更新的对象。例如,通过同时调用 Play 结算库的   | 
  请重试您的请求。 |