عیب‌یابی

راهنمای عیب‌یابی وب مشکلات و سؤالات مربوط به موضوعات زیر را پوشش می‌دهد.

ثبت‌نام و دسترسی

ممکن است در نقطه‌ای از ادغام با خطاهای زیر مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطاها ارائه می‌دهد.

این فروشنده برای Google Pay فعال نشده است
Google Pay API برای سایت‌هایی که PaymentsClient را برای محیط PRODUCTION پیکربندی می‌کنند، به Google merchantId نیاز دارد. یک merchantId ازطریق کنسول کیف پول و Google Pay با یک یا چند دامنه کاملاً واجدشرایط مرتبط است. برای اطلاعات بیشتر، جزئیات خطای برگشت‌داده‌شده را بررسی کنید.
این فروشنده ثبت‌نام برای استفاده از Google Pay API را تکمیل نکرده است. لطفاً برای تأیید به کنسول (https://pay.google.com/business/console) بروید.
فرایند ثبت وب‌سایت‌هایتان را برای Google Pay API تکمیل نکرده‌اید. برای ثبت‌نام بااستفاده از کنسول کیف پول و Google Pay و درخواست بازبینی استفاده وب‌سایتتان از Google Pay API، درخواست دسترسی به تولید را مرور کنید.
این نمایه فروشنده به این ویژگی دسترسی ندارد
Google وب‌سایت شما را برای استفاده از Google Pay API پیکربندی نکرده است. درخواست دسترسی تولید را مرور کنید تا درخواست بازبینی استفاده وب‌سایتتان از Google Pay API را ازطریق کنسول کیف پول و Google Pay ارسال کنید.
این یکپارچه‌سازی Google Pay API غیرفعال است. لطفاً برای اطلاعات بیشتر با ما تماس بگیرید (https://developers.google.com/pay/api/faq#how-to-get-support).
با ما تماس بگیرید تا درباره مراحل لازم برای فعال کردن مجدد Google Pay API برای «حساب Google» خود بیشتر بدانید.
دامنه «example.com» شما برای استفاده از این میانای برنامه‌سازی کاربردی ثبت نشده است
دامنه‌ای که تصفیه‌حساب شما در آن میزبانی می‌شود با merchantId که استفاده می‌کنید مرتبط نیست. مطمئن شوید پارامتر merchantId درست باشد و دامنه‌تان ازطریق کنسول کیف پول و Google Pay ثبت شده باشد.
میانای برنامه‌سازی کاربردی Google Pay باید در زمینه امن فراخوانی شود!
Google Pay API فقط در وب‌سایت‌های دارای زمینه امن قابل‌استفاده است. برای اطلاعات بیشتر، زمینه‌های امن را ببینید.
هیچ کلیدی برای این نمایه فروشنده پیدا نشد
باید کلید رمزگذاری عمومی‌تان را ازطریق کنسول Pay و کیف پول Google در Google ثبت کنید تا ادغام DIRECTtokenizationSpecification type تکمیل شود.

merchantId

ممکن است در نقطه‌ای از ادغام با خطاهای زیر دررابطه‌با merchantId مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطاها ارائه می‌دهد.

merchantId باید تنظیم شود!
پارامتر merchantId در PaymentDataRequest باید روی مقداری تنظیم شود که بااستفاده از کنسول Pay و کیف پول Google ارائه شده است. پارامتر merchantId فقط زمانی لازم است که از PaymentsClient پیکربندی‌شده برای محیط PRODUCTION استفاده کنید. بازبینه ادغام ما را مرور کنید تا درخواست بازبینی استفاده وب‌سایتتان از Google Pay API را ارسال کنید و merchantId خود را دریافت کنید.
merchantId رشته نیست
پارامتر merchantId داخل PaymentDataRequest همیشه باید رشته باشد. مطمئن شوید نوع پارامتر merchantId که استفاده می‌کنید قبل‌از فراخوانی API، رشته باشد.
merchantId ثبت نشده است.
پارامتر merchantId در PaymentDataRequest باید ازطریق کنسول کیف پول و Google Pay تأمین شود. برای اطلاعات بیشتر، درخواست دسترسی تولید را مرور کنید.

اعتبار دروازه

ممکن است در نقطه‌ای از ادغام با خطاهای زیر دررابطه‌با اعتبار درگاه مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطاها ارائه می‌دهد.

دروازه ناشناخته «دروازه شما»
پارامتر درگاهی که در paymentMethodTokenizationParameters.parameters مشخص کرده‌اید درحال‌حاضر توسط Google پشتیبانی نمی‌شود. برای اطلاعات بیشتر درباره شناسه درگاه و فیلدهای مرتبط با آن، مانند gatewayMerchantId، با درگاهتان تماس بگیرید.
از «نمونه» درگاه نمی‌توان در حالت تولید استفاده کرد
مقدار پارامتر درگاه نمونه فقط برای اهداف آزمایشی استفاده می‌شود و نمی‌توان از آن با PaymentsClient پیکربندی‌شده برای محیط PRODUCTION استفاده کرد. برای اطلاعات بیشتر درباره مقادیر پارامترهای PaymentMethodTokenizationSpecification که باید برای استفاده با Google Pay API تنظیم کنید، با درگاهتان تماس بگیرید.

اعتبار شیء

ممکن است در نقطه‌ای از ادغام با خطاهای زیر دررابطه‌با اعتبار شیء مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطاها ارائه می‌دهد.

‫PaymentDataRequest مربوط به Google Pay در قالب json معتبر نیست
پارامتر ارائه‌شده به loadPaymentData همیشه باید شیء PaymentDataRequest معتبری باشد.
transactionInfo باید تنظیم شود!
پارامتر transactionInfo در PaymentDataRequest همیشه باید شیء TransactionInfo معتبری باشد.

فروشندگان مستقیم

ممکن است در نقطه‌ای از ادغام خود با خطاهای زیر مربوط به فروشندگان مستقیم مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطاها ارائه می‌دهد.

درستی‌سنجی امضا
اگر merchantId اشتباه باشد، ممکن است با خطای درستی‌سنجی امضا مواجه شوید. این اتفاق ممکن است در محیط TEST زمانی رخ دهد که از کتابخانه Tink paymentmethodtoken استفاده می‌کنید. برای جلوگیری از این مشکل، YOUR_MERCHANT_ID را روی 12345678901234567890 در اینجا تنظیم کنید:
.recipientId("merchant:YOUR_MERCHANT_ID")
نمی‌توان رمز نشانه را گشود
اگر از کتابخانه Tink paymentmethodtoken برای رمزگشایی کردن توکن استفاده می‌کنید، به موارد زیر توجه کنید:
  • مطمئن شوید که محیط پاسخ میانای برنامه‌سازی کاربردی Google Pay با محیط Tink paymentmethodtoken مطابقت داشته باشد. برای جزئیات بیشتر، مثال زیر را ببینید:
    • اگر پاسخ Google Pay API توسط محیط TEST برگردانده شده باشد، Tink برای رمزگشایی به محیط آزمایشی اشاره می‌کند.
  • پاسخ Google Pay API را قبل‌از ارسال به Tink تغییر ندهید. مطمئن شوید که کل کد برگردانده‌شده از پاسخ Google Pay API را ارسال می‌کنید. برای جزئیات بیشتر، به یادداشت زیر مراجعه کنید:
  • بررسی کنید که کلید خصوصی مناسبی را که با کلید عمومی ثبت‌شده در Google مرتبط است داشته باشید.
تولید کردن جفت کلید عمومی و خصوصی در Windows
اگر از Windows استفاده می‌کنید و می‌خواهید مراحل ذکرشده در استفاده از OpenSSL برای تولید جفت کلید خصوصی و عمومی را دنبال کنید، حتماً Cygwin را در دستگاهتان نصب کنید. این کار برای اجرای فرمان‌های Linux لازم است.

اشیای خطا

اشیاء خطا اشیائی هستند که توسط یک وعده ردشده از یک روش جاوا اسکریپت مشتری برگردانده می‌شوند.

PaymentsError
این شیء حاوی جزئیاتی درباره خطاهای برگردانده‌شده توسط روش‌های جاوا اسکریپت مشتری است. ممکن است خطاها در کادر گفتگوی سَمت کاربر نمایش داده نشود.
دارایی نوع شرح
statusCode رشته کد کوتاهی که نوع خطا را شرح می‌دهد.
statusMessage رشته پیام توسعه‌دهنده که خطای مواجه‌شده و مراحل احتمالی برای اصلاح آن را شرح می‌دهد.
خطاهای رایج
این شیء خطاهایی را نمایش می‌دهد که ممکن است در همه روش‌های جاوا اسکریپت با آن‌ها مواجه شوید. حتماً کنسول توسعه‌دهندگان را برای پیام‌های خطای بیشتر بررسی کنید.
کد وضعیت شرح
BUYER_ACCOUNT_ERROR کاربر فعلی Google نمی‌تواند اطلاعات پرداخت را ارائه دهد.
DEVELOPER_ERROR

قالب پارامتر ارسال‌شده نادرست است. ممکن است پیام خطایی در کنسول مرورگر برای همه محیط‌های پیکربندی‌شده ظاهر شود.

MERCHANT_ACCOUNT_ERROR

سایتی که به Google Pay API دسترسی دارد، اجازه لازم را ندارد. این مشکل ممکن است به‌دلیل پیکربندی نادرست یا شناسه فروشنده نادرست تنظیم‌شده در درخواست باشد. برای جزئیات بیشتر، فیلد statusMessage را بررسی کنید. اگر مشکل برطرف نشد، با پشتیبانی تماس بگیرید.

INTERNAL_ERROR خطای عمومی سرور.

CardInfo

ویژگی CardInfo چیست؟
Google Pay به مصرف‌کنندگان نشان می‌دهد که کارتی پشت دکمه پرداخت Google Pay وجود دارد، که هم شبکه نمانام کارت و هم چهار رقم آخر کارت را ارائه می‌دهد.
چرا ویژگی CardInfo در پیاده‌سازی من ارائه نمی‌شود؟

برای اینکه ویژگی CardInfo کار کند، شرایط زیر را لازم داریم:

  • باید createButton API را پیاده‌سازی کنید.
  • باید ButtonOptions.buttonType را روی buy، long، یا pay پیکربندی کنید.
  • کاربر باید روش پرداخت دردسترسی داشته باشد، همان‌طور که توسط شیء CardParameters شما تعریف شده است.
چرا دکمه پرداخت Google Pay به‌طور نامحدود بار می‌شود؟
شنوندگان رویداد onLoad را برندارید. اگر شنوندگان رویداد onLoad را بردارید، ممکن است باعث شود دکمه پرداخت Google Pay به‌طور نامحدود بار شود.
چرا پس‌از کلیک کردن روی دکمه پرداخت Google Pay، پیام‌واره پرداخت نشان داده نمی‌شود؟
یک فراخوانی شنونده رویداد را به رویداد ButtonOptions.onClick اختصاص دهید.

‫OR_BIBED_15 خطا

ممکن است در نقطه‌ای از ادغام با خطای OR_BIBED_15 مواجه شوید. این فهرست چند توصیه مفید برای عیب‌یابی درصورت بروز این خطا ارائه می‌دهد.

کار کردن با «وب‌نما»
راهنماهای Android و iOS را دنبال کنید تا مطمئن شوید ادغام شما با «وب‌نما» سازگار است.
Cross-Origin-Opener-Policy سرایند پاسخ HTTP
اگر سرایند پاسخ HTTP Cross-Origin-Opener-Policy روی same-origin تنظیم شده باشد، ممکن است مانع از باز شدن بالاپری لازم در مرورگر برای تکمیل تراکنش کاربران شود. برای کاهش این مشکلات، مقدار سرصفحه را به same-origin-allow-popups تغییر دهید.
تأخیر بین رویداد کلیک کاربر و فراخوانی loadPaymentData()
اگر پس‌از کلیک کردن روی دکمه Google Pay (یا دکمه تسویه‌حساب مشابه) و قبل‌از فراخوانی loadPaymentData() تأخیری وجود داشته باشد (مثال‌ها: setTimeout()، فراخوانی‌های شبکه اضافی، یا منطق طولانی مشابه)، این امر می‌تواند باعث فعال شدن سازوکار مسدود کردن بالاپر مرورگر شود. توصیه ما این است که هیچ تأخیری بین کلیک کاربر و فراخوانی loadPaymentData() تنظیم نشود.