# 인앱 결제를 테스트 해보자
- 결제 테스트는 앱이 퍼블리싱 되지 않고 마켓에 등록만 되어 있으면 가능하다. 테스트 디바이스 OS는 1.6 이상이여야 하고, 구글 플레이 버전은 최신 버전을 유지해야 한다.@ Testing in-app purchases with static responses
- 우리는 당신이 테스트 요청과 응답을 통해 먼저 결제를 구현 테스트 해보길 추천한다. 이 테스트 요청과 응답은 충분히 결제 요청과 응답에 대한 테스트를 할수 있다.
- 테스트 요청을 하기 위해서는 reserved item이 필요하다. 이는 돈이 인출되지 않을 뿐 아니라 특정(specific static)응답을 구글 플레이서 준다.
- reserved product를 계정에서 등록 할 필요가 없다. 구글 플레이는 이미 그것을 알고 있다.
- 아래는 static 인앱 결제 응답에 관한 내용이다.
- android.test.purchased : product id를 가지고 결제 요청을 하면 구글 플레이는 성공적으로 결제가 된 것처럼 응답한다. 이 응답은 JSON string을 포함한다. 이 정보는 가짜다. 경우에 따라서는 응답에 결제를 식별하기 위한 signature도 포함한다.
- android.test.canceled : product id를 가지고 결제 요청을 하면 구글 플레이는 결제가 취소 된 것 처럼 응답한다. 이는 신용카드가 올바르지 않거나 사용자가 대금 지불전에 취소 했을 때 일반적을 일어난다.
- android.text.refunded : product id를 가지고 결제 요청을 하면 구글 플레이는 결제가 환불 된 것 처럼 응답한다. 환불은 구글 플레이가 자의적으로 할 수 없다. 판매자가 판매자 페이지에서 해야 응답 될 수 있다.
- android.test.item_unavailable : product id를 가지고 결제 요청을 하면, 구글 플레이는 구매할 아이템을 리스트 할 수 없다고 알려준다.
- reserved item이 signature를 포함 할수 있다고 했는데, 아래와 같이 상황에서 signature를 포함한다.
Table 1. Conditions under which static responses are signed.
| Application ever been published? | Draft application uploaded and unpublished? | User who is running the application | Static response signature |
|---|---|---|---|
| No | No | Any | Unsigned |
| No | No | Developer | Signed |
| Yes | No | Any | Unsigned |
| Yes | No | Developer | Signed |
| Yes | No | Test account | Signed |
| Yes | Yes | Any | Signed |
- reserved product ID를 가지고 요청을 할때는 일반적인 REQUEST_PURCHASE를 만들면 된다. 실제 product ID 를 가지고 만들 필요 없다.
- reserved product ID을 사용하는 절차는 다음과 같다.
1. 앱을 기기에 설치한다. (애뮬레이터에서는 사용이 불가하다.)
2. 당신의 디바이스에서 개발자 계정을 등록한다. (reserved product ID만 사용할때는 테스트 계정이 필요하지 않다.)
3. 구글 플레이가 결제를 지원하지는지 확인한다.
4. reserved product ID로 결제를 요청한다.
# 구글 플레이 시스템을 오버라이드해서 (reserved product ID) in-app billing requests 요청을 만든다. 이 요청은 실제 상품 환경과 비교 할수 없습니다.
@ Testing In-app Purchases Using Your Own Product IDs
# 정적인 응답 테스트가 끝나면 실제 product id로 end-to-end 결제를 테스트 할 수 있다. 구글 플레이에서 응답해서 결제 및 지불까지 하는 테스트이다. 이때도 역시 애플리케이션을 퍼블리싱 할 필요가 없고 드래프트 상태로 올려놓기만 하면 된다.- end-to-end 테스트를 하기 위해서는 테스트 계정을 등록해야 합니다. 테스트 계정은 판매자 사이트에서 설정할 수 있습니다. 또한 판매자 화면의 테스트 하고자 하는 앱에서 실제 product id를 생성해서 등록 시켜야 합니다.
- 실제 product id를 가지고 테스트를 하는 절차는 아래와 같다.
1. 애플리케이션을 마켓에 올려놓는다. (draft상태로)
- 애플리케이션 릴리즈는 signed해서 만든다. 설치한 앱 버전과 업로드한 버전은 일치시켜야 한다.
2. 상품을 마켓에 등록한다.
3. 기기에 애플리케이션을 설치한다.(No 에뮬레이터)
4. 기기에 테스트 계정을 상위 계정(primary account)으로 설정한다.
5. 구글 플레이 버전을 확인한다. (자세한건 이전 내용 참조)
6. 결제를 실행 한다.
댓글 없음:
댓글 쓰기