Apple Pay และ Google Pay ใช้งานหมายเลขบัตรอย่างไร และ dynamic_last4 คืออะไร

เมื่อลูกค้าเพิ่มบัตรของตนไปยัง Apple Pay หรือ Google Pay ทาง Apple และ Google จะสร้างหมายเลขบัตรใหม่ (เรียกว่า DPAN หรือ Device PAN) ขึ้นมาโดยอัตโนมัติพร้อมกับกำหนดวันที่หมดอายุใหม่ DPAN ที่ว่านี้จะแตกต่างไปจากหมายเลขบัตรจริงโดยสิ้นเชิง

บริษัทผู้ออกบัตรมักจะใช้ "DPAN BIN" แบบคู่สำหรับ PAN BIN แต่ละรายการ (โดยมีประเภทแหล่งเงินที่นำมาใช้จ่ายตรงกันและมักจะยาว 8 หลัก) แต่ก็ไม่ได้สม่ำเสมอตรงตามนี้ทุกครั้งไป

ขั้นตอนทั้งหมดนี้จะเกิดขึ้นในเบื้องหลังและไม่มีการแสดงให้เจ้าของบัตรเห็นอย่างชัดเจน เมื่อไรก็ตามที่ลูกค้าใช้ Apple Pay หรือ Google Pay ชำระค่าสินค้าบริการ ระบบก็จะส่ง DPAN นี้ไปยังผู้ค้า/ผู้ประมวลผล โดยที่ผู้ค้า/ผู้ประมวลผลจะไม่เห็นหมายเลขบัตรจริงหรือวันที่หมดอายุจริงโดยเด็ดขาด

ปัญหาหนึ่งของการใช้ขั้นตอนแบบนี้ก็คือข้อมูลเกี่ยวกับบัตรที่ใช้ซื้อสินค้าบริการที่ระบบแสดงให้ผู้ค้าเห็นจะต่างไปจากหมายเลขบัตรจริงของลูกค้า เนื่องจากฝั่งผู้ค้าก็จะใช้หมายเลข 4 หลักสุดท้ายของ DPAN เป็นข้อมูลอ้างอิงแทน

Apple และ Google แก้ไขปัญหานี้โดยการส่งหมายเลข 4 หลักสุดท้ายของหมายเลขบัตรจริงไปให้ผู้ประมวลผลพร้อมๆ กับ DPAN ซึ่งหมายความว่าทางฝั่งเราจะเรียกเก็บเงินจาก DPAN แต่ว่าเราก็จะแสดงหมายเลข 4 สุดท้ายของหมายเลขบัตรจริงไว้ในคุณสมบัติ last4 ใน API ดังนั้นผู้ค้าก็จะรายงานรายละเอียดเกี่ยวกับบัตรที่ถูกใช้ได้อย่างง่ายดายมากขึ้น ไม่เพียงเท่านั้น เรายังจะแยกใส่เลข 4 หลักสุดท้ายของ DPAN ไว้ในคุณสมบัติ dynamic_last4 เพื่อให้ผู้ค้าสามารถยืนยันรายละเอียดเกี่ยวกับ DPAN ที่เราเรียกเก็บเงินได้ โปรดทราบว่าสำหรับ Apple Card ที่เพิ่มไปยัง Apple Pay ทาง Apple จะไม่แสดงเลข 4 หลักสุดท้ายของหมายเลขบัตรจริง ในกรณีนี้ ทั้ง last4 และ dynamic_last4 จะหมายถึงเลข 4 หลักสุดท้ายของ DPAN กรณีนี้ถือเป็นกรณีพิเศษเนื่องจากจุดประสงค์คือ Apple Card มีไว้สำหรับใช้กับ Apple Pay

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

ในโหมดทดสอบ คุณสมบัติ last4 ของบัตรจะยังคงตรงกับเลข 4 หลักสุดท้ายของบัตรที่เป็นต้นทาง อย่างไรก็ตาม สำหรับ Apple Pay เราจะไม่ใช้ DPAN และใช้หมายเลขบัตรทดสอบ 4242424242424242 โดยอัตโนมัติ เนื่องจากหมายเลขบัตรทดสอบ 4242 เป็นบัตร Visa ก็หมายความว่าแบรนด์ของบัตรและประเภทแหล่งเงินที่นำมาใช้จ่ายที่แสดงในแดชบอร์ดกับ API ก็จะเป็น Visa และเครดิต ถึงแม้ว่าบัตรใบจริงที่ใช้จะเป็นบัตรแบรนด์อื่นหรือว่ามีประเภทแหล่งเงินที่นำมาใช้จ่ายประเภทอื่นก็ตาม ในส่วนของ Google Pay ทาง Google จะแทนที่ DPAN ด้วยหนึ่งในหมายเลขบัตรทดสอบจากชุดทดสอบของตน และก็จะมีปัญหาข้อมูลไม่ตรงกับบัตรจริงที่ใช้เช่นเดียวกัน