Method: captureResultNotification

แจ้ง Google เกี่ยวกับจับภาพหลังจากมีการเรียกใช้เมธอด capture หรือ asynchronousCapture

ค่า captureResult เป็นค่าที่ไม่ซ้ํากันสําหรับ captureRequestId นี้ จึงไม่สามารถเปลี่ยนแปลงค่าในการเรียกครั้งต่อๆ มาได้

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

การตอบกลับการค้นหานี้อาจว่างเปล่าหากวิธีนี้ไม่แสดงผล HTTP 200 เนื้อหาการตอบกลับว่างเปล่าในกรณีที่มีการใช้ 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

ต้องระบุ: ตัวระบุบัญชีของผู้รวมการชําระเงินที่มีการจับภาพ

captureRequestId

string

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

สตริงนี้มีความยาวอักขระได้สูงสุด 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)

ต้องระบุ: ผลจากการโทรนี้

ผลการจับภาพ

ข้อมูลเกี่ยวกับผลสุดท้ายของการเก็บภาพ

การแสดง 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 ตัวอย่างเช่น เกตเวย์บัตรเครดิต (ผู้รวมระบบ) อาจใช้ช่องนี้ในการสื่อสารกับ Google ด้วยรหัสการปฏิเสธที่ได้รับจากเครือข่าย VISA ในกรณีนี้ scope จะเป็น " Visa" และ rawCode จะเป็นอะไรก็ตามที่เครือข่าย VISA แสดงผล

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

ช่อง Union FailureDetail

FailureDetail ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

transactionMaxLimit

string (Int64Value format)

ไม่บังคับ: หาก captureResultCode คือ CHARGE_EXCEEDS_TRANSACTION_LIMIT ค่านี้จะเป็นมูลค่าของธุรกรรมสูงสุดที่อนุญาต ซึ่งใช้สําหรับการวิเคราะห์อัตราการรับส่งข้อความและอัตราการแสดงออกแก่ผู้ใช้

จํานวนเงินนี้คือ ไมโคร ของ currencyCode เดียวกันกับการเรียกเมธอด capture หรือ asynchronousCapture แบบเดิม

transactionMinLimit

string (Int64Value format)

ไม่บังคับ: หาก captureResultCode คือ CHARGE_UNDER_TRANSACTION_LIMIT ค่านี้จะเป็นค่าของธุรกรรมขั้นต่ําที่อนุญาต ซึ่งใช้สําหรับการวิเคราะห์อัตราการรับส่งข้อความและอัตราการแสดงออกแก่ผู้ใช้

จํานวนเงินนี้คือ ไมโคร ของ currencyCode เดียวกันกับการเรียกเมธอด capture หรือ asynchronousCapture แบบเดิม

currentBalance

string (Int64Value format)

ไม่บังคับ: หากผลลัพธ์คือ INSUFFICIENT_FUNDS นี่จะเป็นยอดปัจจุบันที่ใช้ได้ในบัญชีของผู้ใช้ (ใน micros) ซึ่งใช้สําหรับการรับส่งข้อความแบบมีโครงสร้างต่อผู้ใช้

ค่านี้ต้องใช้สกุลเงินเดียวกับ currencyCode ในคําขอ

รหัสผลลัพธ์ capture

รหัสผลลัพธ์สําหรับการบันทึก

Enum
UNKNOWN_RESULT อย่าตั้งค่าเริ่มต้นนี้!
SUCCESS จับภาพสําเร็จแล้ว
CHARGE_UNDER_TRANSACTION_LIMIT มูลค่าการจับภาพที่ขอไม่ตรงกับจํานวนเงินต่อธุรกรรมขั้นต่ําของผู้รวมระบบ หากใช้รหัสนี้ ให้เติมข้อมูลในช่องจํานวนธุรกรรมขั้นต่ํา transactionMinLimit เพื่อวัตถุประสงค์ในการรับส่งข้อความของผู้ใช้
CHARGE_EXCEEDS_TRANSACTION_LIMIT จํานวนเงินที่จับได้เกินกว่าขีดจํากัดต่อธุรกรรมของผู้รวมระบบ หากใช้โค้ดนี้ ให้ใส่ค่าจํากัดธุรกรรมในช่อง transactionMaxLimit เพื่อวัตถุประสงค์ในการรับส่งข้อความของผู้ใช้
CHARGE_EXCEEDS_DAILY_LIMIT ไม่สามารถใช้บัญชีของผู้ใช้สําหรับการซื้อในขณะนี้ เนื่องจากเกินขีดจํากัดรายวัน
CHARGE_EXCEEDS_MONTHLY_LIMIT ไม่สามารถใช้บัญชีของผู้ใช้สําหรับการซื้อในขณะนี้ เนื่องจากเกินขีดจํากัดรายเดือน
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 ขั้นตอนการชําระเงินนี้ต้องมีคําถามในการล็อกระบบปฏิบัติการและผู้ใช้ปลดล็อกอุปกรณ์ไม่สําเร็จ
PIN_ENTRY_ATTEMPTS_EXHAUSTED ขั้นตอนการชําระเงินนี้กําหนดให้ป้อน PIN ของผู้ใช้ ผู้ใช้ป้อน PIN ไม่สําเร็จหลายครั้งจนกว่าจะหมดคําขอ
USER_EXITED_PAYMENT_FLOW ผู้ใช้ยกเลิกการพยายามชําระเงินทั้งหมด (ไม่ว่าจะเป็นการล็อกระบบปฏิบัติการหรือในหน้าจอการป้อน PIN)
MONTHLY_FREQUENCY_LIMIT_EXCEEDED ใช้บัญชีของผู้ใช้สําหรับการซื้อไม่ได้ในขณะนี้เนื่องจากบัญชีนี้เกินขีดจํากัดการพยายามทําธุรกรรมรายเดือน
DECLINED_BY_ISSUER

ไม่ควรใช้รหัสการปฏิเสธนี้ในสถานะคงที่ โดยเป็นโค้ดสําหรับรับทั้งหมดชั่วคราวเมื่อผู้ผสานรวมพบรหัสการปฏิเสธที่ไม่รู้จักจากผู้ออกใบรับรองของผู้ใช้ สามารถใช้โค้ดผลลัพธ์นี้ขณะที่ผู้ผสานรวมกําหนดโค้ดผลลัพธ์ที่เหมาะสมยิ่งขึ้นเพื่อใช้งาน หรือเจรจาการเพิ่มโค้ดผลลัพธ์ใหม่ลงในข้อกําหนดนี้

ที่สําคัญคือรหัสการปฏิเสธนี้เป็นสิ่งที่ปฏิเสธระบบได้จริง โดยเป็นการปฏิเสธอย่างถาวรตราบเท่าที่ Google กังวล หากผู้รวมบริการส่งคืนเนื้อหาให้ ก็จะขึ้นอยู่กับความสามารถของตนที่จะตรวจสอบว่ารหัสของผู้ออกหมายความว่าอะไร และคืนเงินให้กับผู้ใช้ในกรณีที่รหัสนั้นมีความหมายว่า SUCCESS

หากรหัสการปฏิเสธนี้ใช้กับรหัสการปฏิเสธเดียวกันเป็นเวลานานกว่าจํานวนวันที่กําหนดไว้ Google จะถือว่ารหัสนั้นเป็นข้อบกพร่องและติดตามข้อมูลดังกล่าวตามบทลงโทษทางสัญญาเกี่ยวกับการแก้ไขข้อบกพร่อง

ผลดิบ

วัตถุดิบ

การแสดง JSON
{
  "scope": string,
  "rawCode": string
}
ช่อง
scope

string

ไม่บังคับ: ขอบเขตของ RawCode สามารถเว้นว่างไว้ได้

rawCode

string

ต้องระบุ: โค้ดดิบจากผู้รวมหรือระบบย่อยที่อยู่ภายใน

การจับภาพผลการแจ้งเตือนรหัสผลลัพธ์

รหัสผลลัพธ์สําหรับเมธอด captureResultNotification

Enum
UNKNOWN_RESULT อย่าตั้งค่าเริ่มต้นนี้!
SUCCESS ประมวลผลการแจ้งเตือนผลการบันทึกเรียบร้อยแล้ว