XE

procFilter() 함수 교체하는 방법...

by 이온디 posted Aug 21, 2024
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

Rhymix 2.1

1. formdata.html (상품상세에서 주문하기 클릭시 열리는 페이지. 이 페이지에서 동작하는 폼버튼은 주문검토과정임)

https://github.com/bjrambo/nurigo/blob/master/modules/epay/plugins/manualorder/tpl/formdata.html

결제대행 버튼을 클릭하면, manualorder_payment() 함수가 실행됩니다.

2. script.js

https://github.com/bjrambo/nurigo/blob/master/modules/epay/plugins/manualorder/tpl/js/script.js

해당 함수를 보면

procFilter(document.getElementById('fo_manualorder'), submit_manualorder_review);

submit_manualorder_review.xml을 실행합니다.

3. submit_manualorder_review.xml

https://github.com/bjrambo/nurigo/blob/master/modules/epay/plugins/manualorder/tpl/filter/submit_manualorder_review.xml

epay 모듈의 procEpayReviewOrder 함수를 실행하고,

completeMakeReviewOrder를 콜백함수로 받고 있습니다.

해당 함수는 script.js를 살펴보면, 새창으로 뜬 폼을 1초 뒤에 실행합니다.

 

4. start.html (실제 주문하기가 동작되는 폼)

https://github.com/bjrambo/nurigo/blob/master/modules/epay/plugins/manualorder/tpl/start.html

주문완료하기 버튼을 클릭하면, doMakePayment() 함수가 실행됩니다.

5. script.js

2번 스크립트를 참조해보면, submit_manualorder_payment.xml이 실행됩니다.

procFilter(opener.document.getElementById('fo_manualorder'), opener.submit_manualorder_payment);

6. submit_manualorder_payment.xml

https://github.com/bjrambo/nurigo/blob/master/modules/epay/plugins/manualorder/tpl/filter/submit_manualorder_payment.xml

epay 모듈 procEpayDoPayment 함수 실행하고 있습니다.

completeMakePayment를 콜백함수로 받고 있습니다.

이 함수는 script.js를 보면, ret_obj['return_url'] 값이 있으면 해당 url로 넘겨주는 역할을 수행합니다.

이 페이지가 

?mid=basket&act=dispStoreOrderComplete&order_srl=주문번호

이런 식으로 리다이렉트 됩니다...

 

[질문]

여기서 procFilter() 함수를 빼려고 합니다. 문제는 첫번째 submit_manualorder_review.xml 는 값이 정상적으로 넘어옵니다.

console.log(JSON.stringify(ret_obj, null, 2));

이렇게 하면 넘어온 값들을 확인할 수가있는데,

 

원래라면 여기서 새창을 띄워서 procFilter()로 체크해서 콜백함수를 받는건데,

새창없이 그대로 진행하려고 합니다.

 

[formdata.html]

[script]

이렇게 하고 실행을 했는데 completeRevieOrder()은 정상적으로 ret_obj값을 가져와지는데요,

이 안에서 다시 필요한 값만 변경 시키고 바로 submit을 실행을 하면 그게 잘 동작을 하지 않는 거 같습니다..

MutationObserver도 혹시나 해서 동작시켜주고 있습니다만. completeMakePayment까지는 실행을 못하네요.

String data, right truncated: 1406 Data too long for column 'extra_vars' at row 1