자료실

제목[PHP] 서명(signature) 생성 샘플코드
작성자관리자 @ 2012.05.29 22:12:33

QR코드 자동생성 API (http://www.must.or.kr/ko/service/qrcode.generator/automatic.qr.api/guide/ )사용을 위한 PHP 샘플 코드 입니다.

 
PHP는   ASP.NET과  약간의 차이가 있습니다. . NET은 생성된 키를 바이트 배열로 사용하지만, PHP는 키로 문자열로 사용합니다.  따라서 바이트 배열을 나타내는 문자열을 형성해야합니다.
 
예를 들어 발급된 키가 00112233445566778899aabbccddeeff  이면 샘플 소스는 아래와 같습니다. PHP에서는 키를 0x로 두자리씩 구분해야 합니다.
 
예제 1)  텍스트(t) 정보를 담은 QR코드 자동생성 예제
 
<?php
$key = pack('c*', 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff);
$sig = hash_hmac('sha256', "t=HelloWorld&r=10", $key);
echo '<img src="http://mqr.kr/qr/?t=HelloWorld&amp;r=10&amp;sign='.$sig.'"/>';
?>

 

예제 2)  현재 날짜 / 시간으로 QR 코드를 생성을위한 PHP 샘플 코드

   * text 변수에 텍스트를 삽입할 수 있습니다.

 

<?php
$key = pack('c*', 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff);
$text = date('Y.m.d H:i:s');
$query = 't='.urlencode($text).'&r=10&j=1&m=20&lb=fccd13&lt=ed1e2e&rt=155ca2';
$sig = hash_hmac('sha256', $query, $key);
echo '<img src="http://mqr.kr/qr/?'.htmlentities($query).'&amp;sign='.$sig.'"/>';
?>

 

 

예제 3)  홈페이지 현재 URL 정보를 담은 QR코드 자동 생성을위한 PHP 코드 샘플

   * $text 변수에 URL을 삽입할 수 있습니다.  아피치, IIS에서 작동합니다. PHP에서는 현재URL을 찾는 것은 이것보다 간단한 방법은 찾지 못했습니다.

 

<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

<?php
$key = pack('c*', 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff);
$text = curPageURL();
$query = 't='.urlencode($text).'&r=10&j=1&m=20&lb=fccd13&lt=ed1e2e&rt=155ca2';
$sig = hash_hmac('sha256', $query, $key);
echo '<img src="http://mqr.kr/qr/?'.htmlentities($query).'&amp;sign='.$sig.'"/>';
?>

 

 

공유
QR link to local page