Kangmo
Kangmo3mo ago

1. flutter sdk이용해서 flutter web 환경에서 결제가 가능한가요?

2. 아래 flutter sdk 샘플 코드를 보니 결제 요청 보내기 전에 orderId, amount등을 서버에 저장하는 로직이 없던데 이 로직은 어느 코드에 추가하면 될까요? https://pub.dev/packages/tosspayments_widget_sdk_flutter
Dart packages
tosspayments_widget_sdk_flutter | Flutter package
This SDK helps you easily link the 'toss payments' payment module on the flutter.
38 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장3mo ago
flutter web은 저희가 공식지원하지 않습니다. flutter web에 웹뷰 띄워서 연동해주시면 됩니다.
Kangmo
KangmoOP3mo ago
flutter sdk 로는 flutter web이 지원되지 않지만, flutter sdk사용하지 않고 flutter web안에서 웹뷰를 띄워 기존 javascript이용한 웹 환경 결제 방식을 구현해야 한다는 말씀이실까요? 이 코드가 flutter sdk 예제 코드인데요, 결제 요청 -> 승인 요청 두 번 요청을 보내야 하는 것으로 알 고 있는데, requestgPayment이후 // 결제 성공처리 라고 된 부분에서 승인 요청을 보내야 하는걸까요? 주석에 결제 성공처리라고 되어 있어서 마치 결제요청, 승인요청 둘다 성공한 것 처럼 보여서 여쭈어 봅니다 ^^ 빠른 답변 감사합니다 onPressed: () async { final paymentResult = await _paymentWidget.requestPayment( paymentInfo: const PaymentInfo(orderId: 'OrderId_123', orderName: '파란티셔츠 외 2건')); if (paymentResult.success != null) { // 결제 성공 처리 } else if (paymentResult.fail != null) { // 결제 실패 처리 } },
이실장
이실장3mo ago
승인요청까지 완료되어야 최종 성공입니다.
Kangmo
KangmoOP3mo ago
아 그럼 결제 성공처리 저기에서 저희쪽 서버 통해 승인요청 따로 보내면 될까요? flutter sdk 로는 flutter web이 지원되지 않지만, flutter sdk사용하지 않고 flutter web안에서 웹뷰를 띄워 기존 javascript이용한 웹 환경 결제 방식을 구현해야 한다는 말씀이실까요? <- 이 부분도 답변 부탁드려용 ^_^
이실장
이실장3mo ago
네 그렇게하시면될거에요 저희도 직접 해보진 않아서 정확하지 않을 수 있습니다. 어쨋든 저희 sdk도 웹뷰 띄워서 js실행하는걸 대신해주는 역할이어서요
Kangmo
KangmoOP3mo ago
이 이제에서는 클라이언 코드에 키를 박아서 사용하고 있는데, 보안 이슈는 없을까요? @override void initState() { super.initState(); _paymentWidget = PaymentWidget(clientKey: "test_gck_docs_Ovk5rk1EwkEbP0W43n07xlzm", customerKey: "a1b2c3d4e5f67890");
이실장
이실장3mo ago
네 clientKey는 문제없습니다. secretKey만 유출되지 않도록해주세요
Kangmo
KangmoOP3mo ago
아하!! 감사합니다 ^_^ 빠르게 개발하는데 정말 큰 도움이 되고 있습니다. 답변 너무 감사합니다
이실장
이실장3mo ago
flutter web에서 성공하신다음에 어떻게 했는지 간단히 공유해주시면 감사하겠습니다. 일전에 빌링방식 연동하신 분은 아래와 같이 이슈 해결하셨다고 공유하신 내용이 있어 전달드려요.
웹뷰 위에서 스크립트를 local에서 직접 실행하면 cors가 뜬다. (iframe기반이라)
그래서 서버에 html 파일을 올려두고, getparam으로 필요한 결제정보를 보낸 후 띄우는 방식을 사용했다.
웹뷰 위에서 스크립트를 local에서 직접 실행하면 cors가 뜬다. (iframe기반이라)
그래서 서버에 html 파일을 올려두고, getparam으로 필요한 결제정보를 보낸 후 띄우는 방식을 사용했다.
Ayaan
Ayaan3mo ago
플루터 웹에서 웹뷰를 굴리는게 아마 대부분의 라이브러리에서 제대로 지원을 안할 수 있어요. 작업하시면서 안되시는 부분 계속 문의주시면 같이 도와드릴게요. https://inappwebview.dev/blog/flutter-inappwebview-6/#web-support inAppWebview로 처리하면 될 것 같네요.
Flutter InAppWebView 6 | InAppWebView
Flutter InAppWebView 6 is out right now with a lot of new cool features and a fresh new website built using Docusaurus 2.0! 🎉
Ayaan
Ayaan3mo ago
꼭 아이프레임 기반으로 웹뷰가 그려지는 모듈로 해주시기 바랍니다. inAppWebview는 되는거로 알아요.
Kangmo
KangmoOP3mo ago
ㅠㅠㅠㅠ 넘 감사합니다... InAppWebView로 해보겠습니다
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
Kangmo
KangmoOP3mo ago
결제위젯 연동 테스트 위해 클라이언트키와 시크릿키 받으려고 들어갔더니 이용 신청하라고 해서 신청했습니다.(신청한지 5분지남) -> 여전히 테스트 키가 안보이는데요, 테스트키를 볼 수 있는 방법이 있을까요?
No description
Ayaan
Ayaan3mo ago
안녕하세요 신청하고 나서 계약이 완료되어야 기본적으로 노출이됩니다. 그전에는 공용키를 통하여 연동해주셔야 합니다. test_gck_docs_Ovk5rk1EwkEbP0W43n07xlzm test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6 이거 이용해보세요.
Kangmo
KangmoOP3mo ago
예 감사합니다
Kimoon Lee
Kimoon Lee3mo ago
혹시 좌측에 상점 이라고 되어 있는 드랍박스에서 "개발용 테스트 상점" 이외에 다른 상점이 있는지도 확인부탁드립니다.
Kangmo
KangmoOP3mo ago
/success?paymentType={PAYMENT_TYPE}&orderId={ORDER_ID} &paymentKey={PAYMENT_KEY}&amount={AMOUNT} 이건 get으로 날라오는거겠죠? 아님 post일까요?
이실장
이실장3mo ago
get이요
Kangmo
KangmoOP3mo ago
감사합니당 ^^
Kangmo
KangmoOP3mo ago
이렇게 나옵니당
No description
Kangmo
KangmoOP3mo ago
아 오늘 토스 결제창 뜨면 넘 좋겠당... 헤헤
Kimoon Lee
Kimoon Lee3mo ago
다른 상점이 없는것으로 보아 계약도 진행을 안하신것 같네요. 계약전에는 가이드 페이지에 있는 키를 이용하시면됩니다.
Kangmo
KangmoOP3mo ago
예 감사합니다 웹뷰에서 결제 요청을 했는지 알아보기 위해서 orderId로 결제 요청이 있었는지 조회하고 싶은데 "결제 요청이 있었는지" 조회하는 API가 있을까요? GET /v1/payments/orders/{orderId} 이걸로 결제 요청까지만 보내고 결제 승인 하지 않은 건 조회가 가능할까요? 클라이언트단에서 호출해야 해서, secret없이 조회 가능하면 좋겠어용
이실장
이실장3mo ago
네 안됩니다 그럼 모두가 볼 수 있겠죠
Kangmo
KangmoOP3mo ago
아 네.. 제가 toss flutter sdk 소스를 받아서 여기다 ios android뿐 아니라 web도 되게 해보려 하는데, 혹시 이후에 web을 지원하실 계획이 있으실까요?
이실장
이실장3mo ago
현재 계획된 바는 없습니다
Kangmo
KangmoOP3mo ago
flutter의 WebViewWidget 이 아닌 InAppWebView를 이용해야 하는 이유가 궁금합니다~
이실장
이실장3mo ago
혹시 저희랑 계약된 mid가 어떻게되실까요?
Kangmo
KangmoOP3mo ago
잠시만요 ^^
Kangmo
KangmoOP3mo ago
No description
Kangmo
KangmoOP3mo ago
여기 있습니다~
이실장
이실장3mo ago
확인 감사하니다. sdk가 inappwebview기반으로 되어있는 것은, 브랜드페이 지원을 위함이며 세부적인 내용은 엔지니어링 적인 부분이라 공유 어려운 점 양해바랍니다.
Kangmo
KangmoOP3mo ago
아하, 감사합니다
Kangmo
KangmoOP3mo ago
https://pub.dev/packages/tosspayments_widget_sdk_flutter 여기 예제에서 success url과 failure url을 넘기는게 없는데요, 혹시 success, failure URL 까지 SDK가 구현해서 아래 코드로 분기되는걸까요? if (paymentResult.success != null) { // 결제 성공 처리 } else if (paymentResult.fail != null) { // 결제 실패 처리 }
Dart packages
tosspayments_widget_sdk_flutter | Flutter package
This SDK helps you easily link the 'toss payments' payment module on the flutter.
이실장
이실장3mo ago
sdk가 successURL을 알아서 받은후 ,result로 callback 넘겨줍니다. 새로운 문의는 새로운 포스팅으로 해주세요.
Kangmo
KangmoOP3mo ago
예 감사합니다