การแก้ปัญหา

คู่มือการแก้ปัญหาบนเว็บครอบคลุมปัญหาและคำถามที่เกี่ยวข้องกับหัวข้อต่อไปนี้

การลงทะเบียนและการเข้าถึง

คุณอาจพบข้อผิดพลาดต่อไปนี้ในบางจุดของการผสานรวม รายการนี้มีคำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดเหล่านี้

ผู้ขายรายนี้ไม่ได้เปิดใช้ Google Pay
Google Pay API ต้องใช้ merchantId ของ Google สำหรับเว็บไซต์ที่กำหนดค่า PaymentsClient สำหรับสภาพแวดล้อม PRODUCTION บัญชี Google merchantId จะเชื่อมโยงกับโดเมนที่สมบูรณ์อย่างน้อย 1 โดเมนผ่าน 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" ของคุณไม่ได้ลงทะเบียนเพื่อใช้ API นี้
โดเมนที่โฮสต์การชำระเงินไม่ได้เชื่อมโยงกับ merchantId ที่คุณใช้ ตรวจสอบว่าพารามิเตอร์ merchantId ถูกต้องและโดเมนของคุณ ลงทะเบียนผ่าน Google Pay และ Wallet Console
ควรเรียกใช้ Google Pay API ในบริบทที่ปลอดภัย
API ของ Google Pay ใช้ได้เฉพาะในเว็บไซต์ในบริบทที่ปลอดภัยเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ บริบทที่ปลอดภัย
ไม่พบคีย์สำหรับโปรไฟล์ผู้ขายนี้
คุณต้องลงทะเบียนคีย์การเข้ารหัสสาธารณะกับ Google ผ่าน Google Pay & Wallet Console เพื่อให้การผสานรวม DIRECTtokenizationSpecification type เสร็จสมบูรณ์

merchantId

คุณอาจพบข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับ merchantId ในการผสานรวม ในบางครั้ง รายการนี้มีคำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดเหล่านี้

ต้องตั้งค่า merchantId
ต้องตั้งค่าพารามิเตอร์ merchantId ภายใน PaymentDataRequest เป็นค่าที่ระบุโดยใช้ Google Pay & Wallet Console พารามิเตอร์ A merchantId จำเป็นต่อเมื่อคุณใช้ PaymentsClient ที่กำหนดค่าไว้สำหรับสภาพแวดล้อม PRODUCTION เท่านั้น โปรดอ่าน รายการตรวจสอบการผสานรวม เพื่อขอรับการตรวจสอบการใช้ Google Pay API ของเว็บไซต์และรับ merchantId
merchantId ไม่ใช่สตริง
พารามิเตอร์ merchantId ภายใน PaymentDataRequest ต้องเป็นสตริงเสมอ ตรวจสอบว่าประเภทของพารามิเตอร์ merchantId ที่คุณใช้ เป็นสตริงก่อนเรียก API
ไม่ได้ลงทะเบียน merchantId
ต้องจัดสรรพารามิเตอร์ merchantId ภายใน PaymentDataRequest ผ่าน Google Pay และ Wallet Console ดูข้อมูลเพิ่มเติมได้ที่ขอสิทธิ์เข้าถึงเวอร์ชันที่ใช้งานจริง

ความถูกต้องของเกตเวย์

คุณอาจพบข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับความถูกต้องของเกตเวย์ในบางจุดของการผสานรวม รายการนี้มีคำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดเหล่านี้

เกตเวย์ที่ไม่รู้จัก 'yourgateway'
ขณะนี้ Google ยังไม่รองรับพารามิเตอร์เกตเวย์ที่คุณระบุใน paymentMethodTokenizationParameters.parameters โปรดติดต่อเกตเวย์เพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับ ตัวระบุเกตเวย์และฟิลด์ที่เกี่ยวข้อง เช่น gatewayMerchantId
ใช้เกตเวย์ "example" ในโหมดการใช้งานจริงไม่ได้
ค่าพารามิเตอร์เกตเวย์ตัวอย่างใช้เพื่อการทดสอบเท่านั้น และใช้กับ PaymentsClient ที่กำหนดค่าไว้สำหรับสภาพแวดล้อม PRODUCTION ไม่ได้ โปรดติดต่อเกตเวย์ของคุณเพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับPaymentMethodTokenizationSpecification ค่าพารามิเตอร์ที่คุณต้องตั้งค่าเพื่อใช้กับ Google Pay API

ความถูกต้องของออบเจ็กต์

คุณอาจพบข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับความถูกต้องของออบเจ็กต์ในบางจุดของการผสานรวม รายการนี้มีคำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดเหล่านี้

PaymentDataRequest ของ Google Pay ไม่ใช่ JSON ที่ถูกต้อง
พารามิเตอร์ที่ระบุให้กับ loadPaymentData ต้องเป็นออบเจ็กต์ PaymentDataRequest ที่ถูกต้องเสมอ
ต้องตั้งค่า transactionInfo
พารามิเตอร์ transactionInfo ภายใน PaymentDataRequest ต้องเป็นออบเจ็กต์ TransactionInfo ที่ถูกต้องเสมอ

ผู้ขายโดยตรง

คุณอาจพบข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับผู้ขายโดยตรงในบางจุดของการผสานรวม รายการนี้มีคำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดเหล่านี้

การยืนยันลายเซ็น
คุณอาจพบข้อผิดพลาดในการยืนยันลายเซ็นหาก merchantId ไม่ถูกต้อง ซึ่งอาจเกิดขึ้นในสภาพแวดล้อม TEST เมื่อคุณใช้ ไลบรารีโทเค็นวิธีการชำระเงินของ Tink หากต้องการหลีกเลี่ยงปัญหานี้ ให้ตั้งค่า YOUR_MERCHANT_ID เป็น 12345678901234567890 ใน
.recipientId("merchant:YOUR_MERCHANT_ID")
ถอดรหัสโทเค็นไม่ได้
หากคุณใช้ไลบรารี paymentmethodtoken ของ Tink เพื่อถอดรหัสโทเค็น โปรดทราบสิ่งต่อไปนี้
  • ตรวจสอบว่าสภาพแวดล้อมการตอบกลับของ Google Pay API สอดคล้องกับสภาพแวดล้อม paymentmethodtoken ของ Tink ดูรายละเอียดเพิ่มเติมได้ที่ตัวอย่างต่อไปนี้
    • หากสภาพแวดล้อม TEST ส่งคืนการตอบกลับของ Google Pay API แสดงว่า Tink ชี้ไปยังสภาพแวดล้อมการทดสอบสำหรับการถอดรหัส
  • อย่าแก้ไขการตอบกลับจาก Google Pay API ก่อนที่จะส่งไปยัง Tink ตรวจสอบว่าคุณ ส่งโทเค็นทั้งหมดที่ได้จากการตอบกลับของ Google Pay API ดูรายละเอียดเพิ่มเติมได้ที่หมายเหตุต่อไปนี้
  • ตรวจสอบว่าคุณมีคีย์ส่วนตัวที่เหมาะสมซึ่งเชื่อมโยงกับคีย์สาธารณะที่คุณลงทะเบียน กับ Google
สร้างคู่คีย์สาธารณะและส่วนตัวใน Windows
หากใช้ Windows และต้องการทำตามขั้นตอนที่ระบุไว้ใน ใช้ OpenSSL เพื่อสร้างคู่คีย์ส่วนตัวและคีย์สาธารณะ โปรดตรวจสอบว่าได้ติดตั้ง Cygwin ในเครื่องแล้ว ซึ่งจำเป็นต่อการเรียกใช้คำสั่ง Linux

ออบเจ็กต์ข้อผิดพลาด

ออบเจ็กต์ข้อผิดพลาดคือออบเจ็กต์ที่ส่งคืนโดย Promise ที่ถูกปฏิเสธจากเมธอด 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 ซึ่งจะแสดงทั้งเครือข่ายแบรนด์บัตรและตัวเลข 4 หลักสุดท้ายของบัตร
เหตุใดฟีเจอร์ CardInfo จึงไม่แสดงในการติดตั้งใช้งานของฉัน

เรากำหนดเงื่อนไขต่อไปนี้เพื่อให้ฟีเจอร์ CardInfo ทำงานได้

  • คุณต้องใช้ createButton API
  • คุณต้องกำหนดค่า ButtonOptions.buttonType เป็น buy, long หรือ pay
  • ผู้ใช้ต้องมีวิธีการชำระเงินที่ใช้ได้ตามที่กำหนดไว้ในออบเจ็กต์ CardParameters
เหตุใดปุ่มชำระเงินด้วย Google Pay จึงโหลดอย่างไม่มีกำหนด
อย่านำ Listener เหตุการณ์ onLoad ออก หากนำ onLoad Event Listener ออก อาจทำให้ปุ่มชำระเงินของ Google Pay โหลดอย่างไม่มีกำหนด
ทำไมจึงไม่มีข้อความแจ้งการชำระเงินหลังจากที่ฉันคลิกปุ่มชำระเงินด้วย Google Pay
กำหนด Callback ของ Listener เหตุการณ์ให้กับ ButtonOptions.onClick เหตุการณ์

ข้อผิดพลาด OR_BIBED_15 รายการ

คุณอาจพบข้อผิดพลาด OR_BIBED_15 ในบางจุดของการผสานรวม รายการนี้มี คำแนะนำในการแก้ปัญหาที่เป็นประโยชน์ในกรณีที่เกิดข้อผิดพลาดนี้

การทำงานกับ WebView
ทําตามคําแนะนําสําหรับ Android และ iOS เพื่อให้แน่ใจว่าการผสานรวมเข้ากันได้กับ WebView
Cross-Origin-Opener-Policy ส่วนหัวการตอบกลับ HTTP
หากตั้งค่าส่วนหัวการตอบกลับ HTTP Cross-Origin-Opener-Policy เป็น same-origin อาจทำให้เบราว์เซอร์ไม่เปิดป๊อปอัปที่จำเป็นเพื่อให้ผู้ใช้ทำธุรกรรมให้เสร็จสมบูรณ์ ลองเปลี่ยนค่าของส่วนหัวเป็น same-origin-allow-popups เพื่อลดปัญหาดังกล่าว
ความล่าช้าระหว่างเหตุการณ์คลิกของผู้ใช้กับการเรียกใช้ loadPaymentData()
หากมีความล่าช้าหลังจากคลิกปุ่ม Google Pay (หรือปุ่มชำระเงินที่คล้ายกัน) และก่อนการเรียก loadPaymentData() (ตัวอย่างเช่น setTimeout(), การเรียกเครือข่ายเพิ่มเติม หรือตรรกะที่ทำงานเป็นเวลานานที่คล้ายกัน) อาจทำให้กลไกการบล็อกป๊อปอัปของเบราว์เซอร์ทริกเกอร์ เราขอแนะนำว่าไม่ควรตั้งค่าความล่าช้าระหว่างการคลิกของผู้ใช้กับคำสั่งเรียก loadPaymentData()