2013-03-24 3 views
7

방금 ​​가상 동전 (소모품)을 구매할 수있는 IAP 앱을 만들었습니다. 그리고 백엔드는 Ruby on Rails입니다. 나는 지금 전체적인 해결책에 대해 우려하고있다.IAP 백엔드 베스트 프랙티스

나의 현재 IAP 과정은 다음과 같이 설명합니다

  • 1 단계 - 아이폰 OS 클라이언트는 우리의 백엔드에 요청을 전송 및 제품 ID를 얻을.
  • 2 단계 - 클라이언트는 1 단계에서 ID를 저장 키트를 통해 제품 목록을 검색
  • 3 단계 - 마감 트랜잭션 클라이언트가 접수 토큰을 보낼 때 -
  • 4 단계 사용자는 구매 버튼으로 클릭하고 클라이언트 키트를 저장하기 위해 지불 요청을 보냅니다 우리의 백엔드에
  • 는 5 단계 - 서버는 유효한 검증의 확인 먼저 영수증을 확인
  • 6 단계 - 서버가 영수증을 확인하고 교환 (DB에서 충전 계정)
  • STEP 처리하는 앱 스토어를 호출 7 - 고객이 응답을 받고 계정 잔액을 표시합니다.

저는 전자 상거래/지불 솔루션을 사용하기 전에 IAP가 다른 방법을 사용합니다. 일반적으로 지불 게이트웨이는 확인을 위해 영수증 서버를 서버로 보냅니다. 그리고 우리는 항상 모든 트랜잭션이 안정적이고 유지 보수가 가능하도록하는 메시지 대기열 정렬 솔루션을 제공합니다.

내 질문은 :

  1. IAP 영수증을 확인하는 가장 좋은 방법은 무엇입니까? 서버에서 검증을 방해하지 않으려면 어떻게해야합니까? (예 : 사용자가 돈을 지출하고 클라이언트에서 트랜잭션을 완료하지만 서버에서 수신 확인을 할 때 실패 함 IAP 복원 트랜잭션 지원 없음)

  2. Apple IAP가 가장 적합한 클라이언트 솔루션입니다. 특히 제 경우에는 사용자가 지불 한 후에 즉시 동전을 받기를 원합니다. 거래가 처리 중이며 곧 계좌가 완결 될 것이라고 말하지는 않습니다. 모바일 장치에서 반응 형 UX를 우선적으로 사용하려면 우선 순위를 지정해야합니다. 서버에서 여전히 메시지 대기열을 사용하고 있습니까?

감사합니다.

답변

1

질문 1 : Apple's docs here에 따르면 서버에서 항상 영수증을 확인해야합니다.

https://github.com/gabrielgarza/monza

호스팅 : https://getmonza.com

https://github.com/nomad/venice

https://github.com/nov/itunes-receipt

질문 2 : 백엔드에 애플의 서버와 통신 도움이 될 수 있습니다 루비 보석의 몇 가지 있습니다이 달려있다 당신이 사기에 얼마나 관심이 있는지. 영수증을 확인하지 않으면 사기에 노출됩니다. 나는 서버 측에서 검증 할 것을 강력히 권고한다.

Checkout this WWDC video 인앱 구매에 대한 좋은 기본 정보입니다.