2013-12-17 3 views
2

TrivialDrive 앱을 사용할 수 있지만 소모품 구매에 대한 질문이 있습니다. . .인앱 결제로 소모품 구매 TrivialDrive 샘플

앱은 queryInventoryAsync 호출을 수행하는 onCreate 이벤트에서 시작되어이 사용자의 인벤토리가 무엇인지 확인하고 다른 제품 중 Google 인벤토리에 가스가 있는지 확인합니다. 하지만 사용자가 가스를 구입할 때마다 ConsumeAsync 호출을 "소비"하기 때문에 가스가 전혀 발생하지 않는 것으로 보입니다.

Google 인벤토리가 Google 서버에 저장되지 않으며 consumeAsync가 소모품 요금 청구를 완료하는 것 같습니다. (아마도 consumeAsync 대신 billForConsumableAsync라고해야합니다.)

TrivialDrive 앱은 공유 환경 설정 메모리에서 항상 소모품 인벤토리를 유지합니다.

이것이 사실이라면 지금까지 앱이 Google 서버에서 가스 인벤토리를 확인하는 이유는 무엇입니까? 아무 것도 없을 것입니다.

또한 사용자가 다른 기기에서 내 앱을 실행하는 경우 다른 기기의 메모리에 보관되어있어 가스 인벤토리가 표시되지 않습니다.

그래서 인앱 결제로 소모품 인벤토리가 Google 서버에 보관되지 않습니다. 앱에서 관리해야합니다. 그것은 그것을 처리하는 잘못된 방법 인 것 같습니다.

내가 이해하지 못하는 것은 무엇입니까? 감사합니다. 게리

답변

0

개발자의 관점에서 볼 때 실제로이 문제를 처리하는 방법이 잘못된 것처럼 보입니다. 그러나 서버 부하를 최소화하므로 Google의 관점에서 볼 때 매력적입니다.

0

소비 가전 제품 (추가 가스 또는 가상 화폐 등)은 일반적으로 하나의 장치에 대해서만 적립됩니다. 따라서 휴대 전화와 태블릿을 소유하고 있고 전화로 더 많은 가스를 구입하면 태블릿에서 더 많은 가스를 얻지 못합니다. 이것이 가용 가스 (또는 가상 화폐 잔액 등)가 중앙 서버가 아닌 장치에만 로컬로 저장되는 이유입니다.

이 방법을 사용하는 이유 중 하나는 다른 방법 (모든 장치에 대해 가스 탱크 공유)을 수행하는 것이 거의 불가능하기 때문에 불가능하다는 것입니다. 귀하의 서버를 업데이트하기위한 인터넷 연결. 따라서 공유 탱크에 100 갤런의 가스를 채우면 휴대 전화와 태블릿을 비행기 모드로 설정하고 두 기기에서 100 갤런을 모두 사용할 수 있습니다 (태블릿에서는 사용자가 또한 전화로 연주하고 그 반대도 마찬가지입니다.) 다음에 인터넷 연결이 가능 해지면 공유 탱크에 -100 갤런의 가스가 생깁니다.

onCreatequeryInventoryAsync-call을 수행하는 이유는 앱에서 구매가 완료된 (즉, 사용자가 청구 된) 거래를 캐치하고 완료 할 수 있기 때문입니다.하지만 앱이 구매 한 추가 가스를 실제로 기록하기 전에 사망했습니다 .

그러나 : 나는이 구매 흐름의 디자인으로 Google이 만든 실수가 실제로 있다고 생각합니다. my related question on this issue에서 자세한 내용을 볼 수 있습니다. 이 질문은 queryInventoryAsync-call을 수행해야하는 이유와 그 외주의해야 할 사항에 대해 자세히 설명하는 데 도움이 될 수 있습니다.