- คำขอ HTTP
- เนื้อหาคำขอ
- เนื้อหาการตอบกลับ
- RequestHeader
- เวอร์ชัน
- StandardCard
- AvsData
- ResponseHeader
- CardNetworkResult
- เครือข่าย
- AvsResult
- VerificationResult
- CvnResult
ยืนยันบัตรของผู้ใช้เพื่อดูว่าบัตรถูกต้องหรือไม่
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 |
ต้องระบุ: ข้อมูลเกี่ยวกับบัตรสำหรับชำระเงินของผู้ใช้ |
avsData |
ไม่บังคับ: อีเมลของผู้ใช้ที่จะยืนยันโดย AVS |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
ออบเจ็กต์การตอบกลับสำหรับวิธี card.verifycard ที่โฮสต์กับ Payment Integrator
การแสดง JSON | |
---|---|
{ "responseHeader": { object( |
ช่อง | |
---|---|
responseHeader |
ต้องระบุ: ส่วนหัวทั่วไปของคำตอบทั้งหมด |
cardNetworkResult |
ต้องระบุ: ผลของการให้สิทธิ์ในเครือข่ายบัตร |
avsResult |
ไม่บังคับ: ผลของการยืนยันช่องที่อยู่ที่ส่งในคำขอ ต้องระบุข้อมูลในช่องนี้หากมีการตั้งค่า |
cvnResult |
ต้องระบุ: ผลของการยืนยัน CVN ที่ส่งในคำขอ หากไม่ได้ตั้งค่า CVN ในคำขอ ค่านี้ควรเป็น |
RequestHeader
ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในคำขอทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์
การแสดง JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
ช่อง | |
---|---|
requestId |
ต้องระบุ: ตัวระบุที่ไม่ซ้ำกันของคำขอนี้ โดยเป็นสตริงที่มีความยาวสูงสุด 100 อักขระ และมีเฉพาะอักขระ "a-z", "A-Z", "0-9", ":", "-" และ "_" เท่านั้น |
requestTimestamp |
ต้องระบุ: การประทับเวลาของคำขอนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้" การประทับเวลาของคำขอนี้ไม่ได้ระบุตัวตนเมื่อลองใหม่ |
userLocale |
ไม่บังคับ: รหัสภาษา ISO 639-2 Alpha 3 แบบ 2 หรือ 3 ตัวอักษร (ไม่บังคับ) ตามด้วยขีดกลางและรหัสประเทศตามมาตรฐาน ISO 3166-1 Alpha-2 เช่น "pt", "pt-BR", "fil" หรือ "fil-PH" ใช้ข้อมูลนี้เพื่อช่วยเพิ่มฟิลด์ |
protocolVersion |
ต้องระบุ: เวอร์ชันของคำขอนี้ |
เวอร์ชัน
ออบเจ็กต์เวอร์ชัน ซึ่งเป็นรูปแบบที่มีโครงสร้างของโครงสร้างเวอร์ชัน a.b.c
คลาสสิก เวอร์ชันหลักๆ ของหมายเลขเดียวกันรับประกันว่าจะใช้งานร่วมกันได้ โปรดทราบว่าการแก้ไขเล็กน้อยและการแก้ไขอาจเปลี่ยนแปลงได้บ่อยครั้งโดยไม่ต้องแจ้งให้ทราบ ผู้ผสานรวมระบบต้องรองรับคำขอทั้งหมดสำหรับเวอร์ชันหลักเดียวกัน
การแสดง JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
ช่อง | |
---|---|
major |
ต้องระบุ: เวอร์ชันหลัก ส่วนนี้ทำเครื่องหมายไว้สำหรับคำขอความเข้ากันได้กับเวอร์ชันต่างๆ เราไม่รับประกันว่าจะใช้งานร่วมกันได้ |
minor |
ต้องระบุ: เวอร์ชันย่อย นี่เป็นการแก้ไขข้อบกพร่องที่สำคัญ |
revision |
ต้องระบุ: เวอร์ชันย่อย ข้อความนี้เป็นการแก้ไขข้อบกพร่องเล็กๆ น้อยๆ |
StandardCard
รูปแบบการแสดงบัตรแบบมาตรฐาน
การแสดง JSON | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
ช่อง | |
---|---|
accountNumber |
ต้องระบุ: หมายเลขบัญชีหลัก (PAN) ของบัตรเป็นข้อความธรรมดา |
expiryDate |
ไม่บังคับ: วันที่หมดอายุของบัตรในรูปแบบ MM/YYYY ไม่บังคับเนื่องจากบัตรบางใบในบางภูมิภาคไม่มีวันที่หมดอายุ |
cvn |
ไม่บังคับ: หาก Google รวบรวม CVN จากผู้ใช้ รหัสดังกล่าวระบุไว้ที่นี่และควรได้รับการยืนยัน |
AvsData
มีช่องที่อยู่ที่ต้องยืนยันโดย AVS
การแสดง JSON | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
ช่อง | |
---|---|
streetAddress |
ไม่บังคับ: ที่อยู่ของที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ เมื่อผู้ใช้ใส่ที่อยู่หลายบรรทัด (เช่น บรรทัดสำหรับเลขที่อพาร์ตเมนต์) เส้นดังกล่าวจะเชื่อมกันโดยมีช่องว่าง |
localityName |
ไม่บังคับ: คำนี้มีความหมายไม่ชัดเจน แต่โดยทั่วไปจะหมายถึงส่วนเมืองของที่อยู่ ในภูมิภาคต่างๆ ของโลกที่มีการระบุย่านไม่ถูกต้องหรือไม่เข้ากับโครงสร้างนี้ดี (เช่น ญี่ปุ่นและจีน) ให้เว้นว่าง localityName และใช้ address_line ตัวอย่าง: เมืองในสหรัฐอเมริกา, เขตไอที, เมืองไปรษณีย์ของสหราชอาณาจักร |
administrativeAreaName |
ไม่บังคับ: หน่วยงานย่อยด้านการดูแลระบบระดับบนสุดของประเทศนี้สำหรับที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ ตัวอย่าง: รัฐในสหรัฐอเมริกา, ภูมิภาคไอที, เขตเลือกตั้งในสหราชอาณาจักร, จังหวัดญี่ปุ่น เมื่อ country == US ควรจะเป็นอักษรย่อ 2 อักขระสำหรับรัฐ US |
postalCodeNumber |
ไม่บังคับ: รหัสไปรษณีย์สำหรับการเรียกเก็บเงินของผู้ใช้ |
countryCode |
ไม่บังคับ: รหัสประเทศของที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ในรูปแบบ ISO-3166-1 Alpha-2 |
ResponseHeader
ออบเจ็กต์ส่วนหัวที่กำหนดไว้ในการตอบกลับทั้งหมดที่ส่งจากเซิร์ฟเวอร์
การแสดง JSON | |
---|---|
{ "responseTimestamp": string } |
ช่อง | |
---|---|
responseTimestamp |
ต้องระบุ: การประทับเวลาของคำตอบนี้แสดงเป็นมิลลิวินาทีตั้งแต่ Epoch ผู้รับควรตรวจสอบว่าการประทับเวลานี้เท่ากับ ± 60 วินาที ของ "ตอนนี้" |
CardNetworkResult
มีเครือข่ายและรหัสผลลัพธ์ดิบจากเครือข่ายนั้น
การแสดง JSON | |
---|---|
{
"network": enum( |
ช่อง | |
---|---|
network |
ต้องระบุ: เครือข่ายที่เป็นต้นทางของรหัสผลลัพธ์ |
iso8583Result |
ต้องระบุ: รหัสการคืนสินค้า ISO-8583 ที่เครือข่ายส่งคืน หากเครือข่ายใช้รูปแบบโค้ดตอบกลับของตนเอง ผู้ผสานการทำงานต้องแมปโค้ดตอบกลับเหล่านั้นกับรหัสการแสดงผล ISO-8583 |
rawNetworkResult |
ต้องระบุ: ค่าดิบที่แสดงผลจากเครือข่าย เครือข่ายที่ใช้โค้ดส่งคืน ISO-8583 อยู่แล้วจะมีค่าเดียวกันในช่องนี้และใน |
เครือข่าย
ระบุเครือข่ายการ์ดที่เป็นไปได้ซึ่งอาจแสดง 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( |
ช่อง | |
---|---|
rawAvsResult |
ต้องระบุ: ค่า AVS ดิบที่แสดงผลจากเครือข่ายการ์ด |
streetAddress |
ต้องระบุ: ผลการยืนยัน หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT" |
localityName |
ต้องระบุ: ผลการยืนยัน หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT" |
administrativeAreaName |
ต้องระบุ: ผลการยืนยัน หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT" |
postalCodeNumber |
ต้องระบุ: ผลการยืนยัน หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "NOT_SENT" |
countryCode |
ต้องระบุ: ผลการยืนยัน หากไม่ได้ตั้งค่าช่องในคำขอ ค่านี้ควรเป็น "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" |