تحديد المشاكل وحلّها

يتناول دليل تحديد المشاكل وحلّها على الويب المشاكل والأسئلة المتعلقة بالمواضيع التالية.

التسجيل وإمكانية الوصول

قد تواجه الأخطاء التالية في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذه الأخطاء.

لم يتم تفعيل Google Pay لهذا التاجر
يتطلّب Google Pay API توفير merchantId من Google للمواقع الإلكترونية التي يتم ضبطها PaymentsClient لبيئة PRODUCTION. يتم ربط merchantId من Google باسم نطاق مؤهَّل بالكامل واحد أو أكثر من خلال Google Pay & Wallet Console. راجِع تفاصيل الخطأ التي تم عرضها للحصول على مزيد من المعلومات.
لم يكمل هذا التاجر عملية التسجيل لاستخدام Google Pay API. يُرجى الانتقال إلى وحدة التحكّم (https://pay.google.com/business/console) لإثبات الملكية.
لم تُكمل عملية تسجيل مواقعك الإلكترونية في Google Pay API. المراجعة طلب الوصول إلى مرحلة الإنتاج للتسجيل باستخدام Google Pay & Wallet Console وطلب مراجعة استخدام موقعك الإلكتروني لواجهة Google Pay API
لا يمكن للملف التجاري هذا استخدام هذه الميزة
لم تضبط Google موقعك الإلكتروني لاستخدام Google Pay API. راجِع طلب الوصول إلى مرحلة الإنتاج لطلب مراجعة استخدام موقعك الإلكتروني لواجهة Google Pay API من خلال Google Pay & Wallet Console.
تم إيقاف عملية دمج واجهة Google Pay API هذه. يُرجى التواصل معنا للحصول على مزيد من المعلومات (https://developers.google.com/pay/api/faq#how-to-get-support).
يُرجى التواصل معنا لمعرفة المزيد من المعلومات عن الخطوات المطلوبة لإعادة تفعيل Google Pay API لحسابك على Google.
النطاق "example.com" غير مسجَّل لاستخدام واجهة برمجة التطبيقات هذه
النطاق الذي تتم فيه استضافة عملية الدفع غير مرتبط بـ merchantId الذي تستخدمه. تأكَّد من صحة المَعلمة merchantId ومن أنّ نطاقك مسجَّل من خلال Google Pay & Wallet Console.
يجب استدعاء Google Pay API في سياق آمن.
لا يمكن استخدام Google Pay API إلا على المواقع الإلكترونية في سياق آمن. لمزيد من المعلومات، راجِع السياقات الآمنة.
لم يتم العثور على مفاتيح لملف التاجر هذا
يجب تسجيل مفتاح التشفير العام لدى Google من خلال Google Pay & Wallet Console لإكمال عملية الدمج DIRECTtokenizationSpecification type.

merchantId

قد تواجه الأخطاء التالية المتعلقة بـ merchantId في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذه الأخطاء.

يجب ضبط merchantId.
يجب ضبط المَعلمة merchantId داخل PaymentDataRequest على القيمة المقدَّمة باستخدام Google Pay & Wallet Console. لا تكون المَعلمة merchantId مطلوبة إلا عند استخدام PaymentsClient تم إعداده لبيئة PRODUCTION. راجِع قائمة التحقّق من الدمج لطلب مراجعة استخدام موقعك الإلكتروني لواجهة Google Pay API والحصول على merchantId.
merchantId ليس سلسلة
يجب أن تكون المَعلمة merchantId داخل PaymentDataRequest سلسلة دائمًا. تأكَّد من أنّ نوع المَعلمة merchantId التي تستخدمها هو سلسلة قبل طلب البيانات من واجهة برمجة التطبيقات.
لم يتم تسجيل merchantId.
يجب توفير المَعلمة merchantId داخل PaymentDataRequest من خلال Google Pay & Wallet Console. راجِع مقالة طلب إذن الإصدار للحصول على مزيد من المعلومات.

صلاحية البوابة

قد تواجه الأخطاء التالية المتعلقة بصلاحية البوابة في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذه الأخطاء.

بوابة غير معروفة 'yourgateway'
لا تتوافق معلَمة البوابة التي حدّدتها في paymentMethodTokenizationParameters.parameters مع Google حاليًا. يُرجى التواصل مع بوابة الدفع للحصول على مزيد من المعلومات حول معرّف البوابة والحقول المرتبطة به، مثل gatewayMerchantId.
لا يمكن استخدام البوابة "example" في وضع الإنتاج
لا تُستخدَم قيمة مَعلمة البوابة النموذجية إلا لأغراض الاختبار، ولا يمكن استخدامها مع PaymentsClient تم إعداده لبيئة PRODUCTION. يُرجى التواصل مع بوابة الدفع للحصول على مزيد من المعلومات حول قيم المَعلمات PaymentMethodTokenizationSpecification التي عليك ضبطها لاستخدامها مع Google Pay API.

صلاحية العنصر

قد تواجه الأخطاء التالية المتعلقة بصلاحية العنصر في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذه الأخطاء.

‫PaymentDataRequest في Google Pay ليس بتنسيق json صالح
يجب أن تكون المَعلمة المقدَّمة إلى loadPaymentData دائمًا كائن PaymentDataRequest صالحًا.
يجب ضبط transactionInfo.
يجب أن تكون المَعلمة transactionInfo داخل PaymentDataRequest دائمًا كائنًا صالحًا TransactionInfo.

التجّار المباشرون

قد تواجه الأخطاء التالية المتعلقة بالتجّار المباشرين في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذه الأخطاء.

التحقّق من التوقيع
قد تواجه خطأ في التحقّق من صحة التوقيع إذا كان merchantId غير صحيح. يمكن أن يحدث ذلك في بيئة TEST عند استخدام مكتبة paymentmethodtoken في Tink. لتجنُّب هذه المشكلة، اضبط قيمة YOUR_MERCHANT_ID على 12345678901234567890 في:
.recipientId("merchant:YOUR_MERCHANT_ID")
يتعذّر فك تشفير الرمز المميّز
إذا كنت تستخدم مكتبة Tink paymentmethodtoken لفك تشفير الرمز المميّز، يُرجى الانتباه إلى ما يلي:
  • تأكَّد من أنّ بيئة الردّ في Google Pay API تتوافق مع بيئة paymentmethodtoken في Tink. لمزيد من التفاصيل، يُرجى الاطّلاع على المثال التالي:
    • إذا تم عرض استجابة Google Pay API من خلال البيئة TEST، يشير Tink إلى بيئة الاختبار لفك التشفير.
  • لا تعدِّل الردّ من Google Pay API قبل تمريره إلى Tink. تأكَّد من إرسال الرمز المميز الكامل الذي تم عرضه في الردّ من Google Pay API. لمزيد من التفاصيل، يُرجى الاطّلاع على الملاحظة التالية:
  • تأكَّد من أنّ لديك المفتاح الخاص المناسب المرتبط بالمفتاح العام الذي سجّلته لدى Google.
إنشاء مفتاحَي تشفير عام وخاص على Windows
إذا كنت تستخدم نظام التشغيل Windows وأردت اتّباع الخطوات المذكورة في مقالة استخدام OpenSSL لإنشاء زوج مفاتيح خاص وعام، احرص على تثبيت Cygwin على جهازك. هذا الإعداد مطلوب لتنفيذ أوامر Linux.

عناصر الخطأ

عناصر الخطأ هي عناصر تعرضها وعود مرفوضة من طريقة JavaScript خاصة بالعميل.

PaymentsError
يحتوي هذا العنصر على تفاصيل حول الأخطاء التي تعرضها طرق JavaScript من جهة العميل. قد لا يتم عرض الأخطاء في مربّع حوار يظهر للمستخدم.
الموقع النوع الوصف
statusCode سلسلة رمز قصير يصف نوع الخطأ.
statusMessage سلسلة رسالة موجّهة إلى المطوّرين تصف الخطأ الذي حدث والخطوات المحتملة لتصحيحه.
الأخطاء الشائعة
يعرض هذا العنصر الأخطاء التي قد تواجهها في جميع طرق JavaScript. احرص على مراجعة لوحة تحكّم المطوّر للاطّلاع على رسائل الخطأ الإضافية.
رمز الحالة الوصف
BUYER_ACCOUNT_ERROR لا يمكن لمستخدم Google الحالي تقديم معلومات الدفع.
DEVELOPER_ERROR

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

MERCHANT_ACCOUNT_ERROR

لا يملك الموقع الإلكتروني الذي يصل إلى Google Pay API الإذن المناسب. قد يرجع ذلك إلى إعداد غير صحيح أو معرّف تاجر غير صحيح تم ضبطه في الطلب. لمزيد من التفاصيل، اطّلِع على الحقل statusMessage. إذا استمرّت المشكلة، يُرجى التواصل مع فريق الدعم.

INTERNAL_ERROR حدث خطأ عام في الخادم.

CardInfo

ما هي ميزة CardInfo؟
تشير
Google Pay إلى المستهلكين بأنّه توجد بطاقة خلف زر الدفع في Google Pay، ما يؤدي إلى عرض كلّ من شبكة العلامة التجارية للبطاقة وآخر أربعة أرقام من البطاقة.
لماذا لا يتم عرض ميزة CardInfo في عملية التنفيذ؟

لكي تعمل ميزة CardInfo، يجب استيفاء الشروط التالية:

  • يجب تنفيذ واجهة برمجة التطبيقات createButton.
  • يجب ضبط ButtonOptions.buttonType على buy أو long أو pay.
  • يجب أن يتوفّر لدى المستخدم طريقة دفع، كما هو محدّد في عنصر CardParameters.
لماذا يستغرق تحميل زر الدفع في Google Pay وقتًا طويلاً؟
لا تزِل أدوات معالجة الحدث onLoad. في حال إزالة أدوات معالجة الأحداث onLoad ، قد يؤدي ذلك إلى تحميل زر الدفع في Google Pay إلى أجل غير مسمى.
لماذا لا يظهر طلب الدفع بعد النقر على زر الدفع في Google Pay؟
تعيين دالة رد نداء لأداة معالجة الأحداث إلى حدث ButtonOptions.onClick.

OR_BIBED_15 خطأ

قد يظهر لك الخطأ OR_BIBED_15 في مرحلة ما من عملية الدمج. تقدّم هذه القائمة بعض النصائح المفيدة لتحديد المشاكل وحلّها في حال حدوث هذا الخطأ.

العمل باستخدام WebViews
اتّبِع الأدلة الخاصة بنظامَي التشغيل Android وiOS للتأكّد من أنّ عملية الدمج متوافقة مع WebViews.
عنوان استجابة HTTP يتضمّن Cross-Origin-Opener-Policy
إذا تم ضبط عنوان استجابة HTTP Cross-Origin-Opener-Policy على same-origin، قد يؤدي ذلك إلى منع المتصفّح من فتح النافذة المنبثقة اللازمة ليتمكّن المستخدمون من إكمال معاملاتهم. حاوِل تغيير قيمة العنوان إلى same-origin-allow-popups للحدّ من هذه المشاكل.
التأخيرات بين حدث نقرة المستخدِم وطلب loadPaymentData()
إذا حدث تأخير بعد النقر على زر Google Pay (أو زر مشابه للدفع) وقبل تنفيذ طلب loadPaymentData() (أمثلة: setTimeout() أو طلبات الشبكة الإضافية أو منطق مشابه يستغرق وقتًا طويلاً)، قد يؤدي ذلك إلى تفعيل آلية حظر النوافذ المنبثقة في المتصفّح. ننصح بعدم ضبط أي تأخير بين نقرة المستخدِم واستدعاء loadPaymentData().