
Google Play Android Developer API를 통해서 Android 앱에서 결제 시스템을 백엔드 서버와 연결하는데 생각보다 인터넷에 정보가 부족한데다 정보가 오래 된 경우가 대부분이라 기능 구현에 꽤나 시간이 걸렸었다.
기능을 구현하는 방법과 기능 구현하면서 겪었던 문제들을 기록하는 느낌으로 써본다.

"API 및 서비스"에서 "사용 설정된 API 및 서비스"에 들어간다.

"사용자 인증 정보 만들기"를 클릭 후 나오는 메뉴에서 "서비스 계정"을 만든다.
서비스 계정의 이름과 id를 설정해주고, 권한을 설정할 때 역할을 "편집자"로 설정한다.

"새 키 만들기" 선택 후 JSON으로 만들어준다. 만든 JSON 키는 프로젝트에 저장하고 잘 보관해야한다. 중요한 정보가 들어있으니 절대 유출해서는 안된다. .gitignore에 지정해 git에 올라가지 않도록 하자.

계속해서 Google Play Andorid Developer API를 설정해주자. 어디있는지 모르겠다면 위에 있는 검색창에 검색하면 나온다.
TMI: 해당 부분은 현재 인터넷에 돌아다니는 블로그 글들에서는 전부 Google Play Console에서 "API 액세스" 탭에 들어가라는 식으로 설명되어있지만 자세히 알아보니까 최근에 해당 탭이 사라지고 해당 부분에 대한 설명이 갱신되지 않아 엄청 헤멨었다... (Google Develop 한국어 공식 문서에서도 작성일 기준으로 갱신 되지 않았다.)

Google Play Console에서 "사용자 및 권한" 탭에 들어가준다.

"사용자 초대"를 하고 이메일 주소에 방금 Google Cloud Console에서 만든 서비스 계정의 이메일 주소를 입력하자.

권한을 설정할 때 "재무 데이터"의 권한을 설정해야 결제 정보에 접근할 수 있다.

"라이선스 테스트" 탭에 들어가 테스터에 방금 만든 서비스 계정의 이메일을 또 다시 추가해야 한다.
const packageName = (Android 앱의 패키지 이름);
const subscriptionId = (가져올 구독 이름);
const auth = new google.auth.GoogleAuth({
keyFile: "(서비스 계정 키 json 파일의 경로)",
scopes: ['https://www.googleapis.com/auth/androidpublisher']
});
const androidpublisher = google.androidpublisher({
auth: auth,
version: "v3"
});
const data = await androidpublisher.purchases.subscriptions.get({
packageName: packageName,
subscriptionId: subscriptionId,
token: token
})
이렇게 하면 구독 정보를 불러올 수 있다!!
The current Google Docs were really difficult to understand for me, they now show in Google Play "The API access page has gone away. We've made some updates to our API setup, which means that the API access page has gone away. If you've already set up API access, there's nothing you need to do, and your existing integrations will continue to work." How are you supposed to grasp the following steps geometry dash online (question for Google)?