결제 관련 Crash 로그
결제 시도시 Crash Report에 아래와 같은 로그가 발생되어 원인과 함께 예외처리에 대해 문의 드립니다.
에로 로그로 보아 "renderPayment()"의 동작이 완료되지 않은 상태에서 requestPayment를 진행하여 발생된 상황으로 보입니다만
수십차례 시도해보아 해당 문제가 재현이 되지 않고 Document를 살펴보아도 알맞은 내용이 없어 문의합니다.
현재 설정으로는 아래와 같습니다.
1. "com.github.tosspayments:payment-sdk-android:0.1.15" 사용중
2. 결제 관련 소스파일 첨부
- PaymentActivity
- PaymentViewModel
3. 에러 로그 첨부(Crash Report log)
결제 단계에 있어 최대한 안전하게 예외처리할수 있는 방법에 대해서 안내 해주시면 감사하겠습니다.
11 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
renderPaymentMethod가 완료되면
promise로 응답이올거에요
그거 받고 이후 진행해주시면됩니다.
네 감사합니다 !
결제위젯 Android SDK(Version 1) | 토스페이먼츠 개발자센터
결제위젯 Android SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다.
paymentWidgetStatusListener: PaymentWidgetStatusListener
참고해주세요네 해당 listener를 통한 완료후에 payment를 시도하도록 구성되어 있습니다.
그런데 이슈가 발생하나요?
private fun renderPayment() {
try {
paymentWidget.apply {
renderPaymentMethods(binding.paymentWidget, viewModel.amount)
renderAgreement(binding.agreementWidget)
addAgreementStatusListener(object : AgreementStatusListener {
override fun onAgreementStatusChanged(agreementStatus: AgreementStatus) {
isPaymentRendered = true // 실제 렌더링이 완료된 시점에 플래그 설정
binding.buttonPayment.enabled(agreementStatus.agreedRequiredTerms)
}
})
}
} catch (e: Exception) {
isPaymentRendered = false
showToast("결제 위젯을 불러오는데 실패했습니다. 다시 시도해주세요.")
}
}
private fun requestPayment() {
if (!isPaymentRendered) {
showToast("아직 결제준비가 되지 않습니다. 잠시후 다시 시도해주세요.")
return
}
.... 이후 결제 진행
}
위와 같이 진행합니다만... isPaymentRendered로 판단해서 진행하도록 되어있습니다. 하지만 Crash Report 로그는 계속해서 올라오고 있는데 다른 원인이 있을수 있을까요?
그리고 sdk 버전이 최신 버전이 아닌 0.1.15인데 버전은 최신 버전으로 올리는게 좋지 않을까요?
네 우선 최신버전 올리고 한번더 확인해보시겠어요?
네 알겠습니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.