วิธีการทำงานของ Payment Request API

เรียนรู้วิธีการทำงานของ Payment Request API ในระดับสูง

API คำขอการชำระเงิน

เมื่อลูกค้าพยายามจะซื้อสินค้าจากเว็บไซต์ของคุณ เว็บไซต์ต้องขอสิทธิ์ ลูกค้าระบุข้อมูลการชำระเงิน และสามารถเลือกข้อมูลอื่นๆ เช่น ค่ากำหนดการจัดส่ง คุณสามารถทำได้อย่างง่ายดายและรวดเร็วโดยใช้ Payment Request API (PR API)

โครงสร้างพื้นฐาน

การสร้างออบเจ็กต์ PaymentRequest ต้องใช้พารามิเตอร์ 2 ตัว ได้แก่ payment วิธีการชำระเงินและรายละเอียดการชำระเงิน นอกจากนี้ พารามิเตอร์ payment options ที่ 3 จะระบุหรือไม่ก็ได้ คำขอพื้นฐานอาจมีลักษณะดังนี้

const request = new PaymentRequest(paymentMethods, paymentDetails);

มาดูวิธีสร้างและใช้งานพารามิเตอร์แต่ละรายการกัน

วิธีการชำระเงิน

พารามิเตอร์แรก paymentMethods คือรายการวิธีการชําระเงินที่รองรับใน ตัวแปรอาร์เรย์ แต่ละองค์ประกอบในอาร์เรย์จะประกอบด้วย 2 องค์ประกอบ ได้แก่ supportedMethods และ data (ไม่บังคับ)

สำหรับ supportedMethods ผู้ขายต้องระบุวิธีการชำระเงิน ตัวระบุ เช่น https://bobbucks.dev/pay การมีอยู่และเนื้อหาของ data ขึ้นอยู่กับ เนื้อหาของ supportedMethods และการออกแบบของผู้ให้บริการแอปการชำระเงิน

ข้อมูลทั้ง 2 อย่างนี้ควรมาจากผู้ให้บริการแอปการชำระเงิน

// Supported payment methods
const paymentMethods = [{
  supportedMethods: 'https://bobbucks.dev/pay',
  data: {
    ... // Optional parameters defined by the payment app provider.
  }
}];

รายละเอียดการชำระเงิน

พารามิเตอร์ที่ 2 คือ paymentDetails จะส่งเป็นออบเจ็กต์และระบุ รายละเอียดการชำระเงินสำหรับธุรกรรม ซึ่งมีค่า total ซึ่งเป็นค่าที่ต้องระบุ ซึ่งระบุจำนวนเงินทั้งหมดที่ต้องชำระจากลูกค้า และพารามิเตอร์นี้ยังสามารถ แสดงรายการสินค้าที่ซื้อหรือไม่ก็ได้

ในตัวอย่างด้านล่าง รายการตัวเลือกสินค้าที่ซื้อ (มีเพียง 1 รายการในส่วนนี้ ) ปรากฏตามจำนวนเงินทั้งหมดที่ต้องชำระ ในทั้ง 2 กรณี สกุลเงิน จะระบุด้วยจำนวนเงินแต่ละรายการ

const paymentDetails = {
  displayItems: [{
    label: 'Anvil L/S Crew Neck - Grey M x1',
    amount: { currency: 'USD', value: '22.15' }
  }],
  total: {
    label: 'Total due',
    amount: { currency: 'USD', value : '22.15' }
  }
};

ตรวจสอบว่าวิธีการชำระเงินพร้อมให้บริการหรือไม่

Chrome ตรวจสอบว่าผู้ใช้และสภาพแวดล้อมพร้อมชำระเงินหรือไม่ ระหว่างการสร้างออบเจ็กต์ PaymentRequest

หากต้องการตรวจสอบว่าผู้ใช้และสภาพแวดล้อมพร้อมชำระเงินหรือไม่ โปรดโทร canMakePayment()ก่อนเรียกใช้ขั้นตอนการชำระเงิน การโทร canMakePayment() จะส่งกลับ true หากเบราว์เซอร์รองรับการชำระเงินอย่างน้อย 1 รายการ ที่ระบุในออบเจ็กต์

request.canMakePayment().then(result => {
  if (result) {
    // This browser supports the specified payment method.
  } else {
    // This browser does NOT support the specified payment method.
  }
}).catch(e => {
  // An exception
});

ดูข้อมูลเพิ่มเติมเกี่ยวกับ PaymentRequest.canMakePayment() ใน MDN

เมธอด show()

หลังจากตั้งค่าพารามิเตอร์ 2 รายการและสร้างออบเจ็กต์ request ตามที่แสดงแล้ว ด้านบน คุณสามารถเรียกใช้วิธี show() ซึ่งจะแสดงผู้ใช้แอปการชำระเงิน ของ Google

request.show().then(response => {
  // [process payment]
  // send to a PSP etc.
  response.complete('success');
});

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

ท้ายที่สุด คุณสามารถปิด UI คำขอการชำระเงิน โดยดำเนินการตามกระบวนการให้เสร็จสมบูรณ์ด้วย response.complete('success') หรือ response.complete('fail') ขึ้นอยู่กับ ผลลัพธ์ที่ PSP แสดงผล

รายการถัดไป

ดูข้อมูลเพิ่มเติมเกี่ยวกับการชำระเงินผ่านเว็บ