ตอนที่ผมเขียนโปรแกรมใหม่ๆ สิ่งหนึ่งที่ผมคิดไม่ออกและคาดว่ามีแต่เทพจุติเท่านั้นทำได้ คือการเขียนโค้ดให้ตัดเงินผ่านบัตรเครดิต สิ่งที่คิดตอนนั้นคือเราจะต้องไปคุยกับธนาคาร เพื่อให้ธนาคารเปิดเผยข้อมูลแก่เรา รวมถึงยอมให้เราเชื่อมต่อเข้าไปยังฐานข้อมูลของธนาคารได้ ทั้งต้องรู้อะไรอีกไม่รู้ ถึงจะตัดเงินผ่านบัตรเครดิตได้
มันไม่รู้เพราะไม่รู้ พอไม่รู้สมองมันก็จิตนาการไปต่างๆนาๆ ว่าน่าจะอย่างนั้นน่าจะอย่างนี้ ยิ่งคิดยิ่งรู้สึกมันยากและมีความซับซ้อนสูงมาก
แต่เมื่อผมมารู้ความจริง สิ่งที่เคยคิดว่าต้องเซียนเท่านั้นที่ทำได้ มันผิดหมด ผิดชนิดที่บอกได้คำเดียวว่าผิดชิบหาย อันที่จริงการตัดเงินผ่านบัตรเครดิต แม้แต่เด็กที่เพิ่งเขียน HTML ยังทำได้เลย
ความเป็นจริงของการเขียนโปรแกรมตัดเงินผ่านบัตรเครดิต
เราแค่สร้างฟอร์มซ่อนตัวแปรที่ทางธนาคารกำหนดมาให้ เช่น รหัสร้านค้าของเรา (ธนาคารจะให้มาตอนไปติดต่อ), ID รายการสั่งซื้อ (ทางธนาคารจะส่งกลับมาให้เรา พร้อมบอกว่าตัดเงินได้หรือเปล่า เราจะได้เอา ID อันนี้ไปจัดการกับรายการในฐานข้อมูลเรา), คำอธิบายรายการ (เพียงเล็กน้อย เวลาเราเข้าไประบบด้านหลังของธนาคาร เราจะได้ทราบคร่าวๆว่า เงินที่ได้มา มาจากการขายอะไร หรือบริการอะไร), จำนวนเงิน, URL ที่จะรับค่าตัวแปรจากทางธนาคาร (เวลาทำรายการเสร็จธนาคารเขาจะ submit form ส่งข้อมูลความสำเร็จ มาให้เรา)
ลองจินตนาการภาพนี้ตาม ลูกค้าท่านหนึ่งเข้ามายังเว็บไซต์ เขาเลือกว่าจะซื้อสินค้าอะไร หยิบลงใส่ตะกร้า จากนั้นจะเข้าสู่หน้าคิดเงิน จำนวนของเท่าไร แต่ละชิ้นราคาเท่าไร คิดเป็นเงินเท่าไร ที่อยู่ในการจัดส่งที่ไหน ค่าขนส่งกี่บาท พอลูกค้าเตรียมข้อมูลให้เรียบร้อย จะไปหน้าสรูปรายการอีกทีแล้วให้กดยืนยัน จากนั้นจะวิ่งเข้าไปหน้าตัดเงินผ่านบัตรเครดิต หยุดตรงนี้แล้วย้อนกลับนิดนึง ตรงหน้าสรุปนั่นแหละ จะมีการซ่อนฟอร์มที่ผมเขียนไว้ด้านบน เมื่อลูกค้ากดยืนยัน หน้าที่ของเราจบแล้วตรงนี้ เราไม่ได้ทำอะไรเลยนอกจากส่งฟอร์มให้ธนาคาร เราไม่ได้ตัดเงินผ่านบัตรเครดิตเอง เราไม่ได้รับรู้ว่าฐานข้อมูลธนาคารเป็นอย่างไร เราหมดหน้าที่แล้ว แค่ส่งฟอร์ม (บางทีท่านอาจจะเห็นคำๆหนึ่ง connecting to payment gateway… นี่เป็นเพียงแค่การแหกตาครั้งมโหฬาล แค่ขึ้นคำมาแล้วหน่วงเวลาไว้เท่านั้น เพื่อให้ลูกค้ารู้สึกว่า ระบบกำลังติดต่อกับทางธนาคารนะ เปล่าเลย แค่หน่วงไว้เท่านั้นแหละ ไม่มีอะไรเลย) ต่อจากนั้นจะเป็นหน้าของธนาคารแล้ว ไม่ใช่ของเราอีกต่อไป ลูกค้าก็ทำโน่นนี่นั่นไป ตามที่ธนาคารเตรียมตัวไว้ (ย้ำไม่ใช่หน้าของเราอีกแล้ว) หลังทำอะไรๆเสร็จ ธนาคารจะมีปุ่มให้คลิกกลับมายังหน้าเว็บไซต์เราอีกครั้ง ธนาคารมันจะแอบส่งข้อมูลตัวแปรการทำธุรกรรมมาให้เรา จึงเป็นหน้าที่เราอีกครั้ง ที่จะหยิบเอาตัวแปรต่างๆ ไปอัปเดตในฐานข้อมูล
เท่านี้จริงๆ เราไม่ใช่คนตัดเงินเลย เราแค่ส่งลูกค้าไปให้ธนาคารพร้อมข้อมูลเพียงเล็กน้อย เมื่อทุกอย่างเสร็จธนาคารจะส่งลูกค้ากลับมาที่เรา
จะขอ payment gateway กับทางธนาคารได้อย่างไร
เข้าไปที่ธนาคาร แล้วบอกว่าต้องการขอ payment gateway ธนาคารเขาจะมีเงื่อนไขอยู่บางอย่างคือ ขอเงินประกันไว้ประมาณ 1 แสนบาทในบัญชีฝากประจำ ห้ามถอนจนกว่าจะเลิกกิจการ (ถ้าเป็นบริษัทใหญ่ บางทีธนาคารจะไม่ขอเงินส่วนนี้) ธนาคารจะขอ 3 เปอร์เซ็นต์ (ถ้าผมจำไม่ผิดนะ ต้องลองโทรไปคุยกับธนาคารเอง) ต่อรายการ และธนาคารจะขอหลักฐานนู่นนี่นั่น จำไม่ค่อยได้แล้ว ลองคุยกับธนาคารดูว่าอยากได้เอกสารอะไรบ้าง ซึ่งไม่มีอะไรซับซ้อน
ถ้าทุกอย่างเรียบร้อย ธนาคารจะลงทะเบียนให้เรา ให้ merchant ID เรา (ธนาคารเขาจะได้รู้ว่าพ่อค้าคนไหน) และให้วิธีการส่งข้อมูลให้ธนาคาร ซึ่งมันก็แค่ฟอร์มที่เหมือนกันทุกร้านค้า ต่างแค่ merchant ID นั่นแหละ เท่านั้น
ผมแนะนำว่า ลองหยิบโทรศัพท์ขึ้นมาแล้วหลอกถามข้อมูลจากธนาคารดู แสร้งทำตัวว่าสนใจจะตัดเงินผ่านบัตรเครดิต ถามเขาว่าต้องทำไงบ้าง ทางธนาคารจะบอกข้อมูลหมดครับ ธนาคารไม่รู้หรอกว่าท่านใส่ชุดนักศึกษาและกำลังยืนเยี่ยวอยู่ข้างทาง
หวังว่าบทความนี้จะให้ความกระจ่างเรื่องการตัดเงินผ่านบัตรเครดิตแก่ท่าน เชื่อผม submit ฟอร์มเด็กเพิ่งหัดเขียน HTML ก็ทำเป็น
ภัทรธมน says:
03/09/2556 at 03/09/2556
เป็นพระคุณอันยิ่งยวดค่ะ
คิดแบบนั้นจริงๆว่าต้องขั้นเทพถึงทำได้
กำลังเรียนรู้เรื่องนี้อยู่พอดีเลยค่ะ
ขอบคุณสำหรับบทความดีๆ มีประโยชน์แบบนี้นะคะ
โจ้ says:
29/09/2556 at 29/09/2556
ขอบคุณมากก
Boss says:
17/12/2556 at 17/12/2556
ขอบคุณครับ สำหรับทความดีๆ