- درخواست HTTP
- درخواست بدن
- بدن پاسخگو
- RequestHeader
- نسخه
- کارت استاندارد
- AvsData
- ResponseHeader
- CardNetwork Result
- شبکه
- AvsResult
- نتیجه تأیید
- 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 Transcoding استفاده می کند.
درخواست بدن
بدنه درخواست حاوی داده هایی با ساختار زیر است:
نمایندگی JSON | |
---|---|
{ "requestHeader": { object( |
فیلدها | |
---|---|
requestHeader | مورد نیاز : هدر مشترک برای همه درخواست ها. |
standardCard | مورد نیاز : اطلاعات مربوط به کارت پرداخت کاربر. |
avsData | اختیاری : آدرس کاربر باید توسط AVS تأیید شود. |
بدن پاسخگو
در صورت موفقیت آمیز بودن، بدنه پاسخ حاوی داده هایی با ساختار زیر است:
شی پاسخ برای روش کارت.verifycard میزبان Payment Integrator.
نمایندگی JSON | |
---|---|
{ "responseHeader": { object( |
فیلدها | |
---|---|
responseHeader | مورد نیاز : هدر مشترک برای همه پاسخ ها. |
cardNetworkResult | الزامی : نتیجه صدور مجوز در شبکه کارت. |
avsResult | اختیاری : نتیجه تأیید فیلدهای آدرس ارسال شده در درخواست. اگر |
cvnResult | مورد نیاز : نتیجه تأیید CVN ارسال شده در درخواست. اگر CVN روی درخواست تنظیم نشده باشد، این مقدار باید |
RequestHeader
شی هدر که روی تمام درخواست های ارسال شده به سرور تعریف می شود.
نمایندگی JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
فیلدها | |
---|---|
requestId | مورد نیاز : شناسه منحصر به فرد این درخواست. این رشته ای است که حداکثر طول آن 100 کاراکتر است و فقط شامل کاراکترهای "az"، "AZ"، "0-9"، ":"، "-"، و "_" است. |
requestTimestamp | الزامی است : مهر زمانی این درخواست به عنوان میلی ثانیه از آن دوره نشان داده شده است. گیرنده باید تأیید کند که این مُهر زمانی ± 60 ثانیه «اکنون» است. این مهر زمانی درخواست پس از تلاش مجدد بی تاثیر نیست. |
userLocale | اختیاری : کد زبان ISO 639-2 آلفا 3 دو یا سه حرفی که به صورت اختیاری با خط فاصله و کد کشور ISO 3166-1 آلفا-2، به عنوان مثال، «pt»، «pt-BR»، «fil» یا 'fil-PH'. از این برای کمک به هدایت فیلدهای |
protocolVersion | مورد نیاز : نسخه این درخواست. |
نسخه
شئ نسخه که شکلی ساختار یافته از ساختار نسخه کلاسیک abc
است. نسخههای اصلی همین تعداد تضمین میشوند که سازگار باشند. توجه داشته باشید که اصلاحات جزئی و جزئی می توانند اغلب و بدون اطلاع قبلی تغییر کنند. یکپارچه کننده باید از همه درخواست ها برای یک نسخه اصلی پشتیبانی کند.
نمایندگی JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
فیلدها | |
---|---|
major | مورد نیاز : نسخه اصلی. این برای درخواستهای سازگاری با نسخههای مختلف علامتگذاری شده است و تضمین نمیشود که سازگار باشند. |
minor | مورد نیاز : نسخه کوچک. این نشان دهنده رفع اشکال قابل توجه است. |
revision | مورد نیاز : نسخه کوچک. این نشان دهنده رفع اشکال جزئی است. |
کارت استاندارد
نمایش استاندارد یک کارت
نمایندگی 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 | اختیاری : بخش اداری سطح بالای این کشور برای آدرس صورتحساب کاربر. مثال: ایالت ایالات متحده، منطقه فناوری اطلاعات، کشور تشکیل دهنده بریتانیا، استان JP هنگامی که کشور == ایالات متحده، انتظار می رود که این علامت اختصاری 2 نویسه ای برای ایالت ایالات متحده باشد. |
postalCodeNumber | اختیاری : کد پستی صورتحساب کاربر. |
countryCode | اختیاری : کد کشور آدرس صورتحساب کاربر در قالب ISO-3166-1 Alpha-2. |
ResponseHeader
شی هدر که روی تمام پاسخ های ارسال شده از سرور تعریف می شود.
نمایندگی JSON | |
---|---|
{ "responseTimestamp": string } |
فیلدها | |
---|---|
responseTimestamp | الزامی : مهر زمانی این پاسخ به عنوان میلی ثانیه از دوره نشان داده شده است. گیرنده باید تأیید کند که این مُهر زمانی ± 60 ثانیه «اکنون» است. |
CardNetwork Result
شامل یک شبکه و یک کد نتیجه خام از آن شبکه است.
نمایندگی JSON | |
---|---|
{
"network": enum( |
فیلدها | |
---|---|
network | مورد نیاز : شبکه ای که کد نتیجه از آن آمده است. |
iso8583Result | مورد نیاز : کد بازگشت ISO-8583 توسط شبکه بازگردانده شده است. اگر شبکه از قالب کد پاسخ خود استفاده می کند، یکپارچه ساز باید آن کدهای پاسخ را به کدهای بازگشتی ISO-8583 نگاشت کند. |
rawNetworkResult | مورد نیاز : مقدار خام بازگردانده شده از شبکه. شبکههایی که قبلاً از کدهای بازگشتی ISO-8583 استفاده میکنند، در این قسمت و در |
شبکه
شبکه های کارت احتمالی را که ممکن است rawResult
برگردانده باشند، تعریف می کند.
Enums | |
---|---|
UNKNOWN_NETWORK | شبکه شناسایی نشد |
NETWORK_NOT_INVOLVED | از این مقدار استفاده کنید اگر کاهش از طرف شبکه نبوده است، به عنوان مثال اگر یکپارچهکننده خرید را حتی قبل از ارسال به شبکه کارت رد کرده است. |
AMEX | شبکه AMEX |
COMPROCARD | شبکه COMPROCARD |
DANKORT | شبکه DANKORT |
DINACARD | شبکه DINACARD |
DINERS_CLUB | شبکه DINERS_CLUB |
DISCOVER | شبکه کشف |
EFTPOS | شبکه EFTPOS |
ELO | شبکه ELO |
ENROUTE | شبکه ENROUTE |
FELICA | شبکه فلیکا |
GE_CAPITAL | شبکه GE_CAPITAL |
HIPERCARD | شبکه HIPERCARD |
ID | شبکه ID |
INTERAC | شبکه INTERAC |
JCB | شبکه JCB |
LASER | شبکه لیزر |
MAESTRO | شبکه MAESTRO |
MASTERCARD | شبکه مسترکارت |
PPT | شبکه PPT |
QUICPAY | شبکه QUICPAY |
RUPAY | شبکه RUPAY |
SBERCARD | شبکه SBERCARD |
SOLO | شبکه SOLO |
SYNCHRONY | شبکه SYNCHRONY |
UNIONPAY | شبکه UNIONPAY |
VISA | شبکه ویزا |
AvsResult
نتیجه تأیید فیلدهای آدرس ارائه شده در درخواست.
همه فیلدها الزامی هستند زیرا ما به جای تکیه بر عدم وجود یک فیلد به عنوان یک نتیجه ضمنی، یک نتیجه صریح برای هر فیلد می خواهیم.
نمایندگی JSON | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
فیلدها | |
---|---|
rawAvsResult | مورد نیاز : مقدار خام AVS که از شبکه کارت بازگردانده شده است. |
streetAddress | مورد نیاز : نتیجه تأیید اگر فیلد در درخواست تنظیم نشده باشد، این مقدار باید "NOT_SENT" باشد. |
localityName | REQUIRED : نتیجه تأیید اگر فیلد در درخواست تنظیم نشده باشد، این مقدار باید "NOT_SENT" باشد. |
administrativeAreaName | مورد نیاز : نتیجه تأیید اگر فیلد در درخواست تنظیم نشده باشد، این مقدار باید "NOT_SENT" باشد. |
postalCodeNumber | الزامی است : نتیجه تأیید اگر فیلد در درخواست تنظیم نشده باشد، این مقدار باید "NOT_SENT" باشد. |
countryCode | مورد نیاز : نتیجه تأیید اگر فیلد در درخواست تنظیم نشده باشد، این مقدار باید "NOT_SENT" باشد. |
نتیجه تأیید
Enums | |
---|---|
UNKNOWN_AVS_MATCH | هرگز این مقدار پیش فرض را تنظیم نکنید! |
NOT_SENT | گوگل این فیلد را ارسال نکرده است بنابراین کاری با آن انجام نمی شود. |
MATCH | گوگل فیلد را به integrator ارسال کرد و از طریق AVS بررسی شد و با مقدار مورد انتظار مطابقت داشت. |
MISMATCH | گوگل فیلد را به integrator ارسال کرد و از طریق AVS بررسی شد اما با مقدار مورد انتظار مطابقت نداشت. |
SKIPPED | گوگل فیلد را به انتگرالگر فرستاد اما ادغام کننده فیلد را بررسی نکرد. |
NOT_SPECIFIED | Google فیلد را به یکپارچهکننده ارسال کرد و ادغامکننده فیلد را از طریق AVS بررسی کرد، اما کد نتیجه AVS اطلاعات کافی برای ادغامکننده ارائه نمیدهد تا بداند آیا فیلد با مقدار مورد انتظار مطابقت دارد یا خیر. |
CvnResult
نتیجه تأیید CVN ارائه شده در درخواست.
Enums | |
---|---|
UNKNOWN_CVN_RESULT | هرگز این مقدار پیش فرض را تنظیم نکنید! |
NOT_SENT | Google CVN را ارائه نکرده است، بنابراین تأیید نمی شود. |
NOT_VERIFIED | Google CVN را ارسال کرد، اما تأیید نشد. این مربوط به کد نتیجه شبکه "F" است |
MATCH | Google CVN را ارسال کرد، تأیید شد و مطابقت داشت. این مربوط به کد نتیجه شبکه "M" است. |
MISMATCH | گوگل CVN را ارسال کرد، تایید شد، اما مطابقت نداشت. این مربوط به کد نتیجه شبکه "N" است. |