检查订阅是否已过期

时间:2018-10-24 02:58:46

标签: php mysql

我正在一个Web应用程序上工作,在该Web应用程序中已为我分配了用户订阅任务,并检查订阅是否已过期。我正在做的是PHP。我只需要有关如何执行此操作的基本想法。请帮助

1 个答案:

答案 0 :(得分:1)

这是一种简单的方法。我将分享我工作过的代码段。您可以这样尝试。在数据库中设置一个有效的字段。因此,当用户购买订阅时,请将有效最新日期的值存储在此字段中。这是一个示例代码片段。

public function vendorcheckout($data)
    {
        $stmt = $this->con->prepare("INSERT INTO x3mdu_vendor_subscription(sub_id,vendor_id,sub_title,sub_amount,sub_duration,vendor_name,vendor_email,vendor_phone,vendor_address1,vendor_address2,vendor_city,vendor_state,payment_id,valid_upto,created) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())");
        $stmt->bind_param("iisisssissiiss", $data['sub_id'],$data['vendor_id'],$data['sub_title'],$data['sub_amount'],$data['sub_duration'],$data['vendor_name'],$data['vendor_email'],$data['vendor_phone'],$data['vendor_address1'],$data['vendor_address2'],$data['vendor_city'],$data['vendor_state'],$data['payment_id'],$data['valid_upto']);
        $result = $stmt->execute();
        $stmt->store_result();
        $num_rows = $stmt->num_rows;
        $stmt->close();
        $last_id = $this->con->insert_id;
        if($result){
          return $last_id;
        }
        return false;
    }

要检查订阅是否仍处于活动状态,可以通过这种方式进行。

private function isSubscribed($vendor_id) {
        $stmt = $this->con->prepare("SELECT vs_id from x3mdu_vendor_subscription WHERE vendor_id = ? AND DATEDIFF(CURDATE(),valid_upto) < 0");
        $stmt->bind_param("i",$vendor_id);
        $stmt->execute();
        $stmt->store_result();
        $num_rows = $stmt->num_rows;
        $stmt->close();
        return $num_rows > 0;
    }

DATEDIFF(CURDATE(),valid_upto)将返回负值,直到有效日期到期。当差异大于0时 这表示您的订阅已过期。希望对您有帮助