안드로이드 카드사 창이 안뜹니다
결제 위젯으로 화면까지 출력은 되는데 토스페이 클릭하고 넘어가면 카드사가 뜨지 않고 PaymentCallback함수가 호출 되지 않고 종료됩니다. 결제 승인은 paymentkey가 있어야 하는데 success에 payment키가 있어서 어떻게 해야 할지 잘 모르겠습니다.
코드는 다음과 같습니다.
binding.btnOrderPayment.setOnClickListener {
Log.d("ddd", "dsdsdsds")
paymentWidget.requestPayment(
paymentInfo = PaymentMethod.PaymentInfo(orderId = "wBWO9RJXO0UYttttaefeff", orderName = "orderName"),
paymentCallback = object : PaymentCallback {
override fun onPaymentSuccess(success: TossPaymentResult.Success) {
Log.d("ddd", "fdfdfd")
Log.d("ddd", success.paymentKey)
Log.d("ddd", success.orderId)
Log.d("ddd", success.amount.toString())
}
override fun onPaymentFailed(fail: TossPaymentResult.Fail) {
Log.d("ddd",fail.errorMessage)
}
}
)
Log.d("ddd", "dsdsdsds")
}

25 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
결제하기 버튼은 만드셨나요?
넵 결제하기 버튼은 밑에 있습니다
결제하기 누르면 이렇게 뜨고 다음 누르면 바로 종료됩니다

Api 테스트에서 OrderId로 결제 조회로 api 날려보면 {
"mId": "tvivarepublica",
"lastTransactionKey": "DCFC93B2854EDE5BDE53834FCBD5B0F9",
"paymentKey": "jvX2KBP9QADpexMgkW36wzxJJ06jeNVGbR5ozO06yLYlaEJ7",
"orderId": "wBWO9RJXO0UYttttaefeff",
"orderName": "orderName",
"taxExemptionAmount": 0,
"status": "READY",
"requestedAt": "2023-09-05T10:49:55+09:00",
"approvedAt": null,
"useEscrow": null,
"cultureExpense": false,
"card": null,
"virtualAccount": null,
"transfer": null,
"mobilePhone": null,
"giftCertificate": null,
"cashReceipt": null,
"cashReceipts": null,
"discount": null,
"cancels": null,
"secret": null,
"type": "NORMAL",
"easyPay": null,
"country": "KR",
"failure": null,
"isPartialCancelable": true,
"receipt": null,
"checkout": {
"url": "https://api.tosspayments.com/v1/payments/jvX2KBP9QADpexMgkW36wzxJJ06jeNVGbR5ozO06yLYlaEJ7/checkout"
},
"currency": "KRW",
"totalAmount": 10000,
"balanceAmount": 10000,
"suppliedAmount": 9091,
"vat": 909,
"taxFreeAmount": 0,
"method": null,
"version": "2022-11-16"
} 응답이 오는 상태이긴 합니다.
모바일에서 사용하시는거죠?
모바일은 successURL, failURL 을 넣으셔야 합니다.
네 모바일에서 사용하고 있습니다. 어떤식으로 successURL, failURL를 작성해야 할까요??
네이티브로 구현하시는 건가요?
native sdk쓰시는거죠?
안드로이드 스튜디오로 진행하고 있습니다
지금 샘플앱 그대로 실행하신건가요? 아니면 직접 연동중이신가요?
직접 연동중 입니다
우선 샘플앱 한번 실행해보셔서 구조를 확인하시는 것도 좋을 것 같습니다.
지금 연동 중인 방식은 successURl, failURL입력안하셔도 됩니다.
말씀하신 것처럼 callback 받으면서 웹뷰가 닫히고, 해당 callback에 paymentKey등 정보를 주게되는데요
callback 함수에 아무런 parameter도 안넘어왔다는 말씀이시죠?
넵 callback이 성공 실패 둘다 진행되지 않고 종료됩니다.
토스페이 앱은 설치되어있나요
토스페이 앱은 설치되어 있진 않습니다
아 토스 앱이요
토스앱도 설치안되어있으신거죠?
일단 설치되어있는 카드사앱으로 해보시죠
virtual device로 하고 있어서 다 설치가 안되어 있습니다.
그럼 안되는게 맞네요
다른 앱으로 이동이 안되서 종료되는 겁니다
실제 기기에서 테스트하시기 바랍니다.
아 그러면 이 경우에는 앱이 다 설치되어 있어야 실행이 되는건가요??
virtual이라 market앱으로 이동안하는 것일수도있어요
확인하고 다시 오겠습니다. 답변해주셔서 감사합니다!!!!
국내에서 결제테스트하려면 실물기기에서 하셔야합니다.
실제 카드사앱에서 카드가등록되어 있어야 진행도 가능하고요
실물기기로 하니까 해결 됐습니다
답변 해주셔서 다시 감사드립니다~~
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.