[英]The trial period system along with subscription - PHP and MySQL
我使用 PHP 和 Mysql 构建了一个试用期系统,它运行良好。 但我想要实现的是,一旦用户购买订阅,它应该自动更新时间段。 例如,如果用户注册了 30 天的订阅,那么它应该增加 30 天。
我不希望有人为我编写代码。 只是想知道它是如何做到的。 因为这是我第一次构建这样的东西。 需要您的指导!
我知道代码容易受到 SQL 注入的影响。 您可以忽略它,因为这仅用于测试目的
<?php
session_start();
include 'db-connection.php';
$user_email = mysqli_real_escape_string($connection, $_POST['user_email']);
$user_pass = mysqli_real_escape_string($connection, $_POST['user_pass']);
$select_user = "select * from users where user_email='$user_email'";
$select_user_query = mysqli_query($connection, $select_user);
$user_email_count = mysqli_num_rows($select_user_query);
if($user_email_count) {
$user_result_array = mysqli_fetch_array($select_user_query);
$user_db_pass = $user_result_array['user_pass'];
$user_id = $user_result_array['user_id'];
$user_name = $user_result_array['user_name'];
if($user_pass === $user_db_pass ) {
$_SESSION['user_id'] = $user_id;
$_SESSION['user_name'] = $user_name;
$user_registration_date = new DateTime($user_result_array['user_registration']); // This fetch the user registration date from database
$today_date = new DateTime();
$trial_period = 7;
$date_diff = date_diff($user_registration_date,$today_date);
$date_difference = $date_diff->format('%d days');
if($date_difference >= $trial_period){
echo "Trial period is over";
} else {
echo "<span class='alert alert-success'>Login Successful</span>";
}
} else {
echo "<span class='alert alert-danger'>You have entered wrong password</span>";
}
} else {
echo "<span class='alert alert-danger'>No Record Found</span>";
}
?>
试用期结束后,它会将用户重定向到 trial.php 页面,要求用户付款。
一旦付款,它应该增加时间段(这是我不知道如何实现的步骤)
用户表
User_id | user_registration | user_name | user_email | user_pass | user_phone
在 user 表中添加expiry_date
列(注册后将自动添加.. 比如current_date + 30 days
。另外添加一列fees_paid=0
。
如果您使用支付网关进行支付,请在试用期到期之前将带有支付链接的自动 email 发送给用户。 如果用户付款,请使用 registartion_date registartion_date + 60 days
(或您要添加的 XX 天)更新数据库expiry_date
,并通过 webhook 响应以及付款详细信息,将fees_paid=1
与其他付款详细信息(如付款日期、payment_id 等)登录。
如果您不使用支付网关并通过 neft / 现金等方式收款,则通过您的管理面板,通过在用户的adding desired days in registration_date
激活用户的帐户。
在数据库中,您可以添加一些列,如fees_paid = 0
/ fees_paid = 1
(0 表示未支付,1 表示已支付)、 order_number= random_generated_unique_string
、 payment_date
、 payment_id
等以保存付款详情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.