Android 인앱 결제 테스트 시 Order ID가 제거됨

Android_in-app_billing_purchase

지금까지 Android의 In-App Billing API를 사용하여 결제를 진행하게 되면 다음과 같은 결제 결과를 얻을 수 있었습니다.

{ 
   "orderId":"12999763169054705758.1371079406387615", 
   "packageName":"com.example.app",
   "productId":"exampleSku",
   "purchaseTime":1345678900000,
   "purchaseState":0,
   "developerPayload":"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ",
   "purchaseToken":"rojeslcdyyiapnqcynkjyyjh"
 }

이러한 결과 데이터중에 orderId 라는 값이 있는데요, 이 값은 구글이 발행한 결제 트랜젝션의 식별자입니다. 이러한 값이 2016년 6월 20일부로 테스트시에는 orderId를 제공하지 않는것으로 변경되었습니다.

Hello Google Play Developer,

Beginning June 20, 2016, we’ll be making a change to test purchases for one-time in-app purchases (IAPs).

Previously, test purchases for one-time IAPs generated order IDs. Starting June 20, 2016, one-time IAPs will not generate order IDs and will not appear in the Merchant Center. This behavior already applies to subscription IAPs.

You can learn more about testing in-app billing in the Android Developers Help Center (which will be updated with the information above on June 20).

Thanks for supporting Google Play,

The Google Play Team

위는 구글이 이러한 변화를 알리기 위해 메일로 공지한 내용입니다. 내용중에 IAP(In-App Purchase)와 IAB(In-App Billing)를 혼용하고 있는 점이 눈에 띄네요.

스크린샷 2016-06-22 오후 9.46.40

실제로 Google의 [레퍼런스]를 확인해 보면 위와 같이 내용이 업데이트 된것을 확인하실 수 있습니다. 샌드박스 환경을 통해 테스트 결제를 진행 할 경우 orderId의 값이 빈값으로 나온다는 언급이 있습니다.

만약 개발중인 프로젝트에서 orderId를 이용하여 무언가를 하고 있고 테스트 환경에서도 이 orderId가 사용될 경우 예외처리를 추가하셔야 할 것 같습니다.