오늘의 포스팅은 증분백업이다.

서버관리를 하다보면 백업이 중요하니까, 하지만 풀백업을 하면, 전날의 자료가 없고,

그렇다고 매일매일 풀백업을 하면 디스크가 견디질 못한다.

이럴때 사용하는게 증분백업, 전날 소스와 비교해서 변한 자료만 동기화 한다. 

당연히 용량의 증가도 많지 않다. 


돈주고 솔루션 사 쓸거면 포스팅도 안하겠지. 무료다.

rsync 를 사용한 솔루션 rsnapshot 이다.


1. 리눅스에 rsnapshot 을 yum으로 설치해보자

   아주 간단하게 설치가 된다.


1
$ yum install rsnapshot
cs


2. rnsapshot 설정파일을 간단하게 보도록 한다.


1
$ vim /etc/rsnapshot.conf
cs


   - 23번째 줄, rsnapshot_root : 백업 파일이 저장될 경로

   - 93 ~ 95줄 백업 주기를 설정

      alpha -> beta -> gamma 순으로 동작하며 각각 daliy, weekly, monthly 정도로 생각하면 된다. 

      맨 뒤의 숫자는 보관할 파일의 갯수, 숫자만큼 저장하며 오래된 것부터 삭제한다.

   - 보통 위의 두개 정도만 신경쓰면 된다. 추가적으로 할건 logfile 이나 loglevel 정도..?

   - 설정 파일에 있지만 가장 중요한 backup 경로 설정 방법은 새로 번호를 찍겠다.


3. 백업 스크립트 작성

    conf 파일 내의 225줄 #LOCALHOST 아래 부분부터 보면 된다.


    1) 서버내에서 파일을 백업할때 사용한다. conf 파일 내의 소스가 매우 잘 되어있다.


1
backup    /home/    localhost/
cs


        /home/ 하위에 있는 모든 파일을 /{rsnapshot_root}/localhost 폴더에 저장하겠다는 뜻이다.

        여기서 중요한 점은 저 공백은 꼭 탭으로 해야 한다. 스페이스로 하면 에러가 발생한다.

   

   2) rsync로 외부 서버의 파일 가져오기


1
backup    root@example.com:/home    example.com/    {rsync_option}
cs


rsync 로 example.com 서버의 /home 폴더를  {rsnaphost_root}/example.com/ 하위에 저장한다.

3번째 인자로 rsync 옵션을 지정할 수 있다.

example.com 서버의 rsync 접속 보안에 약간 신경을 써줘야 할 것으로 보인다.


   3) backup 스크립트 실행하기

 

1
backup_script    /usr/local/bin/backup_pgsql.sh    localhost/postgres/
cs


sqldump 를 위해 미리 생성해 둔 스크립트를 실행한다. 



대충 이정도만 알아도 증분백업을 돌리는데는 문제가 없다.

설정을 완료 했으면 테스트를 해본다


1
2
$ rsnaphost configtest
Syntax OK
cs


위와 같이 뜨면 매우 아름답게 설정은 완료 되었다.


실제로 실행을 하기 위해선 다음과 같이 한다.


1
$ rsnapshot alpha

cs


위 명령어를 실행하고 기다리면 백업 폴더에 백업 파일이 똭 있다.

그럼 이걸 주기적으로 백업하는 방법은 ???


정답은 크론이다


1
2
3
4
5
$ crontab -e
 
00    01    *    *    *    /usr/bin/rsnapshot alpha
00    01    *    *    1    /usr/bin/rsnapshot beta
00    01    1    *    *    /usr/bin/rsnapshot gamma
cs


크론에 대한 사용법은 대충 알거라 생각하지만... 가볍게 설명하면

인자별로 분, 시, 일, 월, 요일 이다


3번줄은 매일 AM 1:00 에 실행하라

4번줄은 월요일마다 실행하라 (0:일요일 ~ 6:토요일)

5번줄은 1일마다 실행하라 


라는 뜻이다


끝.!


===================================================================================================================================


참고사이트는 아래와 같다.


https://github.com/php79/backup
https://github.com/php79/backup/blob/master/docs/local-incremental-backup.md
https://github.com/php79/backup/blob/master/docs/remote-incremental-backup.md
https://github.com/php79/backup/blob/master/docs/rsnapshot-result.md

가끔 개발을 하다보면 기본 타임존이 설정되어야 하는 경우들이 있다.

(왠만해서 시스템 시간을 가져다 쓰지만)


어쨌든 우리들은 귀찮으니까 보통 my.cnf 파일을 열고 [mysqld] 의 하단부에


1
default-time-zone=Asia/Seoul
cs


을 입력하고 서비스를 재시작! 하는데,

이게 왠걸 에러가 뜬다.  (안뜨면 땡큐)


에러가 뜰 경우에는 mysql 쿼리창을 열고


1
2
3
4
SELECT b.name, a.time_zone_id
FROM mysql.time_zone AS a
     LEFT OUTER JOIN mysql.time_zone_name AS b
        ON a.time_zone_id = b.time_zone_id;
cs

라고 지긋이 쿼리를 날려보면 역시! 아무것도 뜨지 않는다.

설정할 타임존 테이블이 없어서 에러를 뿜었나보다.


그럼 mysql에 타임존 정보를 넣어주겠다.

mysql 서비스가 올라와 있는 서버에


1
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
cs



라고 입력해 주면 뭔가 프로세스가 진행이 된다 된다...!

그리고 다시 mysql 에 접속하여 위 쿼리를 입력하면 timezone 리스트가 마구마구 올라온다.


그럼 다시 맨 처음에 설정하려고 했던 my.cnf 파일을 설정한다. 

그리고 서비스 재시작.


음 매우 잘되는군.

'기억할것들 > SQL' 카테고리의 다른 글

MySQL TimeZone 설정하기.  (0) 2018.12.18
mysql 설치순서  (0) 2018.08.13
MSSQL 메모리 누수 관리  (0) 2018.01.03

Tomcat 언제 쓰는 것일까.


보통 Linux 서버에는 웹서버로 Apache를 사용한다. 그런데..? Apache 는 JSP 를 해석할줄 모른다.!

그리하여 JSP 서비스를 하려면 Apache + tomcat을 써야 한다고 하더라.

(나같은 PHP 개발자는 영 적응하기 어렵다)


해서 보통 JSP 서비스 구성의 경우 html 은 앞단의 Apache 가 JSP 는 Tomcat 이 해석해서 Html 로 전달하는 구성이다

그럼 이제 개발환경 구성을 위해 Tomcat을 설치해 보겠다.


1. Tomcat 다운로드 바로가기

   -> 위 사이트에 접속 후 Tomcat 을 다운로드 받는다.

   -> 현재 날짜 기준 최신 버전 9.0.13 버전으로 다운로드 받은 후 압축을 풀도록 한다.


2. 압축을 푼 후 가볍게 파일이동을 한번 해 보겠다.

    커맨드 창을 켜서 압축을 해제 한 폴더로 

$ sudo mv apache-tomcat-9.0.13 /usr/local/
$ sudo ln -s /usr/local/apache-tomcat-9.0.13 /Library/Tomcat
$ sudo chown -R '{username}' /Library/Tomcat
$ sudo chmod +x /Library/Tomcat/bin/*.sh

{username} 에는 사용자 계정을 입력한다. 단, 계정에 띄어쓰기가 있는경우 싱글쿼터로 감싼다.


3. 아래 명령어를 통해 시작 및 종료를 할 수 있다.

$ /Library/Tomcat/bin/startup.sh
$ /Library/Tomcat/bin/shutdown.sh


4. 가볍게 브라우저에 localhost:8080 입력하면 딱 Tomcat이 구동됐다 싶은 창이뜬다.


그럼 끝.!

'기억할것들 > MAC' 카테고리의 다른 글

Tomcat 설치  (0) 2018.12.13
MAC 에서 Host 설정 하기  (0) 2018.05.23
High Sierra Telnet 설정하기  (0) 2017.12.26
MAC 에 Redis Desktop Manager 설치  (1) 2017.12.26

회사의 요구로 Java Spring FrameWork 개발일을 맡게 되었다.

까먹으면 안되기 때문에 또 기록을 시작한다...


1. 개발환경 구축

   - 일단은 이클립스를 사용하기로 한다. (개인적으로 IntelliJ 가 좋을 것 같긴 하다만.. 너무 비싸오니 무료로..)

   - 다운로드 바로가기


2. 이클립스를 설치한 후에 Spring FrameWork 설치를 하도록 한다.

    이클립스를 실행 후 Help->Eclipse MarketPlace 를 선택한다.


3. sts 를 검색한 후 개발환경에 맞는 버전을 설치한다.

   나의 경우에는 회사에서 Spring 3 버전을 사용하기에 sts 3.9.6 을 설치한다.

   별거없다 다음다음다음 끝.



4. 테스트 환경을 위해 이클립스에 Tomcat도 올려보겠다

    여기서 중요한점. 기본적으로 OS에 Tomcat 을 설치해 두겠지만, Tomcat 서비스를 실행해선 안된다.

    포트 충돌이 나서 이클립스에서 테스를 위한 서비스가 올라가지 않는다.


5. 이클립스에 Tomcat 서비스를 올리기 위해 Perferences 를 들어간다.

    필자는 MAC 이기 때문에 Command+, 로 설정을 킬수 있지만, windows 의 경우 window -> perferences 가 있다고 한다.

    Perferences 로 들어간 후 Server-> Runtime Environments 로 간다.

    그리고 Add 를 선택한다.



6. 설치되어 있는 Tomcat 버전을 선택하고 다음을 누른다.


7. Tomcat 경로와 jre 버전을 선택하고 Finish!!!

    를 누르고 Apply & close 를 누르면 뭔갈 막 설치한다.

    설치가 다 끝나면 연동도 끝이다.



8. 자 이제 프로젝트를 한번 만들어 보도록 하겠다.

   프로젝트 생성을 누르고 스크롤스크롤 아래로아래로 한 후 Spring -> Spring Legacy Project 를 선택하고 다음을 누르자.


9. Project name 을 입력하고, Templates 은 Spring MVC Project 를 선택하도록 한다. 그리고 다음


10. 프로젝트명을 잘 셋팅한 후 Finish!!


11. 테스트를 해보자.

    생성한 프로젝트를 우클릭 후 Run As -> Run on Server 를 선택한다.

    그리고 다음으로 뜨는창에 조심스레 피니시만 누르면 헬로월드! 반가운 메세지가 뜬다



일단 끝인가...?


'기억할것들 > Sp....ring' 카테고리의 다른 글

Spring FrameWork 개발을 하기 위해  (0) 2018.12.13

전혀 PHP는 아니지만...

코딩할때 가끔 써먹는데 자꾸 잊어버려서 기록해둔다



1. 한줄 문장 문자열 ... 표시하기

1
2
3
4
5
6
7
.content {
    width:100px;
    text-overflow:ellipsis;
    white-space:nowrap;
    word-wrap:normal;
    overflow:hidden;
}
cs


2. 두줄 이상일 시 문자열 ... 표시하기


1
2
3
4
5
6
7
8
9
.content {
    overflow:hidden;
    text-overflow:ellipsis;
    line-height:1.2em;
    height:3.6em;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;    
}
cs

'기억할것들 > PHP' 카테고리의 다른 글

[CSS] 로 문자열 줄임 처리하기  (0) 2018.08.29
php 7.2.8 소스 설치  (0) 2018.08.13
구글 영수증 검증  (0) 2018.07.25

살다보니..부모님 생신, 제사 과 같은 행사들은 음력이더라.

음력이다 보니 매번 날짜가 바뀌어서 기억하기도 힘들고.... 매년 달력에 기록하자니 귀찮고..

특히 아이뻐 유저로서 더더더욱 힘들 수 밖에 없더라.


그래서 찾은게 구글에 음력 일정 릴레이 등록하는 기능


http://googlelunar.cpueblo.com/


위 사이트에서 가능하다.


위 사이트 접속 후 구글에 로그인 하고

내가 원하는 시작 음력 날짜와 끝 음력날짜만 설정하여 등록하면

주루루루룩 매년 스케쥴 등록이 된다.


와 진짜편함.! 강추

'본거.느낀거.생각한거.' 카테고리의 다른 글

구글 캘린더 음력 반복등록  (0) 2018.08.14
부팅 USB 만들기  (0) 2017.12.27
DTS 오디오 방식 인코딩 하기  (0) 2017.12.01
블로그를 시작한 이유.  (0) 2017.04.13


이 순서는 가장 마지막이어야 한다.

PHP 설치는 Apache, Mysql 이 설치된 이후에 하도록 한다.


1) Apache 설치방법

2) Mysql  설치방법


1. extension 에 사용할 파일들을 먼저 설치해 보자.


1
yum install bzip2-devel curl-devel gmp-devel libxslt-devel openldap-devel libicu-devel
cs


2. libmcrypt 를 설치한다 [다운로드 바로가기]


1
2
$ ./configure --libdir=/lib64
$ make && make install
cs


3. libzip을 설치한다.

   굉장히 많은 시도를 해봤다.

    yum 으로 설치하면 0.10 버전이기 때문에 php7 설치가 안된다. 소스설치를 하면 1.5 버전이긴 하지만, 컴파일 및 메이크 시 에러가 많이난다.

    그래서 딱 맞는 0.11 버전 RPM 버전을 찾았다. centos7 64bit 용이다.

     

libzip-0.11.2.zip


     위 파일을 다운로드 받고 서버로 보낸다.


1
2
$ rpm -ivh libzip-0.11.2-6.el7.psychotic.x86_64.rpm
$ rpm -ivh libzip-devel-0.11.2-6.el7.psychotic.x86_64.rpm
cs



4. 사전준비는 끝났다. 이제 설치를 한다.

    PHP 소스파일을 다운받고 압축 푼 곳으로 이동하여 아래 명령어를 실행한다.


1
./configure --prefix=/apps/php-7.2.8 --with-apxs2=/apps/httpd-2.4.34/bin/apxs --with-mysqli --with-zlib --with-zlib-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-libxml-dir=/usr --with-gd --with-gettext --with-curl --with-bz2=/usr --with-gmp --with-iconv --with-mhash --with-xmlrpc --with-xsl --with-kerberos --with-openssl=/usr/local/openssl --with-openssl-dir=/usr/local/openssl --enable-pdo --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-ctype --enable-debug --enable-sockets --enable-calendar --enable-sysvsem=yes --enable-ftp --enable-inline-optimization --enable-bcmath --enable-exif --enable-mbstring --enable-json --enable-zip --with-libzip=/usr/lib64 --with-ldap=/usr/lib64 --with-ldap-sasl --with-pdo-mysql --enable-maintainer-zts
cs




    설치를 편하게 하는 컴파일 실행파일 을 올려두긴 하겠다.  

run.sh



- ldap.h 관련 에러 발생 시


1
ln -/usr/include/ldap.h /usr/lib64/ldap.h
cs

'기억할것들 > PHP' 카테고리의 다른 글

[CSS] 로 문자열 줄임 처리하기  (0) 2018.08.29
php 7.2.8 소스 설치  (0) 2018.08.13
구글 영수증 검증  (0) 2018.07.25

2018.4월에 mysql 8 버전이 새로 나왔다.

이를 기념하여 mysql을 rpm으로 설치 를 해보도록 하겠다.


1. yum install openssl-devel 


2. 먼저 mysql 홈페이지에서  풀 패키지를 다운로드 받는다. 아마 .bundle 로 되어있을것이다.

   압축을 풀면 뭔가 많은 rpm 패키지 들이 있다.


$ rpm -ivh mysql-community-common-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-libs-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-libs-compat-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-client-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-devel-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-embedded-compat-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-minimal-debuginfo-8.0.12-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-server-8.0.12-1.el7.x86_64.rpm


3. 위 순서를 다 진행했다면 mysql 서비스를 시작한다. 

$ service mysqld start


4. 서비스가 실행 되고 나면 root 패스워드를 확인해보자

$ vim /var/log/mysqld.log

   로그 내용을 잘 읽다보면, 2번째에 임시패스워드가 생성되어있다. 이걸 잘 기억할 수 있는곳에 일단 복사해둔다.


5. mysql conf 변경

   mysql 운영에 필요한 설정을 조금 해본다. 필요하면 사용하고 안필요하면 굳이 안해도 된다.

   (validate_password.policy 레벨이 높다면 매우 복잡한 패스워드 규칙을 따라 줘야 한다)


$ vim /etc/my.cnf

[mysqld]
port = 사용할 port 번호 (기본포트를 쓰려거든 삭제)
init_connect=SET NAMES utf8
character-set-server=utf8
collation-server=utf8_general_ci
default-storage-engine=InnoDB
validate_password.policy=LOW
log-bin-trust-function-creators=1

....제일 하단에 이어서...

[innoDB]
innodb_file_per_table=1

[client]
default-character-set=utf8
port = 사용할 port 번호 (기본포트를 쓰려거든 삭제)


6. 서비스를 재 실행 한다.

$ service mysqld restart


7. mysql 로그온 후 패스워드 변경 ( 4번에서 보관해 둔 임시패스워드를 사용한다)

$ mysql -u root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';


이 정도면...mysql 은 사용가능해 진다.

'기억할것들 > SQL' 카테고리의 다른 글

MySQL TimeZone 설정하기.  (0) 2018.12.18
mysql 설치순서  (0) 2018.08.13
MSSQL 메모리 누수 관리  (0) 2018.01.03

사실 보안상 그러면 안되지만, 여러개의 키를 관리하기 귀찮아서 하나의 PEM 키로 모든 서버에 로그인 하고 싶었다.

그러기 위해선 각 서버의 Authorized_keys 에 내 public key의 내용물들이 저장되어 있어야 하는데 PEM 만 가지곤 알수 없지 않은가 ?!


그래서 찾아봤다. PEM 키를 가지고 public Key 를 생성하는 방법을 

생각보다 간단하더라


콘솔에 로그인 후 PEM 키를 서버로 올린다.

그리고 입력한다.


$ ssh-keygen -y -f private_key.pem > public_key.pub


끝.

이걸 검색 하는 분들은, 이게 왜 필요한지도 아실거라 생각한다.

그리고 정리하긴 항상 귀찮으니 대충 알 수 있을 정도로만 정리하려 한다.


[중요한 부분]

구글 영수증 검증을 위해서는 Access Token 이라는 것이 필요하다.

그런데 이 Access Token은 유효기간이 있다.! (1시간정도)

간이 지나면 현재 Access Token으로는 검증을 할 수 없기 때문에,

이를 교체 해야 한다. 그래서 필요한 것이 Refresh Token 이다.


아래 내용은 Refresh Token 을 얻는 방법 부터 시작된다.



[구글 영수증 검증을 위해서는]


1. 구글 개발자 콘솔의 권한이 필요하다.

  (https://console.developers.google.com/apis)


2. 프로젝트를 선택한다 ( 프로젝트가 없다면 새프로젝트를 생성한다)


3. 사용자 인증정보를 만듭니다.

    oAuth 클라이언트 ID 를 선택해야 한다.


  



4. 우리는 웹으로 검증프로세스를 진행할 것이기 때문에, 웹 어플리케이션으로 만든다.


5. 만드는 과정에서 보면 승인된 리디렉션 URI 를 입력해야 한다. 

   구글에 RefreshToken 발급 요청 시 이곳에 기록한 URL로 연결이 되기 때문에 반드시 접속 가능한 주소를 입력한다.


6. 생성을 완료하고 생성한 정보를 누르면 아래와 같이 ID와 보안코드가 발급된다. (이것도 중요함!)


7. API 및 서비스 사용설정을 누르고 Google Play Android Developer API 로 가서 사용설정을 누른다.


8. RefreshToken 발급을 위해서 특정 Code를 발급받아야 한다. 이 과정은 아래의 URL을 사용자 설정에 맞게 수정 후 웹브라우저로 접속한다.


${client_id} = 6번의  client ID

${redirect_url} = 6번에서 등록한 접속 가능한 RedirectUrl


[요청 URL]

https://accounts.google.com/o/oauth2/auth?
scope=https://www.googleapis.com/auth/androidpublisher
&response_type=code
&state=test
&access_type=offline
&client_id=${client_id}
&redirect_uri=${redirect_url}
&approval_prompt=force


위 URL을 복사해 가더라도 편의상 보기 편하기 위해 해논 개행은 꼭 다 붙이고 진행하길 바란다


위 URL 로 접속하면 이제 get 파라미터로 code가 전달 된다.

이 code를 꼭 기억하도록 한다. RefreshToken 을 획득하기 위해 꼭 필요하다.


9. access token 과 refresh token 획득을 위해 다음 url 에 요청한다

   (필자는 curl을 통해 호출했다)




$fParam = array(

'code' => ${client_code}, // 8 에서 발급받은 code

'client_id' => ${client_id}, // 8 에서 사용한 google client id

'client_secret' => ${client_secret}, // 8 에서 사용한 google client secret

'redirect_uri' => ${return url}, // 8 에서 사용한 google return url

'grant_type' => 'authorization_code',

);


token 발급을 위한 요청  url  은 아래와 같다.


$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL, 'https://accounts.google.com/o/oauth2/token' );

curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded') );

curl_setopt( $ch, CURLOPT_HEADER, 0 )

curl_setopt( $ch, CURLOPT_POST, TRUE )

curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($fParam) )

curl_setopt( $ch, CURLOPT_TIMEOUT, 300 )

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );

curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );


$result = curl_exec( $ch );

if ( $result === FALSE ) {

die( 'Curl failed: ' . curl_error( $ch ) );

}


curl_close( $ch );

return json_decode( $result );


위 코드를 작성한 URL 에 접속하면 요청이  잘 내려온다

아래와 같은 형식으로


stdClassObject ( 

[access_token] => user_accessToken

[expires_in]=>3600

[refresh_token]=>user_refreshToken

[scope] => https://www.googleapis.com/auth/androidpublisher 

[token_type] => Bearer 

)


원하는 Access Token 과 RefreshToken 이 니왔다.


자세히 보면 expires_in 3600 이라는게 있는데, 이게 Access Token 의 유효시간이다.

저 배열을 그대로 DB 에 담아두고 Refresh Token 을 이용해 Access Token 을 주기적으로 갱신해야 한다.


10. Refresh Token . 을 사용해 AccessToken 갱신하기


$fParam array(

'refresh_token' => ${refresh_token}, // 9 에서 발급받은 refresh tolen

'client_id' => ${client_id}, // 8 에서 사용한 google client id

'client_secret' => ${client_secret}, // 8 에서 사용한 google client secret

'grant_type' => 'refresh_token',

);



$ch curl_init();

curl_setopt$chCURLOPT_URL'https://accounts.google.com/o/oauth2/token' );

curl_setopt$chCURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded') );

curl_setopt$chCURLOPT_HEADER)

curl_setopt$chCURLOPT_POSTTRUE )

curl_setopt$chCURLOPT_POSTFIELDS, http_build_query($fParam) )

curl_setopt$chCURLOPT_TIMEOUT300 )

curl_setopt$chCURLOPT_RETURNTRANSFER);

curl_setopt$chCURLOPT_SSL_VERIFYHOST);

curl_setopt$chCURLOPT_SSL_VERIFYPEERFALSE );


$result curl_exec$ch );

if $result === FALSE ) {

die'Curl failed: ' curl_error$ch ) );

}


curl_close$ch );

return json_decode$result );


위와 같은 형식으로 던지면 9번의 결과와 같게 json 타입으로 갱신된 Access Token이 넘어온다.

이 항목은 Access Token Expire 되기 전에 주기적으로 갱신해야 한다.



여기까지가 영수증 검증을 위한 준비 단계 이다. 휴 힘들었다.


11. 마지막, 영수증 상태 검증


영수증 검증을 위해 아래 URL 을 호출한다.


${PackageName} : 앱 패키지 이름

${ProductID} : 인앱 구매 상품의 제품코드

${PuchaseToken} : 결제 후 내려오는 영수증 번호

${access_token} : 10번을 통해 갱신되는  access token


https://www.googleapis.com/androidpublisher/v1.1/applications/${PackageName}/inapp/${ProductID}/purchases/${PuchaseToken}?access_token=${access_token}


위 URL 을 file_get_content 등을 통해 호출하면 json type 으로 리턴값이 온다.


결과의 purchaseState 의 값이 0 일 경우 정상적인 영수증이다.


이 정도면.. 되지않을까...?




'기억할것들 > PHP' 카테고리의 다른 글

[CSS] 로 문자열 줄임 처리하기  (0) 2018.08.29
php 7.2.8 소스 설치  (0) 2018.08.13
구글 영수증 검증  (0) 2018.07.25

+ Recent posts