ข้ามไปยังเนื้อหาหลัก

Google Pay

เปิดใช้งาน Google Pay™ เพื่อให้ลูกค้าสามารถชำระเงินด้วยบัตรเครดิตหรือบัตรเดบิตที่เชื่อมต่อกับบัญชี Google ของพวกเขา คู่มือนี้จะอธิบายขั้นตอนการชำระเงินและวิธีการติดตั้งใช้งาน

ข้อกำหนดการใช้บริการ

การใช้งาน Google Pay หมายความว่าคุณยอมรับนโยบายการใช้งานที่ยอมรับได้และข้อกำหนดการใช้บริการของ Google

ภูมิภาคที่รองรับ

ภูมิภาคสกุลเงินรองรับการคืนเงินเวอร์ชัน API ขั้นต่ำ
ประเทศไทยTHB✅ รองรับ2017-11-02
ญี่ปุ่นJPY✅ รองรับ2017-11-02
สิงคโปร์SGD✅ รองรับ2017-11-02
มาเลเซียMYR✅ รองรับ2017-11-02

วิธีเปิดใช้งาน

หากต้องการเปิดใช้งาน Google Pay กรุณาส่งอีเมลขอเปิดใช้งานฟีเจอร์นี้ไปที่ support@omise.co

ขั้นตอนการชำระเงิน

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

เมื่อลูกค้าเลือกบัตรที่ต้องการและยืนยันการชำระเงินแล้ว บัตรจะถูกเรียกเก็บเงินในลักษณะเดียวกับขั้นตอนการชำระเงินด้วยบัตรเครดิตปกติ ซึ่งหมายความว่าการตั้งค่าการประมวลผลบัตรปัจจุบันของบัญชีคุณ (เช่น การเปิดใช้งาน 3-D Secure) จะมีผลกับธุรกรรม Google Pay ด้วยเช่นกัน

การใช้งานบนเบราว์เซอร์เดสก์ท็อป

ในการเริ่มต้นชำระเงินด้วย Google Pay ลูกค้าเลือก Google Pay เป็นวิธีการชำระเงินที่ต้องการระหว่างการชำระเงินบนเว็บไซต์ของคุณ ❶ จากนั้นลูกค้าเลือกบัตรเครดิตหรือบัตรเดบิตที่ต้องการ ❷ เมื่อยืนยันแล้ว Omise จะส่ง webhook event (หากเปิดใช้งาน) เพื่อแจ้งว่าการเรียกเก็บเงินเสร็จสมบูรณ์ ❸

Google Pay Desktop Flow

การใช้งานบนแอปพลิเคชันมือถือ

ในการเริ่มต้นชำระเงินด้วย Google Pay ลูกค้าเลือก Google Pay เป็นวิธีการชำระเงินที่ต้องการบนแอปพลิเคชันมือถือของคุณ ❶ จากนั้นลูกค้าเลือกบัตรเครดิตหรือบัตรเดบิตที่ต้องการ ❷ ลูกค้าตรวจสอบและยืนยันการชำระเงิน ❸ Omise จะส่ง webhook event (หากเปิดใช้งาน) เพื่อแจ้งว่าการเรียกเก็บเงินเสร็จสมบูรณ์ ❹

Google Pay Mobile Flow

การติดตั้งใช้งาน

ปฏิบัติตามแนวทางแบรนด์ Google Pay (Web, Android) เพื่อเพิ่มปุ่มชำระเงิน Google Pay ลงบนเว็บไซต์หรือแอป Android ของคุณ หลังจากลูกค้าแตะปุ่มและเลือกบัตรแล้ว คุณจะได้รับ Google Pay token จาก Google ซึ่งประกอบด้วยข้อมูลบัตร จากนั้นคุณส่ง token นี้ไปยังไลบรารีฝั่งไคลเอนต์ของเรา (Omise.js หรือ Android SDK) เพื่อรับ card token ที่สามารถใช้งานกับ Charge API ของเราได้

Omise ถือว่า Google Pay token เป็นข้อมูลบัตรที่ละเอียดอ่อนเช่นเดียวกัน ดังนั้น หากคุณไม่มีใบอนุญาต PCI-DSS token เหล่านี้จะต้องถูกแปลงเป็น card token ก่อนที่จะนำไปใช้บนเซิร์ฟเวอร์ของคุณ อ่านเพิ่มเติมได้ที่ การเก็บข้อมูลบัตร

โดยสรุป ให้ทำการเรียก API ดังต่อไปนี้เพื่อสร้าง charge ด้วย Google Pay:

  1. รับ Google Pay token จาก Google เมื่อผู้ใช้เริ่มต้นการชำระเงินผ่านปุ่ม Google Pay
  2. สร้าง card token จาก Google Pay token โดยใช้ Omise.js หรือ Android SDK
  3. สร้าง charge ใหม่โดยใช้ card token ที่ได้รับจากขั้นตอนที่ 2
  4. หลังจากได้รับ webhook event ที่แจ้งว่า charge เสร็จสมบูรณ์ ให้ดึงข้อมูล charge เพื่อตรวจสอบสถานะ (ไม่บังคับ แต่แนะนำ)

แผนภาพลำดับต่อไปนี้แสดงวิธีการรับ card token:

หากคุณใช้ ฟอร์มชำระเงินสำเร็จรูป ของ Omise ปุ่ม Google Pay จะถูกจัดเตรียมไว้ให้ และ card token ที่ใช้งานได้จะถูกส่งกลับมาโดยอัตโนมัติ ใช้ secret key ของคุณเพื่อสร้าง charge บนเซิร์ฟเวอร์

การรับ Google Pay Token

ในการแสดงปุ่ม Google Pay และรับ Google Pay token ให้ทำตามเอกสารสำหรับนักพัฒนา Google Pay Web หรือ Android ในคำขอ API ตรวจสอบให้แน่ใจว่าฟิลด์ต่อไปนี้เป็นไปตามแนวทางด้านล่าง:

  • ฟิลด์ allowedAuthMethods ต้องมีเฉพาะ PAN_ONLY เท่านั้น
  • ฟิลด์ allowedCardNetworks ควรสะท้อนถึงแบรนด์บัตรที่รองรับจาก Capability API
  • ฟิลด์ gateway ตั้งค่าเป็น omise
  • ฟิลด์ gatewayMerchantId คือ public key ของ Omise ของคุณ

หลังจากส่งคำขอ Google Pay token ใหม่จะถูกส่งกลับมาภายใต้ชื่อ token ในการตอบกลับ

โปรดตรวจสอบให้แน่ใจว่าการติดตั้งใช้งานของคุณเป็นไปตามแนวทางแบรนด์ Google Pay Web หรือ Android ด้วย

การสร้าง Card Token

เมื่อคุณได้รับ Google Pay token แล้ว ให้สร้าง card token ใหม่โดยใช้พารามิเตอร์ tokenization ดังต่อไปนี้

ชื่อประเภทคำอธิบาย
methodstring(จำเป็น) ตั้งค่าเป็น string googlepay
datastring(จำเป็น) Google Pay token อ้างอิงจากฟิลด์ token ใน PaymentMethodTokenizationData object
billing_namestring(ไม่บังคับ แต่แนะนำ) ชื่อเจ้าของบัตร อ้างอิงจากฟิลด์ name ใน Address object
billing_citystring(ไม่บังคับ แต่แนะนำ) เมืองในที่อยู่สำหรับเรียกเก็บเงิน อ้างอิงจากฟิลด์ locality ใน Address object
billing_countrystring(ไม่บังคับ แต่แนะนำ) ประเทศในที่อยู่สำหรับเรียกเก็บเงินเป็นรหัส ISO 3166 สองตัวอักษร อ้างอิงจากฟิลด์ countryCode ใน Address object
billing_postal_codestring(ไม่บังคับ แต่แนะนำ) รหัสไปรษณีย์ในที่อยู่สำหรับเรียกเก็บเงิน อ้างอิงจากฟิลด์ postalCode ใน Address object
billing_statestring(ไม่บังคับ แต่แนะนำ) รัฐ/จังหวัดในที่อยู่สำหรับเรียกเก็บเงิน อ้างอิงจากฟิลด์ administrativeArea ใน Address object
billing_street1string(ไม่บังคับ แต่แนะนำ) ที่อยู่บรรทัดที่ 1 อ้างอิงจากฟิลด์ address1 ใน Address object
billing_street2string(ไม่บังคับ) ที่อยู่บรรทัดที่ 2 อ้างอิงจากฟิลด์ address2 ใน Address object
billing_phone_numberstring(ไม่บังคับ) หมายเลขโทรศัพท์ในที่อยู่สำหรับเรียกเก็บเงิน อ้างอิงจากฟิลด์ phoneNumber ใน Address object
ข้อมูลการเรียกเก็บเงิน

โดยค่าเริ่มต้น ชื่อผู้ถือบัตรและที่อยู่สำหรับเรียกเก็บเงินจะไม่ถูกแนบไปกับ card token และชื่อจะแสดงเป็น "Google Pay" ในกรณีดังกล่าว หากต้องการเปลี่ยนพฤติกรรมนี้ ให้ระบุ billing address parameters เมื่อส่งคำขอชำระเงินไปยัง Google ข้อมูลการเรียกเก็บเงินจากการตอบกลับสามารถดูได้ใน Address object

สำหรับ Omise.js ให้ตั้งค่าประเภท input ของ token เป็น tokenization ที่อาร์กิวเมนต์แรกของฟังก์ชัน createToken และส่งพารามิเตอร์ tokenization ที่อาร์กิวเมนต์ที่สอง

Omise.setPublicKey("your_omise_public_key");

tokenParameters = {
method: 'googlepay',
data: '{"signature":"MEQCIA+wGZttxT13yz599zQjYugoz5kClNSmVa39vKv6ZOenAiARRtHQ0aYSrfd3oWhB\/ZtEeJs3ilT\/J0pYz1EWnzU2fw\\u003d\\u003d","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEev+pVoUgtoS+y8Ecz3c72OFBD3d74XJOcnRxVmCV+2TJTW1g4d0UhDkhHeURhHQNvJPyBFHfYIUUj\/EYhYAzgQ\\\\u003d\\\\u003d\",\"keyExpiration\":\"1647856171825\"}","signatures":["MEYCIQClXfVcil7qaG2btVbyzf6x1\/MqCTbbJM\/tGN4iME4M9wIhANL53daWJHdDPpKxR3M\/Jis4WPVb093PW7fChj\/gCQUS"]},"protocolVersion":"ECv2","signedMessage":"{\"encryptedMessage\":\"4JighTc0b1HhRQu+NgQN1XQWWOeB4YyR5cMFi8Vu3FeWHAjPtGs3LjrdpWhJhWekURzD6BZCbg1xakYvAMsahoTyUzDLtNpKmlglFpVjBSSYkPKFT6xovTKsWS7xC\/x9AvJsATtotwN8TTiP3+1dXtLLFClnCTkg9vEvChvXq0FwnrUOBtMiWukBY84R2rpzqNuZoh6gdvWHgPP6RczhtERg+kqKdd4\/UnKE8ElzOWYDmZoJvFhxU\/O97vHW1ohOe8ut94bxiPH6DB82Ec87Mu\/oArsGMpsnFVsWzIcLX+q+KayGRbKxPQzV726fO7GipG94KiF7YfCk1r+D+jkFR7x0ev6l+XRoTz+PKIlhrcn3DEYJudJAP\/Xh2kj\/csnLn4XdKV0aZ5Ua3IauA4fQl80pAo9foujiRGwagHHOfnp6iMjA\/CdG9SNQS3eUdsxtlJKPoK4rtv7cwISNQvoCWMv748YvV3f+LEOWf8couRgrxPCPbk1vO8TfNOgSAjULzRs+C1xy6\/j5aZU46PpomEClDWrujMAcDVqCnExTx2QE9IAb4n02V6UxWv8Dgqv5TsRKjPe7WSCO0+jRWAvs6wBBUbFPHvEe4do+rQ\\\\u003d\\\\u003d\",\"ephemeralPublicKey\":\"BGJhfH3jWMmZtIALmYr7fWxYSNSCFoAT9MCOcbCZdO3LmP6njpGk9LISmr+H1Wk9XUZuMvNQmMHE+yFzW\/sA5lg\\\\u003d\",\"tag\":\"d9a6aVaoIEQm+bTjd5M2HL7+OeIup0Jb6rM1CN7v3NQ\\\\u003d\"}"}',

// เพิ่มข้อมูลการเรียกเก็บเงินของคุณที่นี่ (ไม่บังคับ)
billing_name: 'John Doe',
billing_street1: '1600 Amphitheatre Parkway',
};

Omise.createToken('tokenization', tokenParameters, function(statusCode, response) {
console.log(response)
});

แอตทริบิวต์ id คือตัวระบุ token (ขึ้นต้นด้วย tokn)

การสร้าง Charge

อ้างอิง การชำระเงินด้วยบัตรเครดิต เพื่อเรียกเก็บเงินจากบัตรด้วย card token ที่ได้รับ มีความแตกต่างบางประการระหว่าง card token ที่สร้างจากวิธี tokenization เฉพาะ (googlepay) เมื่อเทียบกับ token ปกติ:

  1. card token เหล่านี้มีฟิลด์ tokenization_method เพื่อบอกว่าใช้วิธี tokenization แบบใดกับบัตร
  2. card token เหล่านี้ไม่สามารถใช้ใน Customers API ได้

ตัวเลือกเพิ่มเติม

เมื่อใช้ ฟอร์มชำระเงินสำเร็จรูป คุณสามารถตั้งค่าการกำหนดค่าเพิ่มเติมเพื่อควบคุม Google Pay API ได้มากขึ้น พารามิเตอร์ที่เกี่ยวข้องอธิบายไว้ด้านล่าง

Data AttributeParameterคำอธิบาย
data-googlepay-merchant-idgooglepayMerchantIdMerchant ID สำหรับ Google Pay (จำเป็นเมื่อรับ traffic จริง)
data-googlepay-request-billing-addressgooglepayRequestBillingAddressตั้งค่าเป็น true เพื่อแนบชื่อผู้ถือบัตรและที่อยู่สำหรับเรียกเก็บเงินไปกับ card token การระบุข้อมูลนี้ช่วยปรับปรุงอัตราการอนุมัติสำหรับผู้ถือบัตรในสหรัฐอเมริกา สหราชอาณาจักร และแคนาดา
data-googlepay-request-phone-numbergooglepayRequestPhoneNumberเมื่อมีการขอที่อยู่สำหรับเรียกเก็บเงินของผู้ถือบัตร ตั้งค่าเป็น true เพื่อแนบหมายเลขโทรศัพท์ของผู้ถือบัตรไปกับ card token ด้วย

รายการพารามิเตอร์ที่รองรับทั้งหมดสามารถดูได้ ที่นี่

การทดสอบและการเปิดใช้งานจริง

เพื่อทดสอบกระบวนการทั้งหมด คุณต้องมีบัญชี Google และเชื่อมต่อบัตรที่สามารถเรียกเก็บเงินได้กับบัญชี หรือใช้ บัตรทดสอบที่มีให้ จาก Google หาก environment ของ Google Pay อยู่ในโหมดทดสอบ หมายเลขบัตรใน Google Pay token จะเป็น 4111 1111 1111 1111 เสมอ คุณสามารถเรียกเก็บเงินจากบัตรนี้ด้วย test key ของ Omise เพื่อจำลองการเรียกเก็บเงินที่สำเร็จ

ในการเปิดใช้งานจริง คุณต้องมี merchant ID ในฟิลด์ merchantId ใน Google Pay API คุณสามารถขอรับได้โดยการลงทะเบียนกับ Google Pay Business Console ในระหว่างการเตรียมพร้อมเปิดตัว ตรวจสอบให้แน่ใจว่าคุณปฏิบัติตาม checklist การรวมระบบ Google Pay Web หรือ Android ด้วย

แหล่งข้อมูลที่เกี่ยวข้อง