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 «ویزا» و rawCode هر چیزی است که شبکه VISA برگرداند.

اگر result SUCCESS نباشد، این مقدار مورد نیاز است.

RefundRefundCode

بازپرداخت کدهای نتیجه منحصر به فرد.

Enums
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 بازپرداخت قابل پردازش نیست زیرا درخواست خارج از دوره مجاز بازپرداخت است.