- طلب 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 المستضافة من خلال عملية تكامل الدفع
تمثيل 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 |
مطلوب: يتم تمثيل الطابع الزمني لهذا الطلب بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 60 ثانية و"الآن". الطابع الزمني للطلب هذا غير ثابت عند إعادة المحاولة. |
userLocale |
اختياري: رمز لغة مكوّن من حرفَين أو ثلاثة أحرف بتنسيق ISO 639-2 Alpha 3، ويتبعه اختياريًا بعدة واصلة ورمز البلد بصيغة ISO 3166-1 Alpha-2، مثل "pt" أو "pt-BR" أو "fil" أو "fil-PH". يمكنك استخدام هذه المعلومات لزيادة الحقول |
protocolVersion |
REQUIRED: نسخة هذا الطلب. |
الإصدار
كائن الإصدار، وهو شكل منظَّم لبنية إصدار a.b.c
الكلاسيكية. نضمن لك توافق الإصدارات الرئيسية التي لها الرقم نفسه. لاحظ أن المراجعات الثانوية والمراجعات يمكن أن تتغير بشكل متكرر وبدون إشعار. يجب أن تقدّم شركة الدمج جميع الطلبات الخاصة بالإصدار الرئيسي نفسه.
تمثيل JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
الحقول | |
---|---|
major |
مطلوب: رقم الإصدار الرئيسي. ويتم وضع علامة على هذا الخيار بأنّه لا يمكن ضمان توافق طلبات التوافق مع الإصدارات المختلفة. |
minor |
REQUIRED: الإصدار الثانوي. ويدل هذا على إصلاحات كبيرة للأخطاء. |
revision |
REQUIRED: الإصدار الثانوي. يشير هذا إلى إصلاحات أخطاء بسيطة. |
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 |
اختياري: يستخدم هذا المصطلح مصطلحًا غامضًا، ولكنه يشير بشكل عام إلى جزء من المدينة أو البلدة من العنوان. في مناطق العالم التي لا تكون فيها المناطق المحلية محددة بشكل جيد أو لا تتناسب مع هذه البنية بشكل جيد (على سبيل المثال، اليابان والصين)، اترك اسم المنطقة المحلية فارغًا واستخدم address_line. أمثلة: مدينة في الولايات المتحدة، بلدية تكنولوجيا المعلومات، بلدة بريد المملكة المتحدة. |
administrativeAreaName |
اختياري: القسم الفرعي الإداري ذو المستوى الأعلى لهذا البلد لعنوان إرسال الفواتير الخاص بالمستخدم. أمثلة: ولاية أمريكية، منطقة تكنولوجيا المعلومات، بلد في المملكة المتحدة، محافظة اليابان عندما يكون البلد == US، من المتوقع أن يكون اختصارًا مؤلفًا من حرفين للولاية الأمريكية. |
postalCodeNumber |
اختياري: الرمز البريدي لفواتير المستخدم. |
countryCode |
اختياري: رمز البلد لعنوان إرسال الفواتير الخاص بالمستخدم بتنسيق ISO-3166-1 Alpha-2. |
ResponseHeader
كائن العنوان المحدَّد في جميع الاستجابات المُرسَلة من الخادم
تمثيل JSON | |
---|---|
{ "responseTimestamp": string } |
الحقول | |
---|---|
responseTimestamp |
مطلوب: يتم تمثيل الطابع الزمني لهذه الاستجابة بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 60 ثانية و"الآن". |
CardNetworkResult
يحتوي على شبكة ورمز نتيجة أولي من تلك الشبكة.
تمثيل JSON | |
---|---|
{
"network": enum( |
الحقول | |
---|---|
network |
مطلوب: الشبكة التي صدر منها رمز النتيجة. |
iso8583Result |
مطلوب: رمز الإرجاع ISO-8583 الذي تعرضه الشبكة. إذا كانت الشبكة تستخدم تنسيق رمز الاستجابة الخاص بها، على شركة الدمج ربط رموز الاستجابة هذه برموز الإرجاع بمعيار ISO-8583. |
rawNetworkResult |
مطلوبة: القيمة الأولية التي يتم عرضها من الشبكة. إنّ الشبكات التي تستخدم رموز الإرجاع ISO-8583 ستكون لها القيمة نفسها في هذا الحقل وفي |
الشبكة
تحدّد هذه السياسة شبكات البطاقات المحتمَلة التي قد تكون عرضت السمة 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( |
الحقول | |
---|---|
rawAvsResult |
مطلوبة: قيمة AVS الأولية التي يتم عرضها من شبكة البطاقة |
streetAddress |
مطلوبة: نتيجة التحقّق من صحة وإذا لم يتم ضبط الحقل في الطلب، يجب أن تكون هذه القيمة "NOT_SENT". |
localityName |
مطلوبة: نتيجة التحقّق من صحة وإذا لم يتم ضبط الحقل في الطلب، يجب أن تكون هذه القيمة "NOT_SENT". |
administrativeAreaName |
مطلوبة: نتيجة التحقّق من صحة وإذا لم يتم ضبط الحقل في الطلب، يجب أن تكون هذه القيمة "NOT_SENT". |
postalCodeNumber |
مطلوبة: نتيجة التحقّق من صحة وإذا لم يتم ضبط الحقل في الطلب، يجب أن تكون هذه القيمة "NOT_SENT". |
countryCode |
مطلوبة: نتيجة التحقّق من صحة وإذا لم يتم ضبط الحقل في الطلب، يجب أن تكون هذه القيمة "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". |