インターネットの普及と電子商取引の発展に伴い、ビジネスをオンラインに移行する企業が増えており、ユーザーが商品の購入や支払いをスムーズに行えるよう、大手サイトではオンライン決済機能を開設しています。ただし、オンライン決済機能を使用する場合、支払いの有効期限という特別な注意が必要な問題が 1 つあります。
極端な場合、ユーザーが支払い方法を選択しなかったり、入金確認後に支払いを行ったりする場合がありますが、このとき出品者はどのように対処すればよいのでしょうか?注文を「未払い」にして有効期間内にユーザーが支払いを完了するのを待つのが一般的ですが、有効期間内にユーザーが支払いを完了しなかった場合はどうなるのでしょうか?通常、取引システムは、注文の有効期間が終了した後、支払いが完了していない注文をクローズします。ただし、支払い方法によって支払い処理時間が異なるため、有効期間を設定するのは簡単ではありません。
期限切れの注文の自動決済の問題を解決するために、PHP を使用して注文の自動決済機能を実装し、プロセスを簡素化する解決策を考えました。 PHPで期限切れ自動決済機能を実装する具体的な手順を紹介します。
まず、注文決済スクリプトを作成し、サーバーのスケジュールされたタスク (通常は Cronjob) でスケジュールする必要があります。スケジュールされたタスクにより、任意の期間内で注文リストを定期的に確認でき、期限切れの注文を自動的に決済できます。
以下は PHP の主な実装コードです:
<?php /* 连接到数据库 */ $mysqli = new mysqli('localhost', 'username', 'password', 'database_name'); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: " . $mysqli->connect_error; exit(); } /* 设置时区 */ date_default_timezone_set('Asia/Shanghai'); /* 订单有效期 */ $valid_period = 3600; /* 一小时 */ /* 遍历订单列表 */ $sql = "SELECT * FROM order_table WHERE status = 'pending'"; $order_result = $mysqli->query($sql); while ($order_row = $order_result->fetch_assoc()) { /* 订单超时 */ $order_time = strtotime($order_row['add_time']); if (time() - $order_time > $valid_period) { /* 取消订单 */ $sql = "UPDATE order_table SET status = 'cancelled' WHERE order_id = ".$order_row['order_id']; if (!$mysqli->query($sql)) { echo "Error: " . $mysqli->error; } /* 结算金额 */ $amount = $order_row['amount']; /* 更新卖家账户余额 */ $sql = "UPDATE seller_table SET balance = balance + ".$amount." WHERE seller_id = ".$order_row['seller_id']; if (!$mysqli->query($sql)) { echo "Error: " . $mysqli->error; } /* 更新买家账户余额 */ $sql = "UPDATE buyer_table SET balance = balance - ".$amount." WHERE buyer_id = ".$order_row['buyer_id']; if (!$mysqli->query($sql)) { echo "Error: " . $mysqli->error; } } } /* 关闭数据库连接 */ $mysqli->close(); ?>
スクリプトの主な部分は次のとおりです:
以上がPHPで期限切れ自動決済機能を実装する詳細な手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。