Hi guys.
I have been reading a php book.
And a section of the book I have been studying is on how to build a simple shopping cart.
What I want to know is, is there a specific php function (or a convenient way) to process a payment when someone has made a purchase through a php based shopping cart?
Below is the code I have been studying. It is a simple shopping cart and there is no code to actually process a payment. What I want to know is - what extra code would I add to this application for it to process payments (meaning, to take money from the customer's bank account)?
Here is the code:
<?php
session_start();
class Product {
private $productId;
private $productName;
private $price;
public function __construct( $productId, $productName, $price ) {
$this->productId = $productId;
$this->productName = $productName;
$this->price = $price;
}
public function getId() {
return $this->productId;
}
public function getName() {
return $this->productName;
}
public function getPrice() {
return $this->price;
}
}
$products = array(
1 => new Product( 1, "SuperWidget", 19.99 ),
2 => new Product( 2, "MegaWidget", 29.99 ),
3 => new Product( 3, "WonderWidget", 39.99 )
);
if ( !isset( $_SESSION["cart"] ) ) $_SESSION["cart"] = array();
if ( isset( $_GET["action"] ) and $_GET["action"] == "addItem" ) {
addItem();
} elseif ( isset( $_GET["action"] ) and $_GET["action"] == "removeItem" ) {
removeItem();
} else {
displayCart();
}
function addItem() {
global $products;
if ( isset( $_GET["productId"] ) and $_GET["productId"] >= 1 and $_GET["productId"] <= 3 ) {
$productId = (int) $_GET["productId"];
if ( !isset( $_SESSION["cart"][$productId] ) ) {
$_SESSION["cart"][$productId] = $products[$productId];
}
}
session_write_close();
header( "Location: shopping_cart.php" );
}
function removeItem() {
global $products;
if ( isset( $_GET["productId"] ) and $_GET["productId"] >= 1 and $_GET["productId"] <= 3 ) {
$productId = (int) $_GET["productId"];
if ( isset( $_SESSION["cart"][$productId] ) ) {
unset( $_SESSION["cart"][$productId] );
}
}
session_write_close();
header( "Location: shopping_cart.php" );
}
function displayCart() {
global $products;
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" >
<head>
<title> A shopping cart using sessions </title>
<link rel="stylesheet" type="text/css" href="common.css" />
</head>
<body>
<h1> Your shopping cart </h1>
<dl>
<?php
$totalPrice = 0;
foreach ( $_SESSION["cart"] as $product ) {
$totalPrice += $product->getPrice();
?>
<dt> <?php echo $product->getName() ?> </dt>
<dd> $ <?php echo number_format( $product->getPrice(), 2 ) ?>
<a href="shopping_cart.php?action=removeItem&productId=<?php echo
$product->getId() ?> "> Remove </a> </dd>
<?php } ?>
<dt> Cart Total: </dt>
<dd> <strong> $ <?php echo number_format( $totalPrice, 2 ) ?> </strong> </dd>
</dl>
<h1> Product list </h1>
<dl>
<?php foreach ( $products as $product ) { ?>
<dt> <?php echo $product->getName() ?> </dt>
<dd> $ <?php echo number_format( $product->getPrice(), 2 ) ?>
<a href="shopping_cart.php?action=addItem&productId=<?php echo
$product->getId() ?> "> Add Item </a> </dd>
<?php } ?>
</dl>
<?php
}
?>
</body>
</html>
Paul.