universal link 자동 리디렉션 (웹->앱) 결제승인 처리 문의
안녕하세요, 현재 아래와 같이 앱에서 결제처리를 해놓은 상태입니다.
(1) 앱 결제요청
(2) 외부 브라우저 띄워서 결제 요청 (https://hol-dit.com/paypal_pay)
(3) 결제요청내 redirect url을 웹 url로 설정 (https://hol-dit.com/paypal_pay)
(4) 그리고 웹 브라우저에서 '결제 승인' 처리 후, 유저가 웹 화면에서 보이는 'Back to app'눌러 앱으로 리디렉션
그런데 여기서 문제는 hol-dit.com이라는 url을 universal link로 사용하여서 (2)번에 결제 요청 이후 리디렉션 될 때, 자동으로 앱으로 다시 돌아와서 (3~4)번을 수행하지 못하고 돌아와 결제처리를 못 하는 상태입니다.
이럴 땐 혹시 어떻게 문제를 해결할 수 있을까요~?
Holdit - Luggage Storage Finder
Holdit - Easily Find Luggage Storage Locations in Korea
Holdit helps you quickly and conveniently find luggage storage locations in Korea. Discover nearby spots, compare prices, and book with ease. Perfect for travelers and commuters needing secure storage options.
22 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
이렇게 하시려면 결제창 호출시에 appScheme 을 보내주지 마셔야 합니다. 지금 보내고 계신가요?
아뇨 현재 app scheme을 보내고 있지 않고, 현재 문제는 Universal Link가 자동으로 앱을 실행하는 것 같습니다!
그럼 successURL 을 유니버설 링크 말고 일반 웹페이지로 설정해주셔야 할것 같습니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
일반 웹페이지라 하면, 해당 url이 아닌 다른 url을 설정하라는 말씀이실까요~?
버블 URL로 설정을 하셔서 승인처리를 하시고
그 이후에 universal link로 넘기시는걸 말씀드린듯 합니다.
만약 이렇게 처리 하시려면 2) 외부 브라우저 띄워서 결제 요청 하실때부터 다른 URL 을 사용하셔야 할거에요.
현재 외부 브라우저를 띄울때 매직링크로 생성하여서 해당 매직링크로 외부 브라우저를 띄우고 있어서 버블 자체 URL로 설정은 뭔가 어려울 것 같긴한데요.
혹시 다른 방법은 없을까요~?
근데 희한하게 국내결제의 경우에는 플러그인을 사용중인데요.
토스페이먼츠 측에서 만들어주셨던 플러그인을 사용하면 리디렉션이 자동으로 되진 않습니다 ㅎㅎ;
동일한 SuccessURL 을 사용하시는데 국내결제는 redirection 이 되고 페이팔은 안되시는건가요?
페이팔 successURL 은 어떻게 사용하고 계신가요?
위에 전달드린 영상은 토스페이먼츠 국내결제 플러그인 사용해서 잘 활용하고 있습니다.
// ------ 클라이언트 키로 객체 초기화 ------
var clientKey = "test_ck_4Gv6LjeKD8apABeXYbwrwYxAdXy1";
var tossPayments = TossPayments(clientKey); // 클라이언트 키로 초기화하기
// ------ 결제창 띄우기 ------
tossPayments
.requestPayment("해외간편결제", {
// 결제 수단 파라미터
// 결제 정보 파라미터
amount: Current page's 예약내역's 총 결제금액,
orderId: 'Current page's 예약내역's unique id',
orderName: "Current page's 예약내역's 예약한 지점's 명칭",
customerName: "Current page's 예약내역's 예약자 성함",
successUrl: "https://hol-dit.com/paypal_pay",
failUrl: "https://hol-dit.com/paypal_pay",
provider: "PAYPAL",
currency: "USD", // USD 통화 지원
country: "US", // ISO-3166의 두 자리 국가 코드 모두 지원
// ...
// 판매자 보호 및 위험 관리 파라미터 사용 예시
paymentMethodOptions: {
// PayPal에서 요구하는 추가 파라미터
paypal: {
setTransactionContext: {
// PayPal STC 파라미터 예시 (구매자의 로그인 정보)
sender_account_id: "Current page's 예약내역's Creator's email",
sender_full_name: "Current page's 예약내역's Creator's Full_name",
sender_email: "Current page's 예약내역's 예약자 이메일 주소",
sender_phone: "Current page's 예약내역's 예약자 휴대폰 번호:extract with Regex:each item:find & replace",
sender_country_code: "US",
sender_create_date: "2021-01-01T19:14:55.277-0:00",
},
},
},
})
.catch(function (error) {
if (error.code === "USER_CANCEL") {
// 구매자가 결제창을 닫았을 때 에러 처리
} else if (error.code === "INVALID_CARD_COMPANY") {
// 유효하지 않은 카드 코드에 대한 에러 처리
}
});
L 페이팔 버튼 클릭 외부 브라우저 띄워서 해당 페이지 로드시 위 코드를 실행하고 있습니다.
successUrl: "https://hol-dit.com/paypal_pay", 이렇게 보내지 말고 승인 요청 보내실 페이지를 호출해 주세요.
실제 로딩될 페이지를 보내주셔야 할겁니다. 이 URL 을 유니버설 링크로 잡고 계신것 같아요.
successUrl을 직접 승인 요청 API로 변경하라는 말씀이실까요~?
아뇨 저희 플러그인은 widget-success 라는 페이지로 설정해서 거기에서 승인 API 호출하도록 되어 있습니다.
이런식으로 successURL 페이지를 직접 만들어서 하시라고 말씀드린거에요.
플러그인을 사용하지 않는데 redirect url을 widget-success 페이를 만들어서 거기서 호출하라는 말씀이실까요~?
그런데 국내 결제 플러그인의 경우에도 결제 승인을 widget-success하는게 아닌, toss_pay라는 페이지에서 하는 중입니다
제가 어떻게 하시는지 잘 이해가 안되네요.
저희가 제공해 드리는 방법 이외의 방법을 사용하고 계셔서요.
어쨌든 지금 증상으로 봐서는 https://hol-dit.com/paypal_pay 이게 유니버설 링크로 이동하도록 되어 있기 때문에 paypal 인증이 진행되면 저희가 successURL 로 보내드리는데, 페이지로 이동하는게 아니라 바로 앱으로 가는 상황입니다.
Holdit - Luggage Storage Finder
Holdit - Easily Find Luggage Storage Locations in Korea
Holdit helps you quickly and conveniently find luggage storage locations in Korea. Discover nearby spots, compare prices, and book with ease. Perfect for travelers and commuters needing secure storage options.
successURL 을 버블 내에 있는 유니버설 링크로 설정되지 않은 다른 페이지로 설정하시고 거기서 confirm API 호출하신후에 앱으로 이동하셔야 한다고 밖에 설명을 드릴수가 없네요.
넵, 우선 연구하여 다시 진행해보겠습니다..!
도움 감사합니다 🙂
1가지만 더 여쭤볼께요! 혹시 successUrl을 직접 승인 요청 API로 변경시 method를 Post로 요청을 할 수 있나요?
거기서 직접 successURL 을 저희 API 로 설정하시면 동작안합니다.
넵 알겠습니다!