구글 인 앱 빌링 처리하기
프로젝트 등록 후
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri= "프로젝트에 나오는 redirect uri" &client_id= "프로젝트에 나오는 클라이언트 id"
를 인터넷 주소입력창에 입력하면 동의를 거쳐서 특정코드를 발급한다
발급받은 코드를 잘간직한 후
$url = "https://accounts.google.com/o/oauth2/token";
$content = array();
$post_data = array(
'code' => '발급받은 코드',
'client_id' => '클라이언트 ',
'client_secret' => '클라이언트 시크릿',
'redirect_uri' => '리다이렉트 uir',
'grant_type' => 'authorization_code' //(고정)
);
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$url); //접속할 URL 주소
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 인증서 체크같은데 true 시 안되는 경우가 많다.
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_SSLVERSION,3); // SSL 버젼 (https 접속시에 필요)
curl_setopt ($ch, CURLOPT_HEADER, 0); // 헤더 출력 여부
curl_setopt ($ch, CURLOPT_POST, 1); // Post Get 접속 여부
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_data); // Post 값 Get 방식처럼적는다.
curl_setopt ($ch, CURLOPT_TIMEOUT, 30); // TimeOut 값
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // 결과값을 받을것인지
돌리면
{
"access_token": "액세스토큰",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "리프레쉬 토큰"
}
위와 같은 답변이 떨어진다(예시)
expires_in의 경우는 유효시간이다(초단위)
이제 상품을 구입해보자
{
"orderId":"주문번호",
"packageName":"패키지네임",
"productId":"프로덕트아이디",
"purchaseTime":1435910545435,
"purchaseState":0,
"purchaseToken":"구매토큰"
}
위와 같은 값이 나온다 우리는 위에서 패키지네임, 프로덕트 아이디, 구매토큰 세가지를 사용한다
$url = "https://www.googleapis.com/androidpublisher/v1.1/applications/패키지네임/";
$url.= "inapp/프로덕트 아이디/";
$url.= "purchases/위에서 받은 구매토큰";
$url.= "?access_token=위에서 발급받은 액세스토큰";
$content = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); //접속할 URL 주소
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 인증서 체크같은데 true 시 안되는 경우가 많다.
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION,3); // SSL 버젼 (https 접속시에 필요)
curl_setopt($ch, CURLOPT_HEADER, 0); // 헤더 출력 여부
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // TimeOut 값
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 결과값을 받을것인지
완료시
아래와 같은 모양의 완성이다
{
"kind": "androidpublisher#inappPurchase",
"purchaseTime": "1436169587695",
"purchaseState": 0,
"consumptionState": 0,
"developerPayload": ""
}
아직 리프레쉬 토큰을 사용하여 시간만료에 대한 재갱신은 준비가 안되었다
일단은 여기까지 포스팅
'공부' 카테고리의 다른 글
ip 2진법 계산 (1) | 2016.06.23 |
---|---|
php short_open_tag (0) | 2016.04.19 |
amazon ec2 putty 와 keygen (0) | 2015.06.02 |
php.ini timezone 설정 (0) | 2015.04.22 |
aws lamp setting tutorial (0) | 2015.04.15 |