デジタル時代では、従来の紙契約は、速度、安全性、利便性のニーズを満たすことができなくなりました。電子署名および契約管理機能は、この問題を適切に解決し、企業がプロセスを簡素化し、効率を高めるのに役立ちます。この記事では、PHPを使用してこれらの機能を実装する方法を紹介し、電子署名生成、署名検証、契約管理システムを徐々に実現できるようにします。
PHPでは、GDライブラリは署名画像を簡単に生成できます。これがサンプルコードです:
$signatureText = "John Doe";
$imageWidth = 200;
$imageHeight = 100;
$signatureImage = imagecreatetruecolor($imageWidth, $imageHeight);
$backgroundColor = imagecolorallocate($signatureImage, 255, 255, 255);
$textColor = imagecolorallocate($signatureImage, 0, 0, 0);
imagefill($signatureImage, 0, 0, $backgroundColor);
imagettftext($signatureImage, 20, 0, 10, 50, $textColor, "path/to/font.ttf", $signatureText);
imagepng($signatureImage, "path/to/signature.png");
imagedestroy($signatureImage);
上記のコードでは、最初に署名テキスト、画像幅、高さを設定し、次に真の色の画像オブジェクトを作成し、背景とテキストの色を設定します。 「ImageFill」メソッドを使用して背景を記入し、「ImageTtftext」メソッドを介して署名されたテキストを画像に書き込みます。最後に、「ImagePng」を使用して画像を保存し、「Imagedestroy」を呼び出して画像リソースをリリースします。
署名の信頼性を確保するために、パブリックキーとプライベートキーを暗号化と復号化の検証に使用できます。以下は関連コードの例です。
$signature = "path/to/signature.png";
$publicKey = "path/to/public_key.pem";
$data = "Some data to sign";
$publicKeyResource = openssl_pkey_get_public(file_get_contents($publicKey));
$signatureData = base64_decode(file_get_contents($signature));
$result = openssl_verify($data, $signatureData, $publicKeyResource);
if ($result == 1) {
echo "Signature verified!";
} else {
echo "Signature verification failed!";
}
openssl_free_key($publicKeyResource);
このコードでは、最初に署名画像パス、公開キーパス、および検証するデータを指定します。 「openssl_pkey_get_public」を使用して公開キーリソースを取得し、 `base64_decode`を使用して署名データをデコードします。次に、「openssl_verify」を使用してデータを確認します。返品値が1の場合、署名が有効であることを意味します。
契約作成では、通常、契約テンプレートを選択し、契約情報に記入することが含まれます。これがサンプルコードです:
$templateId = $_POST['template_id'];
$contractTitle = $_POST['title'];
$content = $_POST['content'];
// 契約データをデータベースまたはその他のストレージ方法に保存する
echo "Contract created successfully!";
このコードでは、「$ _POST」を使用して契約テンプレートID、タイトル、コンテンツ、その他の情報を取得し、データをデータベースに保存して作成プロンプトを返します。
契約の署名には最初に署名者の身元と署名が必要であり、契約は検証が可決された後にのみ正式に署名することができます。以下は関連コードの例です。
$contractId = $_GET['contract_id'];
$signature = $_FILES['signature'];
// 署名者の身元と署名を確認します
// 署名された情報をデータベースまたはその他のストレージ方法に保存する
echo "Contract signed successfully!";
このコードでは、最初に「$ _get」を介して契約IDとアップロードされた署名ファイルを取得します。次に、ID検証と署名検証を実行し、検証が渡された後に署名情報を保存します。
契約クエリ関数により、署名者またはその他の関連担当者は、契約ステータスと詳細情報を照会できます。これがサンプルコードです:
$contractId = $_GET['contract_id'];
// データベースまたはその他のストレージメソッドから契約情報をクエリします
// 出力契約情報
echo "Contract details:";
このコードでは、 `$ _get`を使用して契約IDを取得し、データベースから関連情報を照会して表示します。
この記事を通して、PHPを使用して電子署名および契約管理機能を実装する方法を学ぶことができます。電子署名機能には、主に署名された画像の生成と署名検証が含まれ、契約管理機能は契約作成、署名、クエリ操作をカバーしています。これらの機能の実装は、特に現代の企業で、仕事の効率とセキュリティを大幅に改善できます。