عیب‌یابی

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

برنامه درحال‌حاضر در محیط آزمایش اجرا می‌شود

کاربر ممکن است هنگام انتخاب کارت پرداخت از کادر گفتگوی جزئیات پرداخت، پیام زیر را ببیند:

برنامه درحال‌حاضر در محیط آزمایش اجرا می‌شود. تراکنش‌ها منجر به کسر هزینه واقعی نمی‌شود

این خطا نشان می‌دهد که برنامه از ENVIRONMENT_TEST استفاده می‌کند و اطلاعات اعتباری پرداخت واقعی دریافت نمی‌کند، اما اطلاعات شخصی شامل نشانی صورت‌حساب، شماره تلفن نشانی صورت‌حساب، نشانی ارسال، و نشانی ایمیل را درصورت درخواست دریافت می‌کند.

درخواست انجام نشد

رایج‌ترین پیام خطا OR_BIBED_06 است. این پیام خطا همچنین در واسط کاربر به‌صورت کادر گفتگویی با نوشتار زیر نشان داده می‌شود:

درخواست ناموفق بود
مشکلی در یکپارچه‌سازی Google Pay فروشنده وجود دارد. لطفاً برای دریافت کمک با فروشنده تماس بگیرید یا با روش دیگری پرداخت کنید.

برای کسب اطلاعات بیشتر درباره این خطا، این مراحل را دنبال کنید:

  1. مطمئن شوید Android Debug Bridge (adb) در رایانه‌تان نصب شده باشد.
  2. مطمئن شوید اشکال‌زدایی USB در دستگاهتان فعال باشد. برای اطلاعات بیشتر، به عیب‌یابی برنامه مراجعه کنید.
  3. دستگاه Android خود را به رایانه متصل کنید یا شبیه‌ساز را راه‌اندازی کنید.
  4. فرمان زیر را در پایانه یا خط فرمان رایانه‌تان اجرا کنید:

    adb logcat -s WalletMerchantError

پاسخ دلیل خطا را نشان می‌دهد. برای مثال، ممکن است این موارد را ببینید:

02-26 17:41:28.133 14593 14593 W WalletMerchantError: Error in loadPaymentData: This
merchant profile does not have access to this feature.

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

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

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

OR_BIBED_06 دروازه ناشناس 'yourgateway'
درحال‌حاضر Google Pay API از مقدار دارایی gateway که در tokenizationSpecification مشخص کرده‌اید پشتیبانی نمی‌کند. برای کسب اطلاعات بیشتر درباره شناسه درگاه و فیلدهای مرتبط آن، مثل gatewayMerchantId، با درگاهتان تماس بگیرید.
OR_BIBED_06 از درگاه «نمونه» نمی‌توان در حالت تولید استفاده کرد.
مقدار ویژگی درگاه نمونه فقط برای اهداف آزمایشی استفاده می‌شود و نمی‌تواند با مقدار پارامتر محیط WalletOptions که روی WalletConstants.ENVIRONMENT_PRODUCTION تنظیم شده است استفاده شود. برای کسب اطلاعات بیشتر درباره پارامترهای gateway که باید با «میانای برنامه‌سازی کاربردی Google Pay» استفاده کنید، با درگاهتان تماس بگیرید.

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

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

‫OR_BIBED_07 این API به کتابخانه خدمات Google Play نسخه ۸.۴ و بالاتر نیاز دارد
مطمئن شوید «خدمات Google Play» در دستگاهی که برنامه را اجرا می‌کند به‌روز باشد.
OR_BIBED_07 هیچ کلیدی برای این نمایه فروشنده پیدا نشد
باید کلید رمزگذاری عمومی‌تان را بااستفاده از کنسول Pay و کیف پول Google در Google ثبت کنید تا DIRECT tokenizationSpecification type ادغام را تکمیل کنید.
OR_BIBED_07 این نمایه فروشنده به این ویژگی دسترسی ندارد.
فرایند ثبت برنامه برای Google Pay API را تکمیل نکرده‌اید. برای اطلاعات بیشتر، درخواست دسترسی تولید را مرور کنید.
OR_BIBED_10 این فروشنده در منطقه‌ای است که Google Pay در آن پذیرفته نمی‌شود.
سرویس Google Pay در این منطقه دردسترس نیست. برای اطلاعات بیشتر، فهرست کشورهای پشتیبانی‌شده را ببینید
OR_BIBED_11 این فروشنده ثبت‌نام برای استفاده از Google Pay API را تکمیل نکرده است. لطفاً برای تأیید به کنسول (https://pay.google.com/business/console) بروید.
فرایند ثبت برنامه‌تان را برای Google Pay API تکمیل نکرده‌اید. برای اطلاعات بیشتر، درخواست دسترسی تولید را مرور کنید.
OR_BIBED_12 این یکپارچه‌سازی «میانای برنامه‌سازی کاربردی Google Pay» غیرفعال است. لطفاً برای اطلاعات بیشتر با ما تماس بگیرید (https://developers.google.com/pay/api/faq#how-to-get-support).
برای کسب اطلاعات بیشتر درباره مراحل لازم برای فعال کردن مجدد Google Pay API برای حسابتان، با ما تماس بگیرید.
OR_BIBED_13 اثر انگشت‌های کلید امضا {11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:11:22:33:44:55} با سوابق ما برای این برنامه مطابقت ندارد.
فقط درصورتی می‌توان از Google Pay API در حالت تولید استفاده کرد که APK با کلید امضای صحیح امضا شده باشد. برای اطلاعات بیشتر، به امضای برنامه مراجعه کنید.

بازرگانان مستقیم

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

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

وب‌نمای Android

OR_BIBED_15 ‫Google Pay به‌درستی بار نشد چون این «برنامه» از «وب‌نما» استفاده می‌کند. توسعه‌دهندگان نرم‌افزار باید دستورالعمل‌ها را دنبال کنند تا Google Pay در «وب‌نمای Android» فعال شود.
برای فعال کردن Google Pay API برای «وب‌نمای Android»، دستورالعمل‌ها را دنبال کنید.

CardInfo

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

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

  • باید createButton API را پیاده‌سازی کنید.
  • باید ButtonOptions.buttonType را روی buy، long، یا pay پیکربندی کنید.
  • کاربر باید روش پرداخت دردسترس داشته باشد، همان‌طور که توسط CardParameters شیء شما تعریف شده است.