flutter - _paymentWidget.requestPayment - 사용자가 결제를 취소하였습니다
tosspayments_widget_sdk_flutter: ^2.1.1 를 사용중인데,
_paymentWidget.requestPayment 단계에서
국민카드 결제시
paymentResult.fail?.errorCode : PAY_PROCESS_CANCELED
paymentResult.fail?.errorMessage : 사용자가 결제를 취소하였습니다
라고 리턴이 옵니다.
가지고 있는 현대카드로 결제시 정상 결제되나, 국민카드, BC카드 의 경우 위와 같은 오류가 발생해 빠른 확인 부탁드립니다!
32 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
웹사이트에서의 결제에서는 국민카드로 정상결제 되는 것을 보니,
flutter 모듈에서 사용되는 쪽에서 뭔가 오류가 있나 봅니다.
주문번호(orderId) : TOSS23966
실결제, 테스트 결제 동일하게 발생합니다.
모듈에는 이상없습니다.
이미 잘 사용하고 있어서요
폰에 usb 꼽혀있나요?
이미 잘 사용하고 있는데, 특정 카드사 에서만 저렇게 사용자가 결제를 취소했다는 리턴이 와서요.
USB 랑 관계가 있는 건가요?
국민카드는 usb꼽은상태에서는 지원하지 않아서요
내부에서 재현되시나요?
usb 꼽지 않은 상태에서 저렇게 나와요. 내부 테스트에서도 재현됩니다!
영상으로 제출해주시겠어요?
저희가 확인가능하 앱도 있나요?
지금 영상으로 찍었습니다!
저희 앱인 "썬데이나마스떼" 입니다
해당 주문건의 주문번호도 알려주실수 있을까요?
일단 몇가지 궁금한게 있습니다.
이 이후부터 결제위젯을 쓰시는 이유가 있나요?

해당 칸부터 쓰시면 될 것 같아서요
주문번호도 공유바랍니다. 로그 확인이 필요해서요
TOSS23980 입니다.
아 저기에 카카오페이랑 네이버페이가 직계약 되어 있습니다.
(토스페이먼츠 하위에 있는 것이 아니라요)
첨부터 그렇게 쓰다보니까, 계속 이대로 사용중입니다.
로그 확인 후 전달드릴게요.
언제부터 안되기 시작하셨나요?
감사합니다. 오늘 처음 현상이 발견되었습니다.
처음 발견된 시간대알 수 있을까요?
내부 배포 와 혹시 연관된게 있는지도 확인해보려합니다.
오늘 점심 정오에 고객으로 연락이 와 처음 알았습니다.
딱 점심 12시요.
아 IOS에서만 발생하네요
이부분은 웹뷰인가요?

아니요. flutter 뷰 입니다.
혹시 결제요청시 appScheme파라미터 보내시나요?
네. 아래와 같이 요청합니다.
final paymentResult = await _paymentWidget.requestPayment(
paymentInfo: PaymentInfo(
orderId: orderId,
orderName: widget.order.name!,
customerEmail: authService.me?.email,
customerName: authService.me?.username,
appScheme: "sundaynamaste://",
),
);
appScheme: "sundaynamaste://",
이거 뺴고 한번 보내보시겠어요?
왠지 저걸로 돌아오다가 로직이 꺠지는 것 같아서요
네. 테스트 해보고 알려드리겠습니다.
appScheme: "sundaynamaste://",
제거하니, 정상 작동 합니다.
sundaynamaste:// 로 결제 완료후 이동을 시키는데 이렇게 이동했을때 기존 페이지를 띄우는게 아니라 특정 로직이 동작하도록 앱을 만드신거 같네요.
iOS 의 경우 appScheme 안보내셔도 큰 이슈 없으므로 그냥 빼고 보내시거나 sundaynamaste:// 로 호출했을때 로직 동작하지 않도록 해주시면 됩니다.
확인 감사합니다.
tosspayments 쪽에서 보내는 sundaynamaste:// 예시 하나 알려주실 수 있을까요?
그럼 안드로이드는 appScheme 필수인가요?
저희가 예시를 알려드릴수 있는건 아니구요 만드신 앱 개발자에서 확인해 보셔야 합니다.
appscheme 필수는 아니라 안보내셔도 되구요.
아 넵. 감사합니다!
테스트를 해보니,
sundaynamaste:///
그러니까, sundaynamaste:// 스키마의 루트("/") 로 들어오던데,
혹시 모두 그런지 확인해 주실 수 있을까요?
sundaynamaste:/// 일 경우에 로직 동작하는 것이 없도록 변경하면 되는데,
다른 예외 사항이 들어오면 router 를 타게 되니 문제가 되어서요.
appScheme 를 추가해야, 몇몇 카드사의 경우
상단에 기존앱 버튼 클릭하지 않아도 자동으로 돌아가서
조금이나마 고객이 편하고 이탈되지 않은 상태에서 결제가 처리되어서 좋을 것 같습니다.
sundaynamaste:/// 는 카드사에서 호출해주는거라
직접 sundaynamaste:/// 도 처리하도록 해주셔야할 것 같아요
직접 sundaynamaste:/// 는 처리하는데, 혹시라도 어떤 카드사에서는
sundaynamaste://return 이렇게 보내면 안되니까요~
카드사에서 처리하기때문에, 각각 다를 수 있고, 토스페이먼츠 측에서 관리할 수 없는 거군요. 다른 회사들에서는 appscheme 을 잘 안쓰나 보네요.
이런 소동이 없는거 보니...
bc/국민에서만 관리할거에요
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.