2023-07-31

构建PHP商城:创建在线支付和付款方式管理

构建PHP商城:创建在线支付和付款方式管理

在如今的电子商务时代,构建一个完善的在线商城系统是至关重要的。其中一个重要的组成部分就是在线支付和付款方式管理功能。本文将以PHP语言为例,介绍如何构建一个简单的在线支付系统,并实现支付方式的管理功能。

  1. 创建数据库和表结构

首先,我们需要创建一个数据库,并在其中创建两张表:orders(订单表)和payment_methods(支付方式表)。

订单表结构如下:

CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_number VARCHAR(255) NOT NULL,
    total_amount DECIMAL(10,2) NOT NULL,
    payment_method_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (payment_method_id) REFERENCES payment_methods(id)
);
登录后复制

支付方式表结构如下:

CREATE TABLE payment_methods (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);
登录后复制
  1. 创建PHP文件

创建一个名为index.php的文件,用于展示商品和提交订单。代码如下:

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
    die("连接数据库失败: " . mysqli_connect_error());
}

// 获取支付方式列表
$query = "SELECT * FROM payment_methods";
$result = mysqli_query($conn, $query);
$paymentMethods = mysqli_fetch_all($result, MYSQLI_ASSOC);

// 处理订单提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $orderNumber = uniqid();
    $totalAmount = $_POST["total_amount"];
    $paymentMethodId = $_POST["payment_method_id"];

    $query = "INSERT INTO orders (order_number, total_amount, payment_method_id) VALUES ('$orderNumber', '$totalAmount', '$paymentMethodId')";
    mysqli_query($conn, $query);

    echo "订单提交成功!订单号:$orderNumber";
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>在线商城</title>
</head>
<body>
    <h1>在线商城</h1>
    <h2>商品列表</h2>

    <!-- 展示商品列表 -->

    <form method="post" action="">
        <fieldset>
            <legend>支付方式</legend>
            <?php foreach ($paymentMethods as $method): ?>
                <input type="radio" name="payment_method_id" id="payment_method_<?php echo $method['id']; ?>" value="<?php echo $method['id']; ?>" required>
                <label for="payment_method_<?php echo $method['id']; ?>"><?php echo $method['name']; ?></label><br>
            <?php endforeach; ?>
        </fieldset>
        <label for="total_amount">订单金额</label>
        <input type="text" name="total_amount" id="total_amount" required><br>
        <input type="submit" value="提交订单">
    </form>
</body>
</html>
登录后复制
  1. 添加支付方式管理功能

创建一个名为payment_methods.php的文件,用于展示和管理支付方式。代码如下:

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
    die("连接数据库失败: " . mysqli_connect_error());
}

// 处理添加支付方式请求
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];

    $query = "INSERT INTO payment_methods (name) VALUES ('$name')";
    mysqli_query($conn, $query);

    echo "支付方式添加成功!";
}

// 处理删除支付方式请求
if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET["delete"])) {
    $id = $_GET["delete"];

    $query = "DELETE FROM payment_methods WHERE id='$id'";
    mysqli_query($conn, $query);

    echo "支付方式删除成功!";
}

// 获取支付方式列表
$query = "SELECT * FROM payment_methods";
$result = mysqli_query($conn, $query);
$paymentMethods = mysqli_fetch_all($result, MYSQLI_ASSOC);
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>支付方式管理</title>
</head>
<body>
    <h1>支付方式管理</h1>

    <h2>添加支付方式</h2>
    <form method="post" action="">
        <label for="name">支付方式名称</label>
        <input type="text" name="name" id="name" required><br>
        <input type="submit" value="添加支付方式">
    </form>

    <h2>支付方式列表</h2>
    <table>
        <tr>
            <th>ID</th>
            <th>名称</th>
            <th>操作</th>
        </tr>
        <?php foreach ($paymentMethods as $method): ?>
            <tr>
                <td><?php echo $method['id']; ?></td>
                <td><?php echo $method['name']; ?></td>
                <td><a href="?delete=<?php echo $method['id']; ?>">删除</a></td>
            </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>
登录后复制

以上代码示例演示了如何通过PHP语言构建一个简单的在线支付和付款方式管理的功能。通过这些功能,用户可以方便地选择支付方式,并提交订单进行付款操作。同时管理员也可以通过支付方式管理功能,添加和删除支付方式,以满足不同的商城需求。

以上就是构建PHP商城:创建在线支付和付款方式管理的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/586118.html

发表回复

Your email address will not be published. Required fields are marked *