Method: externaltransactions.refundexternaltransaction

คืนเงินหรือคืนเงินบางส่วนสำหรับการทำธุรกรรมภายนอกที่มีอยู่

คำขอ HTTP

POST https://androidpublisher.googleapis.com/androidpublisher/v3/{name=applications/*/externalTransactions/*}:refund

URL ใช้ไวยากรณ์การแปลงรหัส gRPC

พารามิเตอร์เส้นทาง

พารามิเตอร์
name

string

ต้องระบุ ชื่อของการทำธุรกรรมภายนอกที่จะคืนเงิน รูปแบบ: applications/{packageName}/externalTransactions/{externalTransaction}

เนื้อหาคำขอ

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

การแสดง JSON
{
  "refundTime": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "partialRefund": {
    object (PartialRefund)
  },
  "fullRefund": {
    object (FullRefund)
  }
  // End of mutually exclusive fields.
}
ช่อง
refundTime

string (Timestamp format)

ต้องระบุ เวลาที่คืนเงินสำหรับการทำธุรกรรม

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

ต้องระบุ ประเภทการคืนเงินสำหรับการทำธุรกรรมภายนอก รายการต่อไปนี้คือรายการช่องที่ใช้ร่วมกันไม่ได้ ระบบจะตั้งค่าช่องอย่างน้อย 1 ช่องในการตอบกลับ
partialRefund

object (PartialRefund)

การคืนเงินบางส่วน

fullRefund

object (FullRefund)

การคืนเงินเต็มจำนวน

สิ้นสุดช่องที่ใช้ร่วมกันไม่ได้

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

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ ExternalTransaction

ตัวอย่าง

ตัวอย่างคำขอมีดังนี้

curl \
  -X POST \
  'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/externalTransactions/foo:refund' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  -H 'Content-Type: application/json' \
  -d '{ \
    "partialRefund": { \
      "refundId": "my_refund_id", \
      "refundPreTaxAmount": { \
        "currency": "USD", \
        "priceMicros": "10120000" \
      } \
    }, \
    "refundTime": "2023-10-20T16:43:32.852Z" \
  }'

ตัวอย่างการตอบกลับมีดังนี้

{
  "externalTransactionId": "1234567890123456789012345678901234567890123456789012345678901234",
  "originalPreTaxAmount": {
    "currency": "USD",
    "priceMicros": "1990000"
  },
  "originalTaxAmount": {
    "currency": "USD",
    "priceMicros": "11400000"
  },
  "packageName": "com.example.app",
  "transactionState": "TRANSACTION_CANCELED",
  "transactionTime": "2023-04-01T12:00:00Z",
  "userTaxAddress": {
    "regionCode": "US"
  },
  "createTime": "2023-04-01T11:55:00Z",
  "currentPreTaxAmount": {
    "currency": "USD",
    "priceMicros": "0"
  },
  "currentTaxAmount": {
    "currency": "USD",
    "priceMicros": "0"
  },
  "testPurchase": {},
  "recurringTransaction": {
    "initialExternalTransactionId": "9876543210987654321098765432109876543210987654321098765432109876",
    "externalSubscription": {
      "subscriptionType": "RECURRING"
    }
  }
}

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth ต่อไปนี้

  • https://www.googleapis.com/auth/androidpublisher

PartialRefund

การคืนเงินบางส่วนสำหรับการทำธุรกรรม

การแสดง JSON
{
  "refundId": string,
  "refundPreTaxAmount": {
    object (Price)
  }
}
ช่อง
refundId

string

ต้องระบุ รหัสที่ไม่ซ้ำกันเพื่อแยกความแตกต่างของการคืนเงินบางส่วนนี้ หากการคืนเงินสำเร็จ การคืนเงินครั้งต่อๆ ไปที่มีรหัสเดียวกันจะล้มเหลว ต้องไม่ซ้ำกันในการคืนเงินสำหรับการทำธุรกรรมแต่ละรายการ

refundPreTaxAmount

object (Price)

ต้องระบุ จำนวนเงินก่อนภาษีของการคืนเงินบางส่วน ควรน้อยกว่าจำนวนเงินก่อนภาษีที่เหลืออยู่ของการทำธุรกรรม

FullRefund

ประเภทนี้ไม่มีช่อง

การคืนเงินเต็มจำนวนที่เหลืออยู่ของการทำธุรกรรม