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 المستضافة من خلال عملية تكامل الدفع

تمثيل 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)

مطلوب: يتم تمثيل الطابع الزمني لهذا الطلب بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 60 ثانية و"الآن". الطابع الزمني للطلب هذا غير ثابت عند إعادة المحاولة.

userLocale
(deprecated)

string

اختياري: رمز لغة مكوّن من حرفَين أو ثلاثة أحرف بتنسيق ISO 639-2 Alpha 3، ويتبعه اختياريًا بعدة واصلة ورمز البلد بصيغة ISO 3166-1 Alpha-2، مثل "pt" أو "pt-BR" أو "fil" أو "fil-PH". يمكنك استخدام هذه المعلومات لزيادة الحقول user_message في الردّ.

protocolVersion

object(Version)

REQUIRED: نسخة هذا الطلب.

الإصدار

كائن الإصدار، وهو شكل منظَّم لبنية إصدار a.b.c الكلاسيكية. نضمن لك توافق الإصدارات الرئيسية التي لها الرقم نفسه. لاحظ أن المراجعات الثانوية والمراجعات يمكن أن تتغير بشكل متكرر وبدون إشعار. يجب أن تقدّم شركة الدمج جميع الطلبات الخاصة بالإصدار الرئيسي نفسه.

تمثيل JSON
{
  "major": number,
  "minor": number,
  "revision": number
}
الحقول
major

number

مطلوب: رقم الإصدار الرئيسي. ويتم وضع علامة على هذا الخيار بأنّه لا يمكن ضمان توافق طلبات التوافق مع الإصدارات المختلفة.

minor

number

REQUIRED: الإصدار الثانوي. ويدل هذا على إصلاحات كبيرة للأخطاء.

revision

number

REQUIRED: الإصدار الثانوي. يشير هذا إلى إصلاحات أخطاء بسيطة.

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

اختياري: يستخدم هذا المصطلح مصطلحًا غامضًا، ولكنه يشير بشكل عام إلى جزء من المدينة أو البلدة من العنوان. في مناطق العالم التي لا تكون فيها المناطق المحلية محددة بشكل جيد أو لا تتناسب مع هذه البنية بشكل جيد (على سبيل المثال، اليابان والصين)، اترك اسم المنطقة المحلية فارغًا واستخدم address_line.

أمثلة: مدينة في الولايات المتحدة، بلدية تكنولوجيا المعلومات، بلدة بريد المملكة المتحدة.

administrativeAreaName

string

اختياري: القسم الفرعي الإداري ذو المستوى الأعلى لهذا البلد لعنوان إرسال الفواتير الخاص بالمستخدم.

أمثلة: ولاية أمريكية، منطقة تكنولوجيا المعلومات، بلد في المملكة المتحدة، محافظة اليابان

عندما يكون البلد == US، من المتوقع أن يكون اختصارًا مؤلفًا من حرفين للولاية الأمريكية.

postalCodeNumber

string

اختياري: الرمز البريدي لفواتير المستخدم.

countryCode

string

اختياري: رمز البلد لعنوان إرسال الفواتير الخاص بالمستخدم بتنسيق ISO-3166-1 Alpha-2.

ResponseHeader

كائن العنوان المحدَّد في جميع الاستجابات المُرسَلة من الخادم

تمثيل JSON
{
  "responseTimestamp": string
}
الحقول
responseTimestamp

string (int64 format)

مطلوب: يتم تمثيل الطابع الزمني لهذه الاستجابة بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 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.

عمليات التعداد
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 شبكة 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 شبكة المزامنة
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

عمليات التعداد
UNKNOWN_AVS_MATCH لا تضبط هذه القيمة التلقائية على الإطلاق.
NOT_SENT لم ترسل Google هذا الحقل، لذا لم يتم اتخاذ أي إجراء بشأنه.
MATCH أرسلت Google الحقل إلى شركة الدمج وتمّ التحقّق منه من خلال AVS للتأكّد من تطابقه مع القيمة المتوقّعة.
MISMATCH أرسلت Google الحقل إلى شركة الدمج وتمّ التحقّق منه من خلال AVS ولكنّه لم يتطابق مع القيمة المتوقّعة.
SKIPPED وقد أرسلت Google الحقل إلى شركة الدمج ولم يتحقّق منه.
NOT_SPECIFIED أرسلت Google الحقل إلى شركة الدمج وتحقّقت الشركة المتعهّدة من الحقل من خلال AVS، إلا أنّ رمز نتيجة AVS لا يوفّر معلومات كافية لشركة الدمج لمعرفة ما إذا كان الحقل يطابق القيمة المتوقّعة.

CvnResult

هي نتيجة التحقّق من رقم CVN المقدَّم في الطلب.

عمليات التعداد
UNKNOWN_CVN_RESULT لا تضبط هذه القيمة التلقائية على الإطلاق.
NOT_SENT لم تقدِّم Google رقم CVN، لذا تعذَّر التحقُّق منه.
NOT_VERIFIED أرسلت Google رقم CVN، ولكن لم يتم التحقّق منه. يتجاوب هذا مع رمز نتيجة الشبكة "F"
MATCH أرسلت Google رقم CVN، وتم التحقّق منه، وتبيّن أنّه مطابق. وهذا يتجاوب مع رمز نتيجة الشبكة "M".
MISMATCH أرسلت Google رقم CVN، وتم التحقّق منه، ولكنّه لم يتطابق. وهذا يتجاوب مع رمز نتيجة الشبكة "N".