SnsCallBackFormMob.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <!--
  5. *******************************************************************************
  6. * @source : SnsCallBackFormMob.html
  7. * @desc : SNS 콜백 화면 Page
  8. *============================================================================
  9. * STYLE24
  10. * Copyright(C) 2020 TSIT, All rights reserved.
  11. *============================================================================
  12. * VER DATE AUTHOR DESCRIPTION
  13. * === =========== ========== =============================================
  14. * 1.0 2021.02.15 jsshin 최초 작성
  15. *******************************************************************************
  16. -->
  17. <head th:replace="~{mob/common/fragments/HeadMob :: head}"></head>
  18. <th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
  19. <th:block th:replace="~{mob/common/fragments/ScriptsMob :: scripts}"></th:block>
  20. <body>
  21. <script th:inline="javascript">
  22. /*<![CDATA[*/
  23. const resultMap = [[${resultMap}]];
  24. // SNS 로그인 콜백함수(네이버, 카카오, YES24)
  25. var fnSnsSigninCallback = function(userInfo) {
  26. // 1.CI 정보로 사용자가 없어 회원가입 처리 중 이메일, 휴대전화 중복
  27. if (userInfo.custStat === 'DUP_PHONE_CUST') {
  28. mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
  29. return;
  30. }
  31. if (userInfo.custStat === 'DUP_EMAIL_CUST') {
  32. mcxDialog.alert("이미 사용 중인 이메일 입니다.");
  33. return;
  34. }
  35. // 2.SNS 로그인 정보로 탈퇴확인
  36. if (userInfo.custStat === 'SECEDE_CUST') {
  37. mcxDialog.alert("탈퇴 회원 입니다.");
  38. return;
  39. }
  40. // 3.SNS 로그인 정보로 휴면확인
  41. if (userInfo.custStat === 'DORMANT_CUST') {
  42. mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
  43. sureBtnText: "확인",
  44. sureBtnClick: function() {
  45. cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
  46. }
  47. });
  48. return;
  49. }
  50. // 4.휴대전화 정보가 없으면 SNS 가입화면 이동
  51. if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
  52. cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
  53. }
  54. // 5.YES24 첫 로그인 시도 시 정보동의 페이지 이동
  55. if (userInfo.custStat === 'NEED_AGREE_CUST') {
  56. cfnConsentUseInfo(userInfo.custNm);
  57. return;
  58. }
  59. // 6.SNS 정보로 가입 성공시 가입완료 페이지 이동
  60. if (userInfo.custStat === 'NEW_CUST') {
  61. cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
  62. return;
  63. }
  64. // 7.SNS 정보로 가입 실패시 안내 창 알림
  65. if (userInfo.custStat === 'FAIL_CUST') {
  66. mcxDialog.alertC("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.", {
  67. sureBtnText: "확인",
  68. sureBtnClick: function() {
  69. cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);
  70. }
  71. });
  72. return;
  73. }
  74. // 8.CI 정보가 없을때 안내 창 알림
  75. if (userInfo.custStat === 'EMPTY_CI_CUST') {
  76. mcxDialog.alertC("연계정보(CI) 값이 없습니다.<br> 고객센터에 문의 하시기 바랍니다.", {
  77. sureBtnText: "확인",
  78. sureBtnClick: function() {
  79. cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);
  80. }
  81. });
  82. return;
  83. }
  84. // 9.SNS 로그인 연동 성공 및 기존 SNS 연동된 회원 로그인 시도
  85. if (userInfo.custStat === 'SUCC_CUST') {
  86. let params = {};
  87. params.snsType = userInfo.snsType;
  88. params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
  89. $.post(_frontUrl + '/login'
  90. , $.param(params)
  91. ,fnReloadAfterLogin
  92. , "json");
  93. }
  94. };
  95. // 로그인 후 처리
  96. var fnReloadAfterLogin = function(result) {
  97. if (result.status === 'OK') {
  98. if (_isApp === 'true') {
  99. if (gagajf.isNull(result.appAgreeDt)) {
  100. fnAppPushAgreeUpdate('Y');
  101. }
  102. document.location.href = "idsend://?id=" + result.custNo + "^link=" + result.returnUrl;
  103. } else {
  104. document.location.href = result.returnUrl;
  105. }
  106. } else {
  107. fnFailLoginProcess(result);
  108. }
  109. };
  110. // 로그인 실패 후 과정
  111. var fnFailLoginProcess = function (result) {
  112. // 탈퇴회원
  113. if (result.status === 'SECEDE_CUST') {
  114. mcxDialog.alert("탈퇴 회원 입니다.");
  115. return;
  116. }
  117. // 휴면회원
  118. if (result.status === 'DORMANT_CUST') {
  119. mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
  120. sureBtnText: "확인",
  121. sureBtnClick: function() {
  122. cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
  123. }
  124. });
  125. return;
  126. }
  127. // CI(본인인증)정보 없는 회원
  128. if (result.status === 'CI_EMPTY') {
  129. // 본인이증 필요한 회원
  130. mcxDialog.alertC("본인인증 후 다시 로그인 하시기 바랍니다.", {
  131. sureBtnText: "확인",
  132. sureBtnClick: function() {
  133. cfnGoToPage(_PAGE_CUSTOMER_CERTIFICATION);
  134. }
  135. });
  136. return;
  137. }
  138. return; // 정상적으로 로그인 되지 않았으므로 return
  139. }
  140. // 앱푸시동의 데이터 처리
  141. var fnAppPushAgreeUpdate = function (appAgreeYn) {
  142. let params = {}
  143. params.appAgreeYn = appAgreeYn;
  144. let jsonData = JSON.stringify(params);
  145. gagajf.ajaxJsonSubmit('/app/appagree/update', jsonData);
  146. }
  147. $(document).ready(function() {
  148. if (gagajf.isNull(resultMap.snsId) && gagajf.isNull(resultMap.snsType)){
  149. mcxDialog.alertC("인증에 실패하였습니다.<br> 로그인 정보를 확인해주시기 바랍니다.", {
  150. sureBtnText: "확인",
  151. sureBtnClick: function() {
  152. cfnGoToPage(_PAGE_LOGIN);
  153. }
  154. });
  155. } else {
  156. fnSnsSigninCallback(resultMap);
  157. }
  158. });
  159. /*]]>*/
  160. </script>
  161. </body>
  162. </html>