- طلب 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. |
نص الاستجابة
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
عنصر ردّ لطريقة التحقّق من البطاقة التي تستضيفها خدمة تكامل الدفع.
تمثيل 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 |
مطلوب: نسخة هذا الطلب. |
الإصدار
كائن الإصدار الذي هو شكل منظَّم لبنية إصدار 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 |
اختياري: يُعدّ هذا اسمًا غير واضح، ولكنه يشير بشكل عام إلى جزء المدينة/البلدة من العنوان. في مناطق العالم التي لم يتم تعريف المناطق فيها بشكل جيد أو لا تتناسب مع هذا الهيكل جيدًا (مثل اليابان والصين)، اترك localName فارغًا واستخدم 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 |
الشبكة التعريفية |
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 الحقل إلى الشركة المتعهّدة للتأكّد من أنّه تم التحقّق من صحته وتتطابق مع القيمة المتوقّعة. |
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". |