Method: captureResultNotification

capture veya asynchronousCapture yöntem çağrısı yapıldıktan sonra yakalamanın sonucunu Google'a bildirin.

captureResult değeri, bu captureRequestId için ihtiyatlı olduğundan değeri, bu yönteme yapılacak sonraki bir çağrıyla değiştirilemez.

Uç nokta, isteği işlerken bir hatayla karşılaşırsa bu uç noktadan gelen yanıt ErrorResponse türünde olur.

Bu yöntem HTTP 200 döndürmezse bu sorguya verilen yanıtlar boş olabilir. Açık açıklamaya sahip bir ErrorResponse, saldırganların diğer entegratörlerin ödeme entegrasyon hesap tanımlayıcılarını anlamasına yardımcı olmak için kullanılabileceği durumlarda yanıt gövdesi boştur. İmzalama anahtarının eşleşmediği, ödeme entegratörü tanımlayıcısının bulunamadığı veya şifreleme anahtarının bilinmediği durumlarda bu yöntem, gövdesi boş bir HTTP 404 döndürür. İstek imzası doğrulanabilirse yanıt gövdesinde hatayla ilgili ek bilgiler döndürülür.

Örnek istek:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

Örnek bir yanıt aşağıdaki gibidir:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

HTTP isteği

POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID

İstek içeriği

İstek gövdesi, aşağıdaki yapıya sahip verileri içerir:

JSON gösterimi
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
Alanlar
requestHeader

object (RequestHeader)

ZORUNLU: Tüm istekler için ortak başlık.

paymentIntegratorAccountId

string

ZORUNLU: Yakalamanın gerçekleştiği ödeme entegratörü hesap kimliği.

captureRequestId

string

ZORUNLU: Bu işlem için benzersiz bir tanımlayıcı. Bu, isteğin ilişkilendirildiği capture veya asynchronousCapture çağrısı sırasında Google tarafından oluşturulan requestId öğesidir.

Bu dize, en fazla 100 karakter uzunluğunda olabilir ve sadece "a-z", "A-Z", "0-9", ":", "-" ve "_" karakterlerini içerir.

captureResult

object (CaptureResult)

ZORUNLU: Bu yakalamanın sonucu.

paymentIntegratorTransactionId

string

İSTEĞE BAĞLI: Bu tanımlayıcı, entegratöre özeldir ve entegratör tarafından oluşturulur. Bu, entegrasyon uzmanının bu işlemi bildiği tanımlayıcıdır.

Kolaylık sağlaması açısından bu tanımlayıcı, havale ayrıntılarında belirtilmiştir

Yanıt gövdesi

captureResultNotification yöntemi için yanıt nesnesi.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
Alanlar
responseHeader

object (ResponseHeader)

ZORUNLU: Tüm yanıtlar için ortak başlık.

result

enum (CaptureResultNotificationResultCode)

ZORUNLU: Bu çağrının sonucu.

CaptureResult

Bir yakalamanın nihai sonucuyla ilgili bilgiler.

JSON gösterimi
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
Alanlar
captureResultCode

enum (CaptureResultCode)

ZORUNLU: Bu yakalamanın sonuç kodu.

rawResult

object (RawResult)

İSTEĞE BAĞLI: Bu yakalamanın ham sonucu. Google'ın risk motorunu ve analizlerini bilgilendirmek için kullanılır. Reddetme kodu eşleme durumlarında veriler bazen kaybolur. Entegratör, Google'a ham kod vermeyi tercih edebilir. Örneğin, bir kredi kartı ağ geçidi (entegratör) bu alanı, VISA ağından alınan ret kodunu tam olarak Google'a iletmek için kullanabilir. Bu durumda, scope "vize" olacaktır rawCode, VISA ağının döndürdüğü değer olacaktır.

result, SUCCESS değilse bu değer zorunludur.

Birleştirme alanı FailureDetail.

FailureDetail şunlardan yalnızca biri olabilir:

transactionMaxLimit

string (Int64Value format)

İSTEĞE BAĞLI: captureResultCode CHARGE_EXCEEDS_TRANSACTION_LIMIT ise bu, izin verilen maksimum işlemin değeridir. Bu özellik, kullanıcıya yönelik yapılandırılmış mesajlar ve reddetme oranı analizi için kullanılır.

Bu tutar, orijinal capture veya asynchronousCapture yöntem çağrısıyla aynı currencyCode değerinin mikrolarıdır.

transactionMinLimit

string (Int64Value format)

İSTEĞE BAĞLI: captureResultCode CHARGE_UNDER_TRANSACTION_LIMIT ise bu, izin verilen minimum işlemin değeridir. Bu özellik, kullanıcıya yönelik yapılandırılmış mesajlar ve reddetme oranı analizi için kullanılır.

Bu tutar, orijinal capture veya asynchronousCapture yöntem çağrısıyla aynı currencyCode değerinin mikrolarıdır.

currentBalance

string (Int64Value format)

İSTEĞE BAĞLI: Sonuç INSUFFICIENT_FUNDS ise bu, kullanıcının hesabındaki geçerli bakiyedir (mikro cinsinden). Bu, kullanıcılara yönelik yapılandırılmış mesajlar için kullanılır.

Bu değer, istekteki currencyCode ile aynı para biriminde olmalıdır.

CaptureResultCode

Bir yakalama için sonuç kodları.

Sıralamalar
UNKNOWN_RESULT Bu varsayılan değeri asla ayarlamayın.
SUCCESS Yakalama başarılı.
CHARGE_UNDER_TRANSACTION_LIMIT İstenen yakalama tutarı, entegrasyon uzmanının işlem başına minimum tutarı karşılamıyor. Bu kod kullanılıyorsa kullanıcı mesajları için transactionMinLimit alanını minimum işlem tutarıyla doldurun.
CHARGE_EXCEEDS_TRANSACTION_LIMIT İstenen yakalama tutarı, entegrasyon uzmanının işlem başına maksimum sınırını aşıyor. Bu kod kullanılıyorsa kullanıcı mesajlaşması için transactionMaxLimit alanını işlem sınırıyla doldurun.
CHARGE_EXCEEDS_DAILY_LIMIT Kullanıcının hesabı, günlük sınırı aştığından şu anda satın alma işlemlerinde kullanılamıyor.
CHARGE_EXCEEDS_MONTHLY_LIMIT Kullanıcının hesabı, aylık sınırı aştığından şu anda satın alma işlemlerinde kullanılamıyor.
INSUFFICIENT_FUNDS Bu hesapta bu yakalamayı garanti edecek yeterli bakiye yok.
SUSPECTED_FRAUD entegrasyon uzmanının bu işlemin sahte olduğundan şüphelenmesi için geçerli bir nedeni var.
ACCOUNT_CLOSED Kullanıcının entegrasyon uzmanındaki hesabı kapatıldı. Bu döndürülen değer, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, yeni bir araç eklemeye zorlanır.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Kullanıcının entegrasyon uzmanındaki hesabı kapatıldı ve şüpheli hesap devralındı. Bu döndürülen değer, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, yeni bir araç eklemeye zorlanır.
ACCOUNT_CLOSED_FRAUD Kullanıcının entegrasyon uzmanındaki hesabı sahtekarlık nedeniyle kapatıldı. Bu döndürülen değer, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, yeni bir araç eklemeye zorlanır.
ACCOUNT_ON_HOLD Kullanıcının hesabı askıya alındı.
OTP_NOT_MATCHED OTP, entegrasyon uzmanının gönderdiği değerle eşleşmedi.
OTP_ALREADY_USED OTP zaten kullanıldı.
CAPTURE_REQUEST_EXPIRED Entegratörün kullanıcının parasını yakalaması çok uzun sürdü. Google bu reddetmeyi nihai bir durum olarak değerlendirir. Bu nedenle entegrasyon uzmanı, kullanıcının bakiyesinin daha sonra yakalanmamasını veya yakalamanın başarılı olması durumunda kullanıcıya otomatik olarak geri ödeme yapılmasını sağlamalıdır.
INVALID_PIN Kullanıcı geçersiz bir PIN sağladı.
OS_LOCK_FAILED Bu ödeme akışı için işletim sistemi kilidi sorgulaması gerekiyor ve kullanıcı cihazın kilidini açamadı.
PIN_ENTRY_ATTEMPTS_EXHAUSTED Bu ödeme akışı için kullanıcı PIN'i girilmesi gerekir. Kullanıcının PIN girişi, yeniden deneme süresinin bitmesine yetecek kadar kez başarısız oldu.
USER_EXITED_PAYMENT_FLOW Kullanıcı, ödeme denemesinin tamamını (OS kilidinden veya PIN giriş ekranından) iptal etti.
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Kullanıcının hesabı, aylık işlem denemesi sınırı aşıldığından şu anda satın alma işlemlerinde kullanılamıyor.
DECLINED_BY_ISSUER

Bu reddetme kodu hiçbir zaman sabit bir durumda kullanılmamalıdır. Bu, entegratör, kullanıcının ödeme aracını veren kuruluştan gelen bilinmeyen bir reddetme koduyla karşılaştığında kullanılacak geçici bir tümünü yakalama kodudur. Bu sonuç kodu, entegrasyon aracı kullanmak için daha uygun bir sonuç kodu belirlerken veya bu spesifikasyona yeni bir sonuç kodu eklenmesiyle ilgili anlaşma yaparken kullanılabilir.

Daha da önemlisi, bu reddetme kodu gerçek bir reddetme tutarıdır. Bu, Google açısından kalıcı bir ret işlemidir. Entegratör bunu iade ederse kartı veren kuruluşun kodunun gerçekte ne anlama geldiğini öğrenmek ve kodun SUCCESS anlamında olduğu ortaya çıkarsa kullanıcıya geri ödeme yapmak ona kalmıştır.

Bu reddetme kodu, aynı temel reddetme kodu için belirli sayıda günden uzun süre kullanılırsa Google bu kodu bir hata olarak değerlendirir ve hataların düzeltilmesiyle ilgili sözleşmeden doğan cezalar doğrultusunda kodu takip eder.

RawResult

Ham sonuç nesnesi.

JSON gösterimi
{
  "scope": string,
  "rawCode": string
}
Alanlar
scope

string

İSTEĞE BAĞLI: RAWCode'un kapsamı boş olabilir.

rawCode

string

ZORUNLU: Entegratörden veya içindeki alt sistemlerden alınan ham kod.

CaptureResultNotificationResultCode

captureResultNotification yöntemi için sonuç kodları.

Sıralamalar
UNKNOWN_RESULT Bu varsayılan değeri asla ayarlamayın.
SUCCESS Yakalama sonucu bildirimi başarıyla işlendi.