Calm 명상앱 소개 및 구글플레이스토어앱 무료훈련 후 자동결제 해제 방법
팀 페리스 저자 타이탄의 도구들에 나오는 성공한 인물들은 명상을 생활화했다고 합니다. 이 책에서 권하는 명상앱은 헤드스페이스headspace 혹은 캄calm이라는 앱인데요. 혹시나 해서 플레이스토어에 찾아보니, 캄calm앱이 등록되어 있더라고요. 지금은 아니지만, 그당시엔 7일 무료 평가판으로 앱을 체험할 수 있었고요. 그러다.
공지 유형 및 거래 정보 확인
PubSub 이 보내주는 공지 데이터message는 POST body 로 전달됩니다. 앞서 설정했던 엔드포인트 URL로 POST body를 받는 API를 구현해 주세요.API 구현은 프레임워크별로 방법이 상이하기 때문에 이 글에서는 다루지 않겠습니다. 공지 데이터는 아래 형태로 들어오며 이곳에서 저희들이 주의 깊게 봐야 하는 필드는 data 입니다. 아래 구현코드를 참고하여 디코딩할 수 있습니다.
import base64import jsondecodeddata base64.b64decodemessagedata.decodeutf8notificationdata json.loadsdecodeddata디코딩이 완전한 notificationdata 변수는 아래와 같은 형태입니다.
영수증 요청
새 구매는 서버가 클라이언트로부터 결제정보를 받는 것으로 시작합니다. 이 글에서는 클라이언트를 다루지 않기 때문에 필수로 필요한 필드에 대해서만 다루겠습니다. 필드 이름은 클라이언트에 따라 상이할 수 있습니다. productId 저희들이 판매하는 인앱 상품 id 입니다. packageName 우리 애플리케이션의 패키지 이름입니다. urchaseToken 인앱 상품을 구매할 때 이용자 기기에 제공된 토큰입니다.
packageNamecom.some.thingproductIdcom.some.thing.inapp1purchaseTokenincafcigbkclcgbnbk . 해당 필드 값을 이용해서 플레이스토어에게 영수증을 요청합니다. 영수증 호출은 구글의 androidpublisher 객체를 통해 진행합니다.
구매 불가 오류 해결
아마존에서 기프트 카드를 구입하려 하면 다음과 같은 오류가 발생하며 구입할 수 없는 경우가 있다 There was a problem with some of the items in your order see below for more information This item is not available for purchase due to geographical restrictions. 주문하신 일부 품목에 문제가 있습니다구체적인 내용은 아래 참조지리적 제약 때문에 구매할 수 없는 품목입니다.
정기결제 해제 방법
무조건적으로 평가판을 체험하고 정기결제 해제를 해주셔야 나중에 자동결제가 안된다는 점 기억해 주세요 첫째 플레이스토어로 가서 위 이미지에 표시한 부분을 누릅니다. 옵션보기이죠.석 삼자 모양 위 화면이 나오면정기결제 메뉴를 선택해 주세요. calm명상앱 정기결제 건이 나오면선택해 주세요. 아래와 구독취소 버튼 보이시죠 해지 이유는 아무거나 선택하시고 구독취소 누르시면 끝납니다. 구독취소는 결제기간이 종료되는 2020.1.25. 에 구독이 취소된다고 하네요.즉 지금 당장 취소는 안된다는 거죠 하지만 시간이 흘러 확인해 보니, 구독이 취소된 것을 확인할 수 있었습니다.
서버의 상품 승인
앞서 영수증의 공통 필드에 acknowledgementState 를 언급했습니다. acknowledgementState 는 상품의 승인상황을 나타내며, 만약 값이 0 아직 승인되지 않음이라면 서버가 인앱 플랫폼에게 직접 승인을 요청해야 합니다. 만약 승인을 하지 않으면 거래가 자동 취소 및 환불이 될 수 있으니 유의해주세요. 영수증 요청과 비슷하게 승인도 소모품과 구독상품을 구분하여 요청합니다. 넘겨주는 매개변수도 영수증 요청과 동일합니다.
환불소모품
앞서 알림을 받는 데 사용하였던 PubSub은 소모품의 환불 알림은 주지 않습니다. 때문에 서버는 voidedpurchases 메서드를 이용해서 무효화된 거래건을 가져와야 합니다. 플레이스토어는 환불이 아닌 무효라는 개념을 사용합니다. 서버가 직접 무효화된 거래를 불러오기 때문에 플레이스토어는 환불무효을 실시간으로 처리하기는 어렵습니다. 스케줄러를 이용해서 일정한 주기마다. 무효화된 거래를 호출할 수 있도록 이루어지는 것을 권장합니다.
voidedpurchases 는 androidpublisher 와 packagename 을 통해 호출할 수 있습니다. 아래 구현코드를 참고해 주세요. voidedpurchases 배열 내의 개별 객체는 다음의 필드를 가집니다.
자주 묻는 질문
공지 유형 및 거래 정보
PubSub 이 보내주는 공지 데이터message는 POST body 로 전달됩니다. 더 알고싶으시면 본문을 클릭해주세요.
영수증 요청
새 구매는 서버가 클라이언트로부터 결제정보를 받는 것으로 시작합니다. 좀 더 구체적인 사항은 본문을 참고해 주세요.
구매 불가 오류 해결
아마존에서 기프트 카드를 구입하려 하면 다음과 같은 오류가 발생하며 구입할 수 없는 경우가 있다 There was a problem with some of the items in your order see below for more information This item is not available for purchase due to geographical restrictions. 좀 더 구체적인 사항은 본문을 참고해 주세요.