Method: captureResultNotification

capture または asynchronousCapture メソッド呼び出しが行われた後に、キャプチャの結果を Google に通知します。

captureResult 値はこの captureRequestId のべき等であるため、このメソッドの後続の呼び出しで値を変更することはできません。

リクエストの処理中にエンドポイントでエラーが発生した場合、このエンドポイントからのレスポンスは ErrorResponse 型になります。

このメソッドが HTTP 200 を返さない場合、このクエリに対するレスポンスは空になる可能性があります。攻撃者が他のインテグレーターの決済インテグレーターのアカウント ID を攻撃者が理解できるように、明確な説明付きの ErrorResponse を使用できる場合は、レスポンスの本文は空になります。署名鍵が一致しない、決済インテグレータの識別子が見つからない、暗号鍵が不明ななどの状況では、このメソッドは本文が空の HTTP 404 を返します。リクエストの署名が検証できた場合は、エラーに関する追加情報がレスポンスの本文で返されます。

リクエストの例を次に示します。


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

レスポンスの例を次に示します。


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

HTTP リクエスト

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

リクエスト本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
フィールド
requestHeader

object (RequestHeader)

必須: すべてのリクエストに共通のヘッダー。

paymentIntegratorAccountId

string

必須: 回収が発生した決済インテグレータのアカウント ID。

captureRequestId

string

必須: この取引の一意の識別子。これは、このリクエストが関連付けられている capture または asynchronousCapture の呼び出し中に Google によって生成された requestId です。

これは最大 100 文字の文字列で、文字「a ~ z」、「A ~ Z」、「0 ~ 9」、「:」、「-」、「_」のみが含まれます。

captureResult

object (CaptureResult)

必須: このキャプチャの結果。

paymentIntegratorTransactionId

string

省略可: この識別子はインテグレータに固有で、インテグレータによって生成されます。これは、インテグレータがこの取引を把握するための識別子です。

便宜上、この識別子は送金の詳細に含まれています。

レスポンスの本文

captureResultNotification メソッドのレスポンス オブジェクト。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
フィールド
responseHeader

object (ResponseHeader)

必須: すべてのレスポンスに共通のヘッダー。

result

enum (CaptureResultNotificationResultCode)

必須: この呼び出しの結果。

CaptureResult

回収の最終結果に関する情報。

JSON 表現
{
  "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.
}
フィールド
captureResultCode

enum (CaptureResultCode)

必須: このキャプチャの結果コード。

rawResult

object (RawResult)

省略可: このキャプチャの未加工の結果。Google のリスクエンジンと分析への情報提供に使用されます。不承認コードがマッピングされている場合、データが失われることがあります。インテグレータは、Google に未加工のコードを渡すこともできます。たとえば、クレジット カード ゲートウェイ(インテグレータ)は、このフィールドを使用して、VISA ネットワークから受け取った正確な不承認コードを Google に伝えることができます。その場合、scope は「visa」になります。rawCode は、VISA ネットワークから返されたものになります。

resultSUCCESS でない場合、この値は必須です。

共用体フィールド FailureDetail

FailureDetail は次のいずれかになります。

transactionMaxLimit

string (Int64Value format)

省略可: captureResultCodeCHARGE_EXCEEDS_TRANSACTION_LIMIT の場合、これは最大許容トランザクションの値です。これは、構造化されたユーザー向けのメッセージや不承認率の分析に使用されます。

この数値は、元の capture または asynchronousCapture メソッド呼び出しと同じ currencyCode のマイクロになります。

transactionMinLimit

string (Int64Value format)

省略可: captureResultCodeCHARGE_UNDER_TRANSACTION_LIMIT の場合、これは最小許容トランザクションの値です。これは、構造化されたユーザー向けのメッセージや不承認率の分析に使用されます。

この数値は、元の capture または asynchronousCapture メソッド呼び出しと同じ currencyCode のマイクロになります。

currentBalance

string (Int64Value format)

省略可: 結果が INSUFFICIENT_FUNDS の場合、これはユーザーのアカウントの現在の残高(マイクロ単位)です。これは、構造化されたユーザー向けメッセージに使用されます。

この値は、リクエストの currencyCode と同じ通貨である必要があります。

CaptureResultCode

キャプチャの結果コード。

列挙型
UNKNOWN_RESULT このデフォルト値は設定しないでください。
SUCCESS キャプチャが完了しました。
CHARGE_UNDER_TRANSACTION_LIMIT リクエストされた回収金額がインテグレータの 1 回の取引あたりの最小金額を満たしていません。このコードを使用する場合は、ユーザーにメッセージが表示されるように、transactionMinLimit フィールドに最小取引額を入力します。
CHARGE_EXCEEDS_TRANSACTION_LIMIT リクエストされた回収金額が、インテグレータのトランザクションあたりの上限を超えています。このコードを使用する場合は、ユーザーにメッセージが表示されるように、transactionMaxLimit フィールドにトランザクションの上限を入力します。
CHARGE_EXCEEDS_DAILY_LIMIT 1 日の上限を超えているため、ユーザーのアカウントは現在購入に使用できません。
CHARGE_EXCEEDS_MONTHLY_LIMIT 1 か月の上限を超えているため、ユーザーのアカウントは現在購入に使用できません。
INSUFFICIENT_FUNDS このアカウントには、この回収を保証できるだけの十分な資金がありません。
SUSPECTED_FRAUD 事業者はこの取引が不正であると疑う理由があります。
ACCOUNT_CLOSED インテグレータが保持していたユーザーのアカウントが閉鎖されました。この戻り値により、ユーザーの支払い方法が Google でクローズされます。ユーザーは新しい支払い方法を追加せざるを得なくなります。
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER インテグレーターとやり取りしていたユーザーのアカウントは閉鎖されました。アカウントが乗っ取られた疑いがあります。この戻り値により、ユーザーの支払い方法が Google でクローズされます。ユーザーは新しい支払い方法を追加せざるを得なくなります。
ACCOUNT_CLOSED_FRAUD インテグレータが保持しているユーザーのアカウントは、不正行為により閉鎖されました。この戻り値により、ユーザーの支払い方法が Google でクローズされます。ユーザーは新しい支払い方法を追加せざるを得なくなります。
ACCOUNT_ON_HOLD お客様のアカウントは保留中です。
OTP_NOT_MATCHED OTP がインテグレータから送信されたものと一致しない。
OTP_ALREADY_USED OTP はすでに使用されています。
CAPTURE_REQUEST_EXPIRED インテグレータによるユーザーの払い戻しの受け取りに時間がかかりすぎている。Google はこの不承認を最終状態として扱います。そのため、インテグレータは、ユーザーの代金が後で回収されないようにすること、または回収に成功した場合にユーザーに自動的に払い戻しされることを確認する必要があります。
INVALID_PIN ユーザーが無効な PIN を提供しました。
OS_LOCK_FAILED この支払いフローでは OS のロックに関するチャレンジが必要であり、お客様がデバイスのロックを解除できませんでした。
PIN_ENTRY_ATTEMPTS_EXHAUSTED この支払いフローではユーザーの PIN の入力が必要です。PIN の入力に繰り返し失敗する回数が上限に達した。
USER_EXITED_PAYMENT_FLOW お客様が(OS のロックまたは PIN 入力画面のいずれかで)支払いの試みをすべてキャンセルした。
MONTHLY_FREQUENCY_LIMIT_EXCEEDED 1 か月あたりの取引試行回数の上限を超えているため、お客様のアカウントは現在購入に使用できません。
DECLINED_BY_ISSUER

この不承認コードは、定常状態では決して使用しないでください。これは、ユーザーの支払い方法の基盤となる発行元からの不明な不承認コードをインテグレータが受け取った場合に使用する、一時的なキャッチオール コードです。この結果コードは、インテグレータが、使用すべきより適切な結果コードを決定する間、またはこの仕様に新しい結果コードを追加するネゴシエーション中に使用できます。

重要なのは、この不承認コードは本当の不承認であるということです。Google にとっては、恒久的な不承認です。インテグレータがこれを返した場合、カード発行会社のコードが実際に意味するものを特定し、コードが実際に SUCCESS を意味することが判明した場合は、ユーザーに払い戻しを行うかどうかは、インテグレータの責任です。

この不承認コードが、同じ原因となる不承認コードに対して一定の日数以上使用された場合、Google はそれをバグとして扱い、バグの修正に関する契約上の罰則の有無に応じて追跡します。

RawResult

未加工の結果オブジェクト。

JSON 表現
{
  "scope": string,
  "rawCode": string
}
フィールド
scope

string

省略可: rawCode のスコープ。空にすることもできます。

rawCode

string

必須: インテグレータまたは内部のサブシステムからの未加工のコード。

CaptureResultNotificationResultCode

captureResultNotification メソッドの結果コード。

列挙型
UNKNOWN_RESULT このデフォルト値は設定しないでください。
SUCCESS キャプチャ結果通知が正常に処理されました。