นักพัฒนาระบบหลายๆ ทาน อาจเคยเจอเหมือนกับผม คือ ลูกค้าต้องการทำเว็บไซต์ขายของ มักจะมาด้วยว่าอยากให้ตัดเงินผ่านบัตรเคดิตได้ด้วย จะว่าทำง่ายก็ง่าย จะว่ายากก็ยาก เรามาดูหลักการทำเขียนโปรแกรมตัดเงินผ่านบัตรเครดิตกันเลยครับ
บริการจ่ายเงินผ่านบัตรเครดิต (Credit card payment gateway) มี 2 รูปแบบหลักๆ ดังนี้ครับ
1. เปิด gateway กับทางธนาคารโดยตรง
โดยติดต่อไปที่ธนาคาร ซึ่งมักจะ require บางอย่างเช่น ต้องจดทะเบียน e-commerce กับกระทรวงพาณิชย์ก่อน ต้องซื้ือ SSL ที่มีชื่อเสียง ระดับนานาชาติยอมรับ ต้องมีโปรแกรมเมอร์ที่เขียนโปรแกรมผ่าน webservice เป็น ต้องเป็นบริษัทที่มีทุนจดทะเบียน 2 ล้านบาทขึ้นไป ต้องวางเงินค้ำประกัน(บางแห่ง) นั่นหมายถึง Cost ที่สูงขึ้น มีงบทำเว็บไซต์แค่ 1-3 หมื่น บอกได้เลยว่าไม่พอ
จะขอ payment gateway กับทางธนาคารได้อย่างไร
เข้าไปที่ธนาคาร แล้วบอกว่าต้องการขอ payment gateway ธนาคารเขาจะมีเงื่อนไขอยู่บางอย่างคือ ขอเงินประกันไว้ประมาณ 1 แสนบาทในบัญชีฝากประจำ ห้ามถอนจนกว่าจะเลิกกิจการ (ถ้าเป็นบริษัทใหญ่ บางทีธนาคารจะไม่ขอเงินส่วนนี้) ธนาคารจะขอ 3 เปอร์เซ็นต์ (ถ้าผมจำไม่ผิดนะ ต้องลองโทรไปคุยกับธนาคารเอง) ต่อรายการ และธนาคารจะขอหลักฐานนู่นนี่นั่น จำไม่ค่อยได้แล้ว ลองคุยกับธนาคารดูว่าอยากได้เอกสารอะไรบ้าง ซึ่งไม่มีอะไรซับซ้อน
ถ้าทุกอย่างเรียบร้อย ธนาคารจะลงทะเบียนให้เรา ให้ merchant ID เรา (ธนาคารเขาจะได้รู้ว่าพ่อค้าคนไหน) และให้วิธีการส่งข้อมูลให้ธนาคาร ซึ่งมันก็แค่ฟอร์มที่เหมือนกันทุกร้านค้า ต่างแค่ merchant ID นั่นแหละ เท่านั้น
ลองจินตนาการภาพนี้ตาม ลูกค้าท่านหนึ่งเข้ามายังเว็บไซต์ เขาเลือกว่าจะซื้อสินค้าอะไร หยิบลงใส่ตะกร้า จากนั้นจะเข้าสู่หน้าคิดเงิน จำนวนของเท่าไร แต่ละชิ้นราคาเท่าไร คิดเป็นเงินเท่าไร ที่อยู่ในการจัดส่งที่ไหน ค่าขนส่งกี่บาท พอลูกค้าเตรียมข้อมูลให้เรียบร้อย จะไปหน้าสรูปรายการอีกทีแล้วให้กดยืนยัน จากนั้นจะวิ่งเข้าไปหน้าตัดเงินผ่านบัตรเครดิต หยุดตรงนี้แล้วย้อนกลับนิดนึง ตรงหน้าสรุปนั่นแหละ จะมีการซ่อนฟอร์มที่ผมเขียนไว้ด้านบน เมื่อลูกค้ากดยืนยัน หน้าที่ของเราจบแล้วตรงนี้ เราไม่ได้ทำอะไรเลยนอกจากส่งฟอร์มให้ธนาคาร เราไม่ได้ตัดเงินผ่านบัตรเครดิตเอง เราไม่ได้รับรู้ว่าฐานข้อมูลธนาคารเป็นอย่างไร เราหมดหน้าที่แล้ว แค่ส่งฟอร์ม ต่อจากนั้นจะเป็นหน้าที่ของธนาคารแล้ว ไม่ใช่ของเราอีกต่อไป ลูกค้าก็ทำโน่นนี่นั่นไป ตามที่ธนาคารเตรียมตัวไว้ หลังทำอะไรๆเสร็จ ธนาคารจะมีปุ่มให้คลิกกลับมายังหน้าเว็บไซต์เราอีกครั้ง ธนาคารมันจะแอบส่งข้อมูลตัวแปรการทำธุรกรรมมาให้เรา จึงเป็นหน้าที่เราอีกครั้ง ที่จะหยิบเอาตัวแปรต่างๆ ไปอัปเดตในฐานข้อมูล
เท่านี้จริงๆ เราไม่ใช่คนตัดเงินเลย เราแค่ส่งลูกค้าไปให้ธนาคารพร้อมข้อมูลเพียงเล็กน้อย เมื่อทุกอย่างเสร็จธนาคารจะส่งลูกค้ากลับมาที่เรา
2. เปิด gateway แบบผ่านคนกลาง
เช่น paysbuy,paypal ซึ่งปกติจะให้บริการ e-wallet และการจ่ายเงินตัดบัตรเครดิตโดยตรง ที่ paysbuy เรียกว่า directpay ผู้ที่ต้องการใช้บริการ ต้องมีความน่าเชื่อถือพอสมควร ซึ่งทางคนกลางจะพิจารณาเป็นราย ๆ ไปว่าสมควรจะเปิดให้ใช้หรือไม่ และไม่ต้องการ SSL เพราะเมื่อชำระเงินระบบจะลิ้งไปที่เว็บของ คนกลางเองซึ่งมีระบบ SSL อยู่แล้ว
*** SSL หรือ Secure Socket Layers เป็นโปรโตคอลในการส่งข้อมูลแบบเข้ารหัส ซึ่งวิธีเข้ารหัสจะแตกต่างกันไปในแต่ละเจ้าของ สังเกตุได้ง่าย ๆ เมื่อเข้าเว็บที่ต้องทำธุรกรรมเกี่ยวกับการเงิน ระบบจะ alert ถาม yes/no และ http: จะเป็นเปลี่ยนเป็น https: