Skip to main content

제 3자 결제 - 구글

구글 제3자 결제

백엔드

구매

  • 안드로이드 앱의 AlternativeBillingListener에서 my_token을 externalTransactionToken으로 수신
  • 앱에서 백엔드로 externalTransactionToken, 제품 정보 전송
  • 앱내 결제 처리 후 Google Play 보고 목적의 고유한 거래 ID ( externalTransactionId ) 할당
  • 결제 완료후 externalTransactionId를 서버로 전송 - GooglePlay 결제 보고 API 호출

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=${externalTransactionId}
// Google API client SDK 사용 또는 직접 HTTPS 엔드포인트 호출

Body
{
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"externalTransactionToken": "my_token",
"external_subscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}

환불 처리

  • PG사 환불처리후 백엔드 서버에서 GooglePlay에 REST API로 구매 환불 보고
  • externalTransactionId 기준으로 환불된 거래 보고 : 전액/부분 환불 모두 지원

인앱

구매

  • 안드로이드 앱 BillingClient 초기화 단계에 enableAlternativeBilling 메소드 호출 및 AlternativeBillingListener 등록 필요
    • enableAlternativeBilling - 이용자에게 결제 옵션 선택권 제공
    • AlternativeBillingListener - 제3자 결제 선택 케이스 처리 목적
  • BillingClient 초기화 후 Google Play 연결 필요
    • BillingClient의 startConnection 메소드 호출 - 비동기로 동작
    • BillingClientState Listener로 콜백 수신 필요
    • GooglePlay와 연결 단절시 onBillingServiceDisconnected 콜백 메소드 재정의 필요
  • launchBillingFlow 메소드 호출하여 결제 시작
    1. 제3자 결제 선택시
      • userSelectedAlternativeBilling 메소드 호출
      • AlternativeChoiceDetails 객체 내부 거래 토큰으로 거래 처리 완료후 거래 보고
    2. Google Play 인앱 결제 선택시
      • PurchasesUpdatedListener 또는 BillingClient의 queryPurchasesAsync 메소드로 구매 인식
      • 구매 인증후 구매 확인 필요
        • 구매 미확인시 사용자에게 자동 환불 처리된다
      • 비소비성 제품 - BillingClient의 acknowledgePurchase 메소드로 구매 확인 | isAcknowledged 메소드로 이미 확인되었는지 여부 체크