Method: refund

การคืนเงินบางส่วนหรือทั้งหมดที่เริ่มต้นผ่าน capture ชุดค่าผสมของ requestId ภายในส่วนหัวและ paymentIntegratorAccountId คือคีย์ idempotency ซึ่งระบุธุรกรรมนี้ได้อย่างไม่ซ้ำกัน

หากปลายทางพบข้อผิดพลาดขณะประมวลผลคำขอ เนื้อหาการตอบกลับจากปลายทางนี้ควรเป็นประเภท ErrorResponse

ตัวอย่างคำขอมีลักษณะดังนี้


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
  "currencyCode": "INR",
  "refundAmount": "208000000"
}

ตัวอย่างคำตอบจะมีลักษณะดังนี้


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "SUCCESS",
  "paymentIntegratorRefundId": "cmVmdW5kIGlkZW50aWZpZXINCg"
}

คำขอ HTTP

POST https://www.integratorhost.example.com/v1/refund

เนื้อหาของคำขอ

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

การแสดง JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
ช่อง
requestHeader

object (RequestHeader)

ต้องระบุ: ส่วนหัวทั่วไปสำหรับคำขอทั้งหมด

paymentIntegratorAccountId

string

ต้องระบุ: รหัสบัญชีผู้รวมการชำระเงินที่กำหนดข้อจำกัดทางสัญญาเกี่ยวกับธุรกรรมนี้

captureRequestId

string

ต้องระบุ: ตัวระบุที่ไม่ซ้ำกันสำหรับธุรกรรมนี้ นี่คือ requestId ที่ Google สร้างขึ้นระหว่างการโทร capture ซึ่งเกี่ยวข้องกับคำขอนี้

currencyCode

string

ต้องระบุ: รหัสสกุลเงิน 3 ตัวอักษรตามมาตรฐาน ISO 4217

refundAmount

string (Int64Value format)

ต้องระบุ: จำนวนเงินที่คืน จำนวนบวกเป็นไมโครของหน่วยสกุลเงิน

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

ออบเจ็กต์การตอบกลับสำหรับวิธีการรับเงินคืน

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

การแสดง JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
ช่อง
responseHeader

object (ResponseHeader)

ต้องระบุ: ส่วนหัวทั่วไปของคำตอบทั้งหมด

paymentIntegratorRefundId

string

ไม่บังคับ: ตัวระบุนี้ใช้เฉพาะกับผู้ผสานการทำงานและสร้างขึ้นโดยผู้ผสานรวมระบบ ข้อมูลนี้เป็นตัวระบุที่ผู้รวมระบบทราบการคืนเงินนี้

ตัวระบุนี้จะรวมอยู่ในรายละเอียดการส่งเงินเพื่อความสะดวก

result

enum (RefundResultCode)

ต้องระบุ: ผลลัพธ์ของการคืนเงินนี้

rawResult

object (RawResult)

ไม่บังคับ: ผลดิบของการคืนเงินนี้ ใช้เพื่อให้ข้อมูลแก่เครื่องมือวิเคราะห์และความเสี่ยงของ Google ในสถานการณ์ที่มีการแมปโค้ดที่ถูกปฏิเสธ ข้อมูลอาจสูญหายในบางครั้ง ผู้ผสานรวมระบบสามารถเลือกให้โค้ดดิบแก่ Google ได้ เช่น เกตเวย์บัตรเครดิต (ผู้รวมบริการ) อาจใช้ช่องนี้เพื่อสื่อสารกับ Google เกี่ยวกับรหัสการปฏิเสธที่ถูกต้องที่ได้รับจากเครือข่าย VISA ในกรณีนี้ scope จะเป็น "visa" และ rawCode จะเป็นอะไรก็ได้ที่เครือข่าย VISA ส่งคืน

ต้องระบุค่านี้หาก result ไม่ใช่ SUCCESS

RefundResultCode

รหัสผลลัพธ์ที่ไม่ซ้ำกันจะคืนเงิน

Enum
UNKNOWN_RESULT โปรดอย่าตั้งค่าเริ่มต้นนี้
SUCCESS คืนเงินสำเร็จ
NO_MONEY_LEFT_ON_TRANSACTION v1.refund ล้มเหลว ไม่มีเงินเหลืออยู่ในธุรกรรมนี้ ซึ่งมักเป็นข้อบกพร่องระหว่างผู้รวมระบบและ Google Google ไม่ควรขอคืนเงินมากกว่าจำนวนเงินที่หักในตอนแรก
ACCOUNT_CLOSED

ปิดบัญชีที่ระงับไว้กับผู้ผสานรวมแล้ว

การแสดงค่านี้จะทำให้เครื่องมือของผู้ใช้ปิดด้วย Google ระบบจะบังคับให้ผู้ใช้เพิ่มเครื่องมือใหม่โดยทำตามขั้นตอนการเชื่อมโยงอีกครั้ง

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

มีการปิดบัญชีผู้ใช้ที่มีผู้รวมระบบแล้ว บัญชีที่ต้องสงสัยจะเข้าควบคุม

การแสดงค่านี้จะทำให้เครื่องมือของผู้ใช้ปิดด้วย Google ระบบจะบังคับให้ผู้ใช้เพิ่มเครื่องมือใหม่โดยทำตามขั้นตอนการเชื่อมโยงอีกครั้ง

ACCOUNT_CLOSED_FRAUD

บัญชีของผู้ใช้ที่ไว้กับผู้รวมระบบถูกปิดเนื่องจากการประพฤติมิชอบ

การแสดงค่านี้จะทำให้เครื่องมือของผู้ใช้ปิดด้วย Google ระบบจะบังคับให้ผู้ใช้เพิ่มเครื่องมือใหม่โดยทำตามขั้นตอนการเชื่อมโยงอีกครั้ง

ACCOUNT_ON_HOLD ขณะนี้ บัญชีของผู้ใช้ถูกระงับและไม่สามารถรับเงินคืนได้ แต่บัญชีของผู้ใช้สามารถยอมรับการคืนเงินได้ในภายหลัง Google อาจขอเงินคืนอีกครั้งในอนาคต แต่จะดำเนินการดังกล่าวด้วยrequestIdใหม่ ระบบจึงถือว่าคำขอนี้เสร็จสิ้นแล้ว
REFUND_EXCEEDS_MAXIMUM_BALANCE ไม่สามารถประมวลผลการคืนเงินได้ในขณะนี้ เนื่องจากจะทำให้ยอดคงเหลือของผู้ใช้เกินจำนวนสูงสุดที่อนุญาต Google อาจขอเงินคืนอีกครั้งในอนาคต แต่จะดำเนินการดังกล่าวด้วยrequestIdใหม่ ระบบจึงถือว่าคำขอนี้เสร็จสิ้นแล้ว
REFUND_WINDOW_EXCEEDED ไม่สามารถดำเนินการคืนเงินได้เนื่องจากคำขออยู่นอกระยะเวลาการคืนเงินที่อนุญาต