Payment Gateway หัดใช้ Payment Gateway กับ Paysbuy.com
พี่ๆ มีลูกค้าจะทำ Website ขายของตัดบัตรเครดิตด้วยพี่ทำได้เป่า ??
พี่ๆไอ้ Paysbuy มันใช้ยังไงอ่ะผมอยากต่อระบบใช้ดูน่าจะเป็นหัวข้อที่ Web Developer หลายๆคนสนใจอยู่
ปัจจุบันการทำธุรกรรมบน Internet ในเมืองไทยต้องเรียกว่า เริ่มมีการใช้งานแล้วก็น่าดีใจครับ ในฐานะ Web Developer ก็จะมีงานให้ทำเพิ่มขึ้น
สำหรับ Scriptdd.com ผมเองก็ใช้บริการ Payment Gateway เหมือนกัน อ๊ะทำเป็นเล่นไป ใครสมัครสมาชิกแบบ Sponsor จะรู้ครับว่า Scriptdd ก็มีตัดบัตรนะครับ )ว่าแล้วเรามาลองศึกษากันดีกว่า เพื่ออนาคตไปทำ Website ขายของตัดบัตรให้ลูกค้าได้ครับบอกไว้ก่อนไม่ได้เป็นหน้าม้า มาเขียนเชียร์ให้ใคร Payment Gateway เจ้าไหนคิดว่าของตัวเองดีก็แนะนำมาได้ ผมใช้ดีแล้วจะบอกต่อเอง
Payment Gateway คืออะไรPayment Gateway คือบริการที่ให้ Website สามารถรับชำระค่าบริการธุรกรรมทางการเงินต่างๆผ่านบัตรเครดิตได้ แต่เดิมแล้วบริการ Payment Gateway จะให้บริการผ่านทางธนาคารต่างๆ
แต่เนื่องจากความยุ่งยากในการเดินเรื่องเอกสารกับทางธนาคาร ไม่ว่าจะการทำรอบบัญชี การวางวงเงินประกันการต้องเป็นบริษัท จดทะเบียนต่าง ๆ ทำให้การเปิด Payment Gateway กับธนาคารมักจะเป็นที่ยุ่งยากสำหรับ Website ขนาดเล็กๆ แนวคิดดังกล่าวจึงมีคนหัวใส เปิด Payment Gateway แทนธนาคารดังกล่าว พูดง่ายๆ คือเป็นคนกลางให้เรา แทนที่จะไปติดต่อกับทางธนาคาร ก็ให้ติดต่อผ่าน Payment Gateway ของเค้าแทนสิ่งที่เราจะได้รับก็คือ สะดวก รวดเร็ว ที่สำคัญ ไม่ต้องปวดหัว แต่ก็แลกกับ การหักค่าธรรมเนียมที่สูงกว่าของธนาคารเล็กน้อย (ผมเรียกว่าค่าหัวคิว )
แล้ว Paysbuy คืออะไรPaysbuy คือบริการที่เป็นตัวกลางในการรับบริการรับชำระสินค้าหรือธุรกรรมทางการเงินผ่านช่องทางต่างๆ ของ Paysbuy
แนวคิดของ Paysbuy จะว่าไปก็เหมือนกับ Paypal ของเมืองนอกคือให้ผู้ใช้งานที่ต้องการชำระบริการ ลงทะเบียนเปิดบัญชี Paysbuy เอาไว้และโอนเงินเข้าไปเป็นเงินในบัญชีของ Paysbuyเสมือนเป็นกระเป๋ากลางเมื่อต้องการชำระเงินให้กับ Website ที่เชื่อมต่อระบบไว้กับ Paysbuy ก็สามารถใช้เงินจากกระเป๋ากลางนี้ไปชำระเงินได้ทันทีผมขอสรุปข้อดีข้อเสียของ Paysbuy เป็นข้อๆ ให้ฟังละกันครับข้อดี ของ Paysbuy สำหรับ Website ขนาดเล็ก
1. ไม่มีค่าบริการรายเดือนกินเปล่า ปกติบริการ Payment Gateway บางเจ้าจะขอเก็บกินเปล่าเดือนละ 300 – 400 บาทซึ่ง Paysbuy ไม่คิดค่าใช้จ่ายตรงนี้
2. ค่าธรรมเนียมของ Paysbuy ไม่แพงมาก ปกติจะคิดประมาณ 3.5 – 3.75% ของยอดค่าบริการนั้นๆ
3. ระบบเสถียรใช้ได้มีการแจ้งความคืบหน้า (โดยเฉพาะ Mail แจ้งเวลามีเงินเข้า ) ค่อนข้างดี
4. สามารถต่อระบบตัดบัตรเครดิตโดยตรงได้ เพียงแต่ระบบทะเบียนบริษัทเข้าในระบบของ Paysbuy เพื่อขอใช้บริการ
ข้อเสีย ของ Paysbuy ในมุมมองของผม
1. ระบบการใช้งาน , การเปิด Account,การยืนยันตัวตน ที่น่าปวดหัวคือผมไม่ค่อยเข้าใจวิธีคิดเท่าไรแต่เอา ขอให้ท่านที่ต้องการใช้งานจริงๆ กรุณาศึกษาขั้นตอนและใจเย็นๆ ครับ ทุกๆ ครั้งที่ท่าน Update ข้อมูลต่างๆ จะมีการยืนยัน Email ให้กับท่านทุกๆครั้ง
2. Manual สำหรับ Website ในมุมมองผม ผมว่า มันยังไม่ละเอียดเท่าไร อ่านแล้วรู้สึกลำบากถ้าจะเริ่มทำความเข้าใจ สำหรับ Web Developer มือใหม่ เอาง่ายๆ ครับ ถ้าคุณ Login เข้าระบบเป็นสมาชิกเมื่อไร คุณจะไม่เจอ Manual ให้ Download (งงเลยผม คนทำคงสับสนเรื่อง Interface มากๆ)ต้อง Logout ออกมาถึงจะ Download ได้ (ไม่เชื่อไปลองดูได้ ผมจะบ้า )
ถ้าให้ผมสรุปข้อดีข้อเสีย ผมต้องยอมรับว่า ปวดกบาลกับ Interface ของ Paysbuy มากๆ ในฐานะของ Web Programmer เผื่อทีมงานของ Paysbuy จะมาอ่าน อิอิ ขอแนะนำให้ท่านแยกการให้บริการระหว่าง ผู้ใช้ กับ ร้านค้า ให้เด็ดขาด ไม่งั้นงงฉิบแต่เนื่องด้วยข้อดีต่างๆ ของ Paysbuy ผมจึงกัดฟันศึกษาจนบรรลุ เอามาเขียนแนะนำให้ทุกๆ ท่านนี่แหล่ะครับ ผมขอแนะนำในเชิงร้านค้านะครับ เพื่อแนะนำการเชื่อมต่อระบบ Payment Gatewayเริ่มใช้ Paysbuy กันเลยไปสมัคร Account Paysbuy ซะก่อนครับ เชิญปวดหัวรอบแรกก่อนเลยครับทุกๆ ท่าน เย้เมื่อคุณสมัครเรียบร้อย อย่างที่ผมบอก ต้องยืนยัน Account ผ่านทาง Email ตลอดแนะนำว่าให้ใช้ Email ที่พร้อมทำงานจริงๆ เลยที่สื่อถึงการชำระทางบัญชีเช่น account@yourdomain.com เพราะการเปลี่ยนแปลง Email ภายหลังออกจะยุ่งยากและจะไม่ได้เป็น email หลักDownload PDF 2 File นี้ไปอ่านให้สบายใจก่อน
https://www.paysbuy.com/manual.pdf
https://www.paysbuy.com/Usermanual_Digital.pdf
สรุปขั้นตอนการทำงานของ Paysbuy ของร้านค้า
1. ออกแบบ Script Shopping ต่างๆให้สรุปรายการสั่งซื้อโดยมีข้อมูลสำคัญๆดังนี้
<Form method=post action=”https://www.paysbuy.com/paynow.aspx” target=”_blank”><input value=”psb”><Input value=”email ของ Account คุณ (บังคับ)”>
<Input value=”หมายเลข Invoice สินค้าของคุณ (ไม่บังคับ)”>
<Input value=”รายละเอียดสินค้า (ไม่บังคับ)”>
<Input value=”ราคาสินค้านั้นๆเป็นตัวเลขล้วนห้ามมีเครื่องหมายอื่นๆ (บังคับ)”>
<Input value=”URL ที่จะใช้รับค่า Return กลับหลังจากชำระเงินแล้ว”>
<Input value=”URL ที่จะใช้รับค่า Return กลับหลังจากชำระเงินแล้ว (คนละตัวกับpostURL แต่ค่าที่ส่งมาเหมือนกัน)”>
<Input value=”สกุลเงิน “><input src=”https://www.paysbuy.com/images/p_click2pay.gif” border=”0″alt=”Make payments with PaySbuy – it’s fast, free and secure!”>ข้อมูลทั้งหมดคุณศึกษาได้จาก manual.pdf หรือสามารถใช้เครื่องมือช่วยสร้าง Code HTML นี้จากเมนูเครื่องมือช่วยขาย ของ Paysbuy ได้ครับ
2. จากข้อ 1 เมื่อ User คลิกจาก Form ที่เราสร้างไว้แล้ว ระบบจะส่งค่าราคาสินค้าต่างๆไปหา Paysbuy ก็หมดหน้าที่ของเราแล้วครับ รอลุ้นต่อไปว่า User จะชำระเงินเรียบร้อยหรือไม่โดย ทาง Paysbuy จะส่งค่ากลับมาให้ที่ URL ตามที่เราตั้งไว้ใน postURL นั้นเอง
3. โดย postURL นี้ทาง Paysbuy จะผูกค่าตัวแปรในแบบ Post Data กลับมาด้วยคือ”result” = 01 ตามด้วยหมายเลข invoice No. (Not enough fund)= 99 ตามด้วยหมายเลข invoice No. (Unknown Error)= 00 ตามด้วยหมายเลข invoice No. (Success)”apCode” = PSB transaction ID.”amt” = เลขทศนิยม 2 ตำแหน่งที่เป็นยอดการจ่ายเงิน ของรายการนั้นScript ตรวจสอบนี้เขียนง่ายๆแบบนี้เลยครับ
### Example 1.php ###<?$result = $_POST["result"];$apCode = $_POST["apCode"];$amt = $_POST["amt"];$amt = $amt*1;$result_code = substr($result,0,2);$invoice_id = substr($result,2,6);if ($result_code ==01) {echo “เงินไม่พอซื้อไม่ได้”;}elseif($result_code ==99){echo “ซื้อไม่ได้ไม่ทราบสาเหตุ”;}elseif($result_code ==00){echo “ซื้อสินค้าเรียบร้อยแล้ว”;}?>
### Example 1.php ###ก็ตรวจสอบง่ายๆเลยครับ postURL นี้ก็อ่านค่าตามตัวแปรที่ Paysbuy ส่งมาให้แล้ว Return ตาม ผลที่ได้
4. แต่การเขียน Script ตามข้อที่ 3 นี้ในการขายสินค้าประเภท Digital Content นั้น(ซื้อแล้วได้ของเลยทันที) อาจจะเป็นการเสี่ยงเกินไป เพราะเป็นการตรวจสอบทางเดียวปัญหาคือ หากมีคนคิดไม่ซื่อสร้าง Request ปลอมขึ้นมาเพื่อหลอกว่ามีการชำระเงินถูกต้อง โอกาสเกิดความเสียหายก็มีมาก ฉะนั้นฉะนั้น Paysbuy จึงให้มีตัวแปร reqURL ในข้อ 2 เพิ่มขึ้นมาโดยระบบจะส่ง Data มาเหมือนกันสิ่งที่แตกต่างคือreqURL จะเป็น IP จากเครื่อง Server ของ Paysbuy จริงๆส่วนpostURL จะเป็น IP ของเครื่องผู้ชำระเงินเราสามารถนำความแตกต่างตรงนี้มาตรวจสอบเพื่อยืนยันการสั่งซื้อได้แต่ผมลองแล้วครับ … ผลคือ ฮา ไม่เห็นมี reqURL กลับมาให้ผมเลย แต่ไม่เป็นไรครับเพราะเรามีวิธีแก้ไข
5. อ่านค่าจาก postURL แล้ว WebService กลับไปตรวจสอบตามเอกสาร Usermanual_Digital.pdfหลักการคือ เมื่อเราอ่านค่าที่ return กลับมาตามข้อ 3 เรียบร้อยแล้วเราจะนำค่าที่ได้ทำการ Web Service กลับไปหา Paysbuy เพื่อตรวจสอบข้อมูลว่า มีการชำระเงินถูกต้องจริงๆในที่นี้ผมใช้ NuSOAP – SOAP Toolkit for PHP ในการจัดการการต่อ Web Service นะครับทดลองบน PHP 4 ทำงานได้ปกติ
### Example 2.php ###<?include (“webservice/nusoap.php”);$result = $_POST["result"];$apCode = $_POST["apCode"];$amt = $_POST["amt"];$amt = $amt*1;$result_code = substr($result,0,2);$invoice_id = substr($result,2,6);if ($result_code ==01) {echo “เงินไม่พอซื้อไม่ได้”;}elseif($result_code ==99){echo “ซื้อไม่ได้ไม่ทราบสาเหตุ”;}elseif($result_code ==00){### น่าจะเรียบร้อยตรวจสอบอีกที ###$account_email = “account@scriptdd.com”;########## WEB SERVICE ###########$wsdl = “http://www.paysbuy.com/getinvoicestatus/getinvoicestatus.asmx”;$soapaction = ‘http://tempuri.org/checkInvoiceStatus’;$client = new soapclient($wsdl);$document = ‘<checkInvoiceStatus xmlns=”http://tempuri.org/”>’;$document .=”<invoiceNo>$invoice_id</invoiceNo>”;$document .=”<merchantEmail>$account_email</merchantEmail>”;$document .=”<appCodeStr>$apCode</appCodeStr>”;$document .=’</checkInvoiceStatus>’;//create soap message$mysoapmsg = $client->serializeEnvelope($document,”,array(),’document’, ‘literal’);//send soap message to soap server$response = $client->send($mysoapmsg, $soapaction);$return_webservice = $response["checkInvoiceStatusResult"];########## WEB SERVICE ###########if ($return_webservice ==”Accepted”) {echo “จ่ายเงินเรียบร้อยชัวร์ๆ ปล่อยของได้เลย”;}else{echo “มั่วนิ่มแล้ว”;}}?>### Example 2.php ###
Download Script ทั้งหมดได้ ที่นี่ ครับระบบจะตรวจสอบก่อนว่า จะต้องได้ returncode เป็น 00เมื่อได้แล้วก็ตรวจสอบ Webservice กลับไปอีกที หากได้ Code ที่ถูกต้องก็ค่อยปล่อยสินค้าให้กับผู้ใช้งานได้หากทุกอย่างครบเรียบร้อยการชำระเงินถูกต้อง
คุณก็จะได้รับ Email แจ้งไปว่ามีเงินเข้ามาใน Account ของคุณ เย้ !!
ทั้งนี้ทั้งนั้นการนำเงินออกมาใส่ในบัญชีธนาคารของคุณที่ได้ผูกเอาไว้จะต้องเสียค่าธรรมเนียมนิดหน่อย (ประมาณ 30 บาท)จากทั้งหมดที่กล่าวมาเป็นการตั้งระบบเพื่อรับชำระ ผ่านบัญชีของ Paysbuyหากท่านต้องการให้ Website สามารถตัดบัตรได้โดยตรงเมื่อท่านต่อระบบทุกอย่างเรียบร้อยแล้ว เพียงแค่แจ้งกับทาง Paysbuy โดย ส่งรายละเอียดของของ Website ของคุณและรายละเอียดการจดทะเบียนพาณิชย์อิเล็กทรอนิกส์ทางทีมงานก็จะเปิดระบบการชำระเงินผ่านบัตรเครดิตให้ท่านเองท่านเพียงแก้ไข Form ตามข้อ 2 ให้เป็น<form method=”post”action=”https://www.paysbuy.com/paynow.aspx?c=true&lang=t”>เพื่อระบุว่าชำระผ่าน บัตรเครดิตนั้นเองสรุปรู้สึกว่าเขียนบทความนี้วนไปวนมาไปหน่อย แต่ขอให้ค่อยๆอ่านและทำความเข้าใจทีละจุด คิดว่าไม่น่ายากเกินไปสำหรับท่านที่สนใจจริงๆ ลองดูครับ งงตรงไหนลองถามดูได้เดี๋ยวจะหาคำตอบมาตอบปล. -__- ผมต้องส่งเอกสารการจดทะเบียนพาณิชย์อิเล็กทรอนิกส์ให้เหมือนกันลืมไปเลย
อ้างอิงhttps://www.paysbuy.com/http://sourceforge.net/projects/nusoap/http://www.paypal.com/
ที่มา : http://www.nco847.com/know/10.pdf?ds=preview&id=A6CdjXYNOvMKBYv§ion=3