I'm using version 3 of the in-app billing API. I have a single, managed, non-consumable item. I have not released this feature in my app yet, so I want to decide on the purchase payload contents before there are any purchases.
From "Security Best Practices":
Set the developer payload string when making purchase requests
인앱 결제 버전 3 API를 사용하면 Google Play에 구매 요청을 보낼 때 '개발자 페이로드'문자열 토큰을 포함 할 수 있습니다. 일반적으로이 구매 요청을 고유하게 식별하는 문자열 토큰을 전달하는 데 사용됩니다. 문자열 값을 지정하면 Google Play는 구매 응답과 함께이 문자열을 반환합니다. 이후에이 구매에 대해 쿼리 할 때 Google Play는 구매 세부 정보와 함께이 문자열을 반환합니다.
나중에 해당 사용자의 합법적 인 구매인지 확인할 수 있도록 애플리케이션에서 구매 한 사용자를 식별하는 데 도움이되는 문자열 토큰을 전달해야합니다. 소모성 품목의 경우 무작위로 생성 된 문자열을 사용할 수 있지만, 비 소모성 품목의 경우 사용자를 고유하게 식별하는 문자열을 사용해야합니다.
Google Play에서 응답을 받으면 개발자 페이로드 문자열이 구매 요청과 함께 이전에 보낸 토큰과 일치하는지 확인하세요. 추가 보안 예방 조치로 자신의 보안 서버에서 확인을 수행해야합니다.
바르게 또는 잘못, 내가 결정 하지 구매 검증을 수행하기 위해 서버를 설정하는 "더 보안 예방 조치"를 취할. 그리고 저는 구매 기록을 저장하지 않습니다. 저는 항상 청구 API를 호출합니다. 이 페이로드 확인을 수행해야하는 이유가 정말로 있습니까? 확인 API 자체는 항목을 구매 한 것으로보고하기 전에 사용자의 신원을 확실히 확인합니다. 공격자가 기기 (앱 또는 Google Play API)를 해킹 한 경우 추가 확인을 수행해도 이점이 없습니다. 쉽게 우회 할 수있는 장치의 사용자 ID 아니면 내가 생각하지 않는 이것을 할 이유가 있습니까?