PHP 전체 예제
PHP 표준 cURL 확장으로 전체 흐름을 구성한 예제입니다.
<?php
$API = "https://api.pactery.com/v1";
$KEY = getenv("PACTERY_API_KEY");
function pactery($method, $path, $body = null) {
global $API, $KEY;
$ch = curl_init($API . $path);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer {$KEY}",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => $body ? json_encode($body) : null,
]);
$res = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$json = json_decode($res, true);
if ($code >= 400) throw new Exception($json["error"]["message"] ?? "HTTP {$code}");
return $json;
}
// 1) 문서 생성
$doc = pactery("POST", "/documents", [
"title" => "업무 위탁 계약서",
"content" => "<h1>계약서</h1><p>...</p>",
]);
// 2) 서명자 지정
$signer = pactery("POST", "/documents/{$doc['id']}/participants", [
"name" => "홍길동", "phone" => "01012345678", "role" => "signer",
]);
// 3) 서명 필드 배치
pactery("PUT", "/documents/{$doc['id']}/fields", [
"fields" => [[
"participant_id" => $signer["id"], "type" => "signature",
"page" => 1, "x" => 0.62, "y" => 0.8, "width" => 0.25, "height" => 0.08,
]],
]);
// 4) 발송
pactery("POST", "/documents/{$doc['id']}/send", new stdClass());
echo "발송 완료: " . $doc["id"];