해외 카드 + Paypal 연동하기 진행 중 에러 관련 문의드립니다.
안녕하세요 https://docs.tosspayments.com/guides/v2/learn/foreign-payment 이 가이드를 참고하여 해외 카드 + Paypal 연동하기를 진행하고 있습니다.
참고로 앱 서비스이지만 국내결제, 브랜드페이, 해외결제 모두를 사용해야 해서 웹뷰로 구현하고 있습니다.
Paypal은 이미 연동한 상태고, 해외 카드를 붙이려고 하는데 가이드를 참고하여 if문을 추가한 뒤 카드 > 결제하기 버튼을 눌렀더니 "Uncaught (in promise) Error: 모바일 화면에서는 Promise 방식을 지원하지 않습니다."라는 에러가 떠서 혹시 어떤 부분을 더 찾아보면 좋을지 문의드립니다.
해외결제 연동하기 | 토스페이먼츠 개발자센터
해외결제는 해외에서 발급된 카드 또는 해외 간편결제 서비스를 사용한 결제입니다. 국내에 거주하는 외국인 또는 해외에 거주하는 구매자에게 상품을 판매할 때 사용하세요.

26 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
모바일 환경에서 결제요청 했을때의 콘솔 에러 인가요?
콘솔 에러를 따로 찍지는 않았습니다
이 에러 메세지 같은데 해외카드 결제 시에도 successUrl과 failUrl이 필요한건가요?

"모바일 환경" 인가요?
네 맞습니다
Promise 활용하고 있나요?
then() catch() 사용해서, 해당 페이지에서 이동없이 결제 승인 되도록 처리하고 있는지에 대한 질문 입니다
아뇨 then() catch()는 따로 사용하고 있지 않습니다
그러면 successUrl, failUrl 추가 해주세요.
일반적인 연동 방식 구현 방향 따라가시면 됩니다.
여기에 successUrl, failUrl만 넣으면 되는걸까요?

단순히 넣는다고 끝이 아니에요
successUrl, failUrl 부분 구현은 되셨나요?
네 국내 결제랑 페이팔 작업하면서 구현했습니다
구현 하신 페이지라면 (승인 API 호출 등 구현 되었다고 이해 하겠습니다)
네, 지금 전달한 requestPayment 부분에 추가 하면 됩니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
successUrl, failUrl 넣고 결제하기 버튼 눌렀더니 failUrl로 COMMON_ERROR 처리 중 오류가 발생했습니다 라고 에러가 뜹니다 (orderId는 2025-02-17-d11e951c입니다)
global_payment 면 외화결제 MID 연결된 UI 인것 같은데
지금 외화결제 테스트 하려고 하는게 맞나요?
외화결제 MID에서 해외 카드 KRW으로 결제 테스트는 불가능한가요?
가능하면.. 상황에 맞는 MID 로 테스트 해주세요
계약에 맞는 MID 의 테스트 키로 테스트 해주시고
이때 문제가 있으면 계약상태 싱크해드리면 되는데
계약에 맞지 않는걸로 테스트를 하시면 지원이 어렵습니다
그럼 https://docs.tosspayments.com/guides/v2/learn/foreign-payment 이 가이드의 해외 카드 + PayPal 연동하기 부분은 USD 결제용인건가요?
해외결제 연동하기 | 토스페이먼츠 개발자센터
해외결제는 해외에서 발급된 카드 또는 해외 간편결제 서비스를 사용한 결제입니다. 국내에 거주하는 외국인 또는 해외에 거주하는 구매자에게 상품을 판매할 때 사용하세요.

문서를 읽어보시면 알겠지만,
서로다른 currency 를 하나의 위젯으로 묶고 싶으면,
하나는 currency 에 맞는 MID 로 연결하고
다른 하나는 "커스텀 결제수단 추가" 라는 추가 버튼으로
해당 버튼을 클릭 했을때 수행하는 js 가 다르다는걸 잘 아실 수 있을거에요..
key는 CARD로 설정
document.querySelector("#payment-button").addEventListener("click", async () => {
const selectedPaymentMethod = await paymentMethodWidget.getSelectedPaymentMethod();
if (selectedPaymentMethod.code === "CARD")
JavaScript 부분이에요..
네 저도 저 가이드 여러 번 읽었고 말씀해주신대로 설정했습니다
해외결제 위젯에서 커스텀 결제수단 추가로 추가한 CARD 부분을 선택하면 그 if문에 설정한 대로 해외카드 결제를 KRW으로 할 수 있다고 생각해서 문의드렸습니다
KRW 로 결제요청하는 부분의 clientKey 알려주세요.
selectedPaymentMethod.code 가 card 일때
krw 로 결제요청 되도록 구성했을텐데
그때 사용하는 clientKey 전달 해주세요
test_ck_DpexMgkW36mdlzBvM6wJ8GbR5ozO 입니다
이 키는 uhsuitle3q 인데요
이건 KRW 로 진행할수가 없어요
PayPal, Alipay 전용 MID 입니다
아 그렇군요 clientKey에 원화결제 되는 키 넣어서 진행해보겠습니다
답변 감사합니다
네 감사합니다