android 정기 결제 작업할때 api 호출 시 401 에러가 반환될때

Updated on

https://sobob.tistory.com/51

https://stackoverflow.com/questions/43536904/google-play-developer-api-the-current-user-has-insufficient-permissions-to-pe/60691844#60691844

android 에서 정기 결제를 작업할때, 토큰을 발급받아서 등록한 다음에 처리할때

API를 호출하면 401 에러가 발생하는 경우가 있다.

이걸 4-5시간동안 개뻘짓을 하다가 검색해서 겨우 찾은거다..

그냥 간단하게, 구독 관리에서 상품 가격을 변경하면 된다.

플레이 스토어에 캐싱이 되어있는 것 같다…

스택오버플로우 보면 알겠지만, 생각보다… 심각하다 ㅠㅠ

그리고 API 호출부터 pub/sub 작업 순서는 아래와 같다.

IAM 생성 및 API 호출 방법

  • IAM 계정 생성 payment@app.iam.gserviceaccount.com
  • 플레이콘솔 - 사용자 및 권한 - 사용자 추가 (위 IAM 주소) - 계정 권한 부여 (재무 데이터, 주문, 취소 설문조사 응답보기, 주문 및 구독 관리)

이렇게 하면, 해당 IAM API TOKEN으로 GOOGLE STORE API에 호출 할 수 있게 된다.

pub/sub 받는 방법

pub/sub으로는 대게 push 방식으로 받고 있다. (pull 방식X) 이 방법은 msa 이다보니, 플레이 콘솔 -> google pub/sub -> push (my server endpoint) 형태로 되어있다. 그래서 권한하고 계정을 추가 다해줘야한다.

pub/sub에서는 여기 부분이 중요한데, 주제구독 채널을 추가 해준다. 근데 여기에서 pub/sub의 주제에서 권한에 게시/구독 게시자 값에 꼭 google-play-developer-notifications@system.gserviceaccount.com 플레이 스토어 권한을 넣어줘야만 한다.

구독 에서 구독 수정 에서 푸시 로 변경하고 엔드포인트 URL을 입력해주면 된다.

그 다음에는 이렇게 - 수익 창출 설정에서 해당 테스트 알림 보내기를 통해 테스트 해볼 수 있다.