Method: card.verifycard

ยืนยันบัตรของผู้ใช้เพื่อดูว่าบัตรถูกต้องหรือไม่

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
    "requestTimestamp": "1481855969503"
  },
  "standardCard": {
    "accountNumber": "4123456789101112",
    "expiryDate": "01/2020",
    "cvn": "123"
  },
  "avsData": {
    "streetAddress": "123 Main St APT #200",
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "countryCode": "US"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1481855970403",
  },
  "cardNetworkResult": {
    "network": "VISA",
    "iso8583Result": "00",
    "rawNetworkResult": "00"
  },
  "avsResult": {
    "rawAvsResult": "B",
    "streetAddress": "MATCH",
    "localityName": "MATCH",
    "administrativeAreaName": "MATCH",
    "postalCodeNumber": "NOT_SENT",
    "countryCode": "SKIPPED"
  },
  "cvnResult": "MATCH"
}

คำขอ HTTP

POST https://card-verification-service.google.com/v1/card/verifycard

URL ใช้ไวยากรณ์การแปลง gRPC

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

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

การแสดง JSON
{
  "requestHeader": {
    object(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
ช่อง
requestHeader

object(RequestHeader)

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

standardCard

object(StandardCard)

ต้องระบุ: ข้อมูลเกี่ยวกับบัตรสำหรับชำระเงินของผู้ใช้

avsData

object(AvsData)

ไม่บังคับ: อีเมลของผู้ใช้ที่จะยืนยันโดย AVS

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

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

ออบเจ็กต์การตอบกลับสำหรับวิธี card.verifycard ที่โฮสต์กับ Payment Integrator

การแสดง JSON
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
ช่อง
responseHeader

object(ResponseHeader)

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

cardNetworkResult

object(CardNetworkResult)

ต้องระบุ: ผลของการให้สิทธิ์ในเครือข่ายบัตร

avsResult

object(AvsResult)

ไม่บังคับ: ผลของการยืนยันช่องที่อยู่ที่ส่งในคำขอ

ต้องระบุข้อมูลในช่องนี้หากมีการตั้งค่า addressVerificationSystemData ในคำขอ

cvnResult

enum(CvnResult)

ต้องระบุ: ผลของการยืนยัน CVN ที่ส่งในคำขอ หากไม่ได้ตั้งค่า CVN ในคำขอ ค่านี้ควรเป็น NOT_SENT

RequestHeader

ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในคำขอทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์

การแสดง JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object(Version)
  }
}
ช่อง
requestId

string

ต้องระบุ: ตัวระบุที่ไม่ซ้ำกันของคำขอนี้

โดยเป็นสตริงที่มีความยาวสูงสุด 100 อักขระ และมีเฉพาะอักขระ "a-z", "A-Z", "0-9", ":", "-" และ "_" เท่านั้น

requestTimestamp

string (int64 format)

ต้องระบุ: การประทับเวลาของคำขอนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้" การประทับเวลาของคำขอนี้ไม่ได้ระบุตัวตนเมื่อลองใหม่

userLocale
(deprecated)

string

ไม่บังคับ: รหัสภาษา ISO 639-2 Alpha 3 แบบ 2 หรือ 3 ตัวอักษร (ไม่บังคับ) ตามด้วยขีดกลางและรหัสประเทศตามมาตรฐาน ISO 3166-1 Alpha-2 เช่น "pt", "pt-BR", "fil" หรือ "fil-PH" ใช้ข้อมูลนี้เพื่อช่วยเพิ่มฟิลด์ user_message ในคำตอบ

protocolVersion

object(Version)

ต้องระบุ: เวอร์ชันของคำขอนี้

เวอร์ชัน

ออบเจ็กต์เวอร์ชัน ซึ่งเป็นรูปแบบที่มีโครงสร้างของโครงสร้างเวอร์ชัน a.b.c คลาสสิก เวอร์ชันหลักๆ ของหมายเลขเดียวกันรับประกันว่าจะใช้งานร่วมกันได้ โปรดทราบว่าการแก้ไขเล็กน้อยและการแก้ไขอาจเปลี่ยนแปลงได้บ่อยครั้งโดยไม่ต้องแจ้งให้ทราบ ผู้ผสานรวมระบบต้องรองรับคำขอทั้งหมดสำหรับเวอร์ชันหลักเดียวกัน

การแสดง JSON
{
  "major": number,
  "minor": number,
  "revision": number
}
ช่อง
major

number

ต้องระบุ: เวอร์ชันหลัก ส่วนนี้ทำเครื่องหมายไว้สำหรับคำขอความเข้ากันได้กับเวอร์ชันต่างๆ เราไม่รับประกันว่าจะใช้งานร่วมกันได้

minor

number

ต้องระบุ: เวอร์ชันย่อย นี่เป็นการแก้ไขข้อบกพร่องที่สำคัญ

revision

number

ต้องระบุ: เวอร์ชันย่อย ข้อความนี้เป็นการแก้ไขข้อบกพร่องเล็กๆ น้อยๆ

StandardCard

รูปแบบการแสดงบัตรแบบมาตรฐาน

การแสดง JSON
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
ช่อง
accountNumber

string

ต้องระบุ: หมายเลขบัญชีหลัก (PAN) ของบัตรเป็นข้อความธรรมดา

expiryDate

string

ไม่บังคับ: วันที่หมดอายุของบัตรในรูปแบบ MM/YYYY ไม่บังคับเนื่องจากบัตรบางใบในบางภูมิภาคไม่มีวันที่หมดอายุ

cvn

string

ไม่บังคับ: หาก Google รวบรวม CVN จากผู้ใช้ รหัสดังกล่าวระบุไว้ที่นี่และควรได้รับการยืนยัน

AvsData

มีช่องที่อยู่ที่ต้องยืนยันโดย AVS

การแสดง JSON
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
ช่อง
streetAddress

string

ไม่บังคับ: ที่อยู่ของที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ เมื่อผู้ใช้ใส่ที่อยู่หลายบรรทัด (เช่น บรรทัดสำหรับเลขที่อพาร์ตเมนต์) เส้นดังกล่าวจะเชื่อมกันโดยมีช่องว่าง

localityName

string

ไม่บังคับ: คำนี้มีความหมายไม่ชัดเจน แต่โดยทั่วไปจะหมายถึงส่วนเมืองของที่อยู่ ในภูมิภาคต่างๆ ของโลกที่มีการระบุย่านไม่ถูกต้องหรือไม่เข้ากับโครงสร้างนี้ดี (เช่น ญี่ปุ่นและจีน) ให้เว้นว่าง localityName และใช้ address_line

ตัวอย่าง: เมืองในสหรัฐอเมริกา, เขตไอที, เมืองไปรษณีย์ของสหราชอาณาจักร

administrativeAreaName

string

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

ตัวอย่าง: รัฐในสหรัฐอเมริกา, ภูมิภาคไอที, เขตเลือกตั้งในสหราชอาณาจักร, จังหวัดญี่ปุ่น

เมื่อ country == US ควรจะเป็นอักษรย่อ 2 อักขระสำหรับรัฐ US

postalCodeNumber

string

ไม่บังคับ: รหัสไปรษณีย์สำหรับการเรียกเก็บเงินของผู้ใช้

countryCode

string

ไม่บังคับ: รหัสประเทศของที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ในรูปแบบ ISO-3166-1 Alpha-2

ResponseHeader

ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในการตอบกลับทั้งหมดที่ส่งจากเซิร์ฟเวอร์

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

string (int64 format)

ต้องระบุ: การประทับเวลาของคำตอบนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้"

CardNetworkResult

มีเครือข่ายและรหัสผลลัพธ์ดิบจากเครือข่ายนั้น

การแสดง JSON
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
ช่อง
network

enum(Network)

ต้องระบุ: เครือข่ายที่เป็นต้นทางของรหัสผลลัพธ์

iso8583Result

string

ต้องระบุ: รหัสการคืนสินค้า ISO-8583 ที่เครือข่ายส่งคืน

หากเครือข่ายใช้รูปแบบโค้ดตอบกลับของตนเอง ผู้ผสานการทำงานต้องแมปโค้ดตอบกลับเหล่านั้นกับรหัสการแสดงผล ISO-8583

rawNetworkResult

string

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

เครือข่าย

ระบุเครือข่ายการ์ดที่เป็นไปได้ซึ่งอาจแสดง rawResult

Enum
UNKNOWN_NETWORK ไม่รู้จักเครือข่าย
NETWORK_NOT_INVOLVED ใช้ค่านี้หากการปฏิเสธไม่ได้มาจากเครือข่าย เช่น ผู้รวมบริการปฏิเสธการซื้อก่อนที่จะมีการส่งออกในเครือข่ายบัตร
AMEX เครือข่าย AMEX
COMPROCARD เครือข่าย COMPROCARD
DANKORT เครือข่าย DANKORT
DINACARD เครือข่าย DINACARD
DINERS_CLUB เครือข่าย DINERS_CLUB
DISCOVER เครือข่าย DISCOVER
EFTPOS เครือข่าย EFTPOS
ELO เครือข่าย ELO
ENROUTE ENROUTEเครือข่าย
FELICA เครือข่าย FELICA
GE_CAPITAL เครือข่าย GE_CAPITAL
HIPERCARD เครือข่าย HIPERCARD
ID เครือข่าย ID
INTERAC เครือข่าย INTERAC
JCB เครือข่าย JCB
LASER เครือข่ายเลเซอร์
MAESTRO เครือข่าย MAESTRO
MASTERCARD เครือข่าย MASTERCARD
PPT เครือข่าย PPT
QUICPAY เครือข่าย QUICPAY
RUPAY เครือข่าย RUPAY
SBERCARD เครือข่าย SBERCARD
SOLO เครือข่าย SOLO
SYNCHRONY เครือข่าย SyncHRONY
UNIONPAY เครือข่าย UNIONPAY
VISA เครือข่าย VISA

AvsResult

ผลการยืนยันฟิลด์ที่อยู่ที่ระบุไว้ในคําขอ

ต้องกรอกข้อมูลทุกช่องเนื่องจากเราต้องการผลลัพธ์ที่ชัดเจนสำหรับแต่ละฟิลด์ แทนที่จะอาศัยการไม่มีฟิลด์เป็นผลลัพธ์โดยนัย

การแสดง JSON
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
ช่อง
rawAvsResult

string

ต้องระบุ: ค่า AVS ดิบที่แสดงผลจากเครือข่ายการ์ด

streetAddress

enum(VerificationResult)

ต้องระบุ: ผลการยืนยัน streetAddress ที่ส่งในช่อง addressVerificationSystemData ของคำขอ

หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT"

localityName

enum(VerificationResult)

ต้องระบุ: ผลการยืนยัน localityName ที่ส่งในช่อง addressVerificationSystemData ของคำขอ

หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT"

administrativeAreaName

enum(VerificationResult)

ต้องระบุ: ผลการยืนยัน administrativeAreaName ที่ส่งในช่อง addressVerificationSystemData ของคำขอ

หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT"

postalCodeNumber

enum(VerificationResult)

ต้องระบุ: ผลการยืนยัน postalCodeNumber ที่ส่งในช่อง addressVerificationSystemData ของคำขอ

หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT"

countryCode

enum(VerificationResult)

ต้องระบุ: ผลการยืนยัน countryCode ที่ส่งในช่อง addressVerificationSystemData ของคำขอ

หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT"

VerificationResult

Enum
UNKNOWN_AVS_MATCH โปรดอย่าตั้งค่าเริ่มต้นนี้
NOT_SENT Google ไม่ได้ส่งฟิลด์นี้ ดังนั้นจึงไม่สามารถดำเนินการใดๆ ได้
MATCH Google ได้ส่งฟิลด์ไปยังผู้ผสานรวมระบบและตรวจสอบผ่าน AVS และผลลัพธ์ตรงกับค่าที่คาดไว้
MISMATCH Google ส่งฟิลด์ไปยังผู้ผสานการทำงานและตรวจสอบผ่าน AVS แต่ไม่ตรงกับค่าที่คาดไว้
SKIPPED Google ส่งฟิลด์ไปยังผู้ผสานรวมระบบแล้ว แต่ผู้ผสานรวมระบบไม่ได้ตรวจสอบช่องนี้
NOT_SPECIFIED Google ส่งช่องนี้ไปยังผู้ผสานการทำงานและผู้ผสานรวมระบบตรวจสอบช่องนี้ผ่าน AVS แต่รหัสผลลัพธ์ AVS มีข้อมูลไม่เพียงพอที่จะให้ผู้ผสานรวมระบบทราบว่าช่องนี้ตรงกับค่าที่คาดไว้หรือไม่

CvnResult

ผลของการยืนยัน CVN ที่ระบุไว้ในคําขอ

Enum
UNKNOWN_CVN_RESULT โปรดอย่าตั้งค่าเริ่มต้นนี้
NOT_SENT Google ไม่ได้ให้ CVN ไว้ จึงไม่สามารถยืนยันได้
NOT_VERIFIED Google ส่ง CVN แล้ว แต่ยังไม่ได้รับการยืนยัน ซึ่งสอดคล้องกับรหัสผลลัพธ์เครือข่ายของ "F"
MATCH Google ได้ส่ง CVN แล้วซึ่งมีการยืนยันและจับคู่ตรงกันแล้ว ซึ่งสอดคล้องกับรหัสผลลัพธ์ของเครือข่าย "M"
MISMATCH Google ส่ง CVN แล้ว ซึ่งได้รับการยืนยันแล้ว แต่ไม่ตรงกัน ซึ่งสอดคล้องกับรหัสผลลัพธ์เครือข่ายของ "N"