ทำเว็บ E-Commerce ชำระเงินออนไลน์ใช้ Paypal API

เขียนโปรแกรมชำระเงินออนไลน์
เขียนโปรแกรมชำระเงินออนไลน์

ทำเว็บ E-Commerce ชำระเงินออนไลน์ใช้ระบบ Paypal API


Paypal คือระบบการชำระเงินและซื้อสินค้าแบบออนไลน์ โดยใช้บัตรเครดิต บัตรเดบิตโดยผู้ใช้งานต้องสมัครใช้บริการ
ทั้งแบบบุคคลธรรมดาและนิติบุคคล เพย์พาลเปรียบได้กับธนาคารแบบออนไลน์ซึ่งได้รับความนิยมไปทั่วโลก โดยมีการใช้กันอย่าง
แพร่หลายในลักษณะการซื้อสินค้าสำหรับเว็บขายสินค้าออนไลน์ (e-commerce)



ในด้านการพัฒนาเว็บไซต์เพย์พาลมีระบบ Rest API ( Application Programing Interface ) รวมไปถึง
SDK หรือชุดคำสั่งในการพัฒนาและติดต่อกับ Paypal API ซึ่งมีให้นักพัฒนาสามารถเลือกใช้ได้หลายภาษา ข้อมูลเหล่านี้
เสามารถดูรายละเอียดเพิ่มเติมได้ที่เว็บไซต์สำหรับนักพัฒนาที่ https://developer.paypal.com/docs/api/rest-sdks/



สำหรับบทความนี้จะใช้ PHP codeigniter เป็น framework ในการติดต่อกับ paypal API เพราะฉะนั้น
ก่อนเริ่มขึ้นตอนต่อไปให้ติดตั้ง CI ก่อน ท่านสามารถดูรายละเอียดการติดตั้งได้ที่กระทู้นี้ ติดตั้ง codeigniter

เริ่มเขียนโปรแกรมติดต่อกับ Paypal API

1. ดาวน์โหลด paypal.php

2. หลังจากดาวน์โหลดแล้วให้วางไฟล์ paypal.php ไว้ใน application/libraries/paypal.php

3. ทำการสร้าง Model ชื่อว่า Payment.php ไว้ใน application/controllers/Payment.php

4. สำหรับการส่งค่าไปยัง Paypal API จะแบ่งเป็น 3 ส่วนหลัก ๆ ดังนี้

  • ส่วนการตั้งค่าบัญชีผู้รับเงิน คือส่วนที่เราจะต้องระบุบัญชีที่จะโอนเงินเข้า ค่าเงิน เลขที่ Invoice และ url สำหรับ return ค่าต่าง ๆ ดังนี้
    $config['business'] 			= '[email protected]'; // อีเมลบัญชีบิสิเนสผู้รับเงิน
    $config['cpp_header_image'] 	= base_url("assets/img/logo.png"); // รูปที่จะแสดงในหน้าทำธุรกรรม
    $config['return'] 				= site_url("payment/summary"); // หน้าที่จะแสดงหลังจากทำธุรกรรมเสร็จ
    $config['cancel_return'] 		= site_url("payment"); // หน้าที่จะแสดงกรณีกดปุ่มยกเลิก
    $config['notify_url'] 			= site_url("payment/ordercomplete"); // หน้าที่เราจะใช้รับข้อมูลในกรณีการสั่งซื้อสำเร็จเสร็จสิ้นด้วยดี
    $config['production'] 			= FALSE; // ระบุการทดสอบว่าอยู่ในขั้นตอนพัฒนาหรือใช้งานจริง
    $config["invoice"]				= "IV0001"; // ระบุเลขที่ใบแจ้งชำระเงิน
    $config["currency_code"]		= "THB"; // ระบุค่าเงินในการทำธุรกรรม
    
  • ส่วนการระบุข้อมูลผู้ชำระเงินหรือสั่งซื้อ คือส่วนของการให้ข้อมูลต่าง ๆ ของผู้ทำธุรกรรมเช่น ที่อยู่ เบอร์โทรศัพท์ เป็นต้น
    $config["first_name"] 		= $row->fname; // ชื่อจริงผู้สั่งซื้อ
    $config["last_name"] 		= $row->lname; // นามสกุลผู้สั่งซื้อ
    $config["address1"] 		= $row->address; // ที่อยู่ช่องแรก
    $config["address2"] 		= $row->company; // ที่อยู่ช่องสอง ถ้ามี
    $config["city"] 			= $row->city; // เมือง
    $config["state"] 			= $row->state; // รัฐ
    $config["zip"] 				= $row->postcode; // รหัสไปรษณีย์
    $config["email"] 			= $row->email; // อีเมลผู้สั่งซื้อ
    $config["night_phone_a"] 	= $row->phone; // เบอร์โทร 1
    $config["night_phone_b"] 	= $row->mobile; // เบอร์โทร 2
    
  • ส่วนของการเริ่มสั่งซื้อ คือส่วนที่เราจะสั่งให้ส่งข้อมูลไปยัง paypal API เป็นส่วนที่เรา
    จะต้องระบุยอดรวมต่าง ๆ คือ ยอดเงินชำระ และ จำนวนไอเทมต่อหน่วยที่ต้องการชำระ

    $this->load->library('paypal',$config); // โหลด paypal library มาใช้งานและกำหนดการตั้งค่าใหม่
    $this->paypal->add("ชื่อสินค้า","ราคาต่อหนวย","จำนวนรวม"); // ระบุชื่อสินค้า จำนวน และราคา
    $this->paypal->pay(); // เริ่มส่งข้อมูลไปให้ paypal เพื่อเริ่มขั้นตอนการชำระเงิน
    

หากในหนึ่ง order มีสินค้ามากกว่าหนึ่งชิ้น เราสามารถเพิ่มสินค้าทั้งหมดในตะกร้าโดยใช้คำสั่งเดิม เพียงเปลี่ยนชื่อของสินค้า
จำนวนและราคาของสินค้าให้ถูกต้อง เช่น

$this->paypal->add("สบู่",50,4);
$this->paypal->add("ยาสีฟัน",100,2);
$this->paypal->add("ผงซักผ้า",80,6);

ขั้นตอนต่อไปหลังจากที่เราใช้คำสั่ง $this->paypal->pay(); ระบบจะนำเราไปยังหน้าชำระเงินของ paypal
ในหน้านี้จะมีการแสดงโลโก้ของบัญชีบิสิเนส และสรุปยอดต่าง ๆ ของสินค้าตามที่เราส่งไป

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

ดาวน์โหลด Payment Controller