쪼이쪼이
쪼이쪼이2mo ago

결제위젯 약관동의 이벤트 구독

https://docs.tosspayments.com/sdk/v2/js#agreementwidgeton 위 가이드보고 개발환경에서 테스트해보았는데, 동작을 안하네요 .. 개발환경에서 확인할 수 있는 방법이 있을지요?
토스페이먼츠 JavaScript SDK | 토스페이먼츠 개발자센터
토스페이먼츠 JavaScript SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다.
10 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee2mo ago
어떻게 동작을 안하는지 콘솔이나 에러메시지를 공유해주세요.
쪼이쪼이
쪼이쪼이OP2mo ago
const [payment, agreement] = await Promise.all([ widgets.value.renderPaymentMethods( '#payment-method', {value: amount}, { variantKey: 'DEFAULT', }, ), widgets.value.renderAgreement('#agreement', { variantKey: 'AGREEMENT', }), ]) paymentWidgets.value = payment agreementWidgets.value = agreement console.log({agreement}) agreement.on('agreementStatusChange', agreementStatus => { console.log({agreementStatus}) if (agreementStatus.agreedRequiredTerms) { // 결제 버튼 활성화 } else { // 결제 버튼 비활성화 } }) 위와 같이 결제위젯 연동하였고, 1번째 console.log에서는 agreement객체가 정상적으로 출력되지만, 2번째 console.log에서는 필수약관을 변경해도 출력되지 않습니다.
Kimoon Lee
Kimoon Lee2mo ago
2번째 console.log에서는 필수약관을 변경해도 출력되지 않습니다. 라는게 어떤 말씀인가요? 필수약관을 어떻게 변경하신건가요?
쪼이쪼이
쪼이쪼이OP2mo ago
제가 설명이 부족했습니다.. - 사용자가 필수 약관 동의여부를 변경하였을때 이벤트가 발생 - 이벤트가 발생하면 콜백함수가 호출됨 프로세스로 이해하고 있습니다. 헌데 제가 테스트해보았을 때에는, 동의항목 UI를 변경(체크박스)하여도 콜백함수가 호출되지 않아 문의를 남긴것 입니다.
No description
today.lastday
today.lastday2mo ago
아래 샘플코드로 실행해보세요. // ------ 결제위젯 초기화 ------ const clientKey = ""; //docsKey const tossPayments = TossPayments(clientKey); // 회원 결제 const customerKey = "fGQFp1e4jIDibGIlfHGIg"; const widgets = tossPayments.widgets({ customerKey, }); // 비회원 결제 // const widgets = tossPayments.widgets({ customerKey: TossPayments.ANONYMOUS }); // ------ 주문의 결제 금액 설정 ------ await widgets.setAmount({ currency: "KRW", value: parseInt(priceInput.value), }); await Promise.all([ // ------ 결제 UI 렌더링 ------ widgets.renderPaymentMethods({ selector: "#payment-method", variantKey: "DEFAULT", }), // ------ 이용약관 UI 렌더링 ------ widgets.renderAgreement({ selector: "#agreement", variantKey: "AGREEMENT" }).then(result => { agreementWidget = result; }), ]); agreementWidget.on('agreementStatusChange', agreementStatus => { if (agreementStatus.agreedRequiredTerms) { // 결제 버튼 활성화 alert("약관선택"); } else { // 결제 버튼 비활성화 alert("약관선택"); } });
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
쪼이쪼이
쪼이쪼이OP2mo ago
@tosspayments/tosspayments-sdk v2.3.4버전 사용하고있는데, 해당문제 아직 해결이 안되네요 ... 위에 올려주신 샘플코드도 해보았는데, RenderPaymentWidgets Error: TypeError: widgets.value.renderAgreement(...).then is not a function at renderPaymentWidgets 이런 오류가 발생합니다..! agreement.on('change', agreementStatus => { if (agreementStatus.agreedRequiredTerms) { // 결제 버튼 활성화 alert('약관선택') } else { // 결제 버튼 비활성화 alert('약관선택') } }) 'change'로 넣어야 가능하네요 ㅠㅠ 문서 업데이트가 필요한것인지, 제가 다른버전을 사용하고 있는 것인지 판단이 안되는데 어느것이 맞는걸까요?
Kimoon Lee
Kimoon Lee2mo ago
agreementStatusChange 가 아니라 change 로 해야 동작한다는 말씀이시죠? change 는 v1 SDK 에서 사용하는 방법이고 agreementStatusChange 는 v2 SDK 에서 사용하는 방법입니다. 지금 사용중인 SDK 가 v1 인지, v2 인지 확인부탁드립니다.
쪼이쪼이
쪼이쪼이OP2mo ago
브랜드페이도 사용하고 있는데, 브랜드 페이 : v2 위젯 : v1 사용하고 있었습니다. 안되었던 부분은 v1 사용중이라 그랬던 것 같네요 ㅠㅠ 확인 감사합니다!

Did you find this page helpful?