2026, 새로운 도약을 시작합니다.

[문의]결제완료시 http 500 - internal server error 문제.

현재 테스트 결제 모드 이며,

신용카드 결제 및 무통장 결제 만 사용체크 하였습니다.

2개 결제 방법 모두 배송데이터 입력 후 결제완료 버튼(신용카드는 신용카드 인증 패스 후 )을 누르면

http 500 - internal server error 페이지가 표시 되며

주문이 들어가고 있지 않습니다.

이메일로는

주문 상품의 상태를 변경하는 중 DB 오류가 발생했습니다.

오류내용

update wp_gc_shop_cart set od_id = 2016101810240574, ct_status = 'order' where od_id = 2016101810240539 and ct_select = '1'

error file : /index.php

같은 메시지가 날라오고 있습니다.

실제 DB에 접속해서 위 쿼리를 실행하면 데이터는 잘 수정 됩니다.

무엇을 확인하고 수정해야 하는지 알려주십시오.

감사합니다. 

답변 5개

디버깅으로 찾아 보니 에러메시지 가 이렇게 나오는 부분이 있습니다.

------------------------------------------------------------------------------------

Fatal error: Uncaught exception 'Exception' with message '<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>KCP를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.' in /www_root/wp-content/plugins/gnucommerce/shop/order_update_common.php:753 Stack trace: #0 /www_root/wp-content/plugins/gnucommerce/shop/orderformupdate.php(13): include_once() #1 /www_root/wp-content/plugins/gnucommerce/lib/shortcode/order.php(23): include_once('/www_root/wp-co...') #2 [internal function]: GC_shortcode_Order::output('') #3 /www_root/wp-content/plugins/gnucommerce/lib/gc_shortcode.class.php(44): call_user_func(Array, '') #4 /www_root/wp-content/plugins/gnucommerce/lib/gc_shortcode.class.php(77): GC_Shortcodes::shortcode_wrapper(Array, '') #5 [internal function]: GC_Shortcodes::order('', '', 'gnucommerce_ord...') #6 /www_root/wp-includes/shortcodes.php(326): call_user_func('GC_Shortcodes::...', '', '', 'gnucommerce_ord...' in /www_root/wp-content/plugins/gnucommerce/shop/order_update_common.php on line 753


=> 소스

         throw new Exception('<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>'.strtoupper($config['de_pg_service']).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');


=> 위부분을 주석 처리하니 일단 오류는 없이 지나가지만

주문 데이터가 DB에 저장 되지 않고 있습니다.


=> 주문창의 od_id 와 cart 테이블의 od_id 가 달라지는 것 같습니다.

a05d834a9ceb504dedf17716675086e9_1477119385_1665.jpg
a05d834a9ceb504dedf17716675086e9_1477119435_0026.jpg

왜 이것이 달라지는 것일까요?

 

 


---------------------------------------------------------------------------

이 부분에서 문제가 발생하는 것 같은대 이것은 어디를 손 봐야 할 까요?

추가로 CASE 문 안에..

// 사용자 결제 실패 했을때 hook
    do_action('gc_failed_user_pay', $order_id, $uid, $order_metas, $od_pg );

    wp_die('<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>'.strtoupper($config['de_pg_service']).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.'); 

여기에서 500 인터널 서버 에러가 발생을 했더군요.

원인이 무엇인지는 모르겠습니다.

어떻게 해야 할 지 알려주십시오.

PHP Version 5.6.9 입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

이건 ftp로 직접 들어가봐야 확인할수 있는 문제입니다.

해당 ftp 접속정보와 워드프레스 admin 정보를 쪽지로 알려주시면 확인해 보겠습니다.
에러내용은

아래와 같으며,

WordPress database error When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables


트랜잭션을 사용할때 mysql 설정이 ENFORCE_GTID_CONSISTENCY = 1 로 되어 있으면,
innoDB가 아닌 테이블을 update 할때 에러가 일어나네요. ( 이건 저두 몰랐습니다. )

그누커머스의 경우 cart 테이블은 myisam 이며, 주문 테이블은 innoDB 를 쓰고 있습니다.


그래서 cart 테이블을 innoDB 로 바꿔놓았습니다.

앞으로 배포판에서도 cart 테이블은 innoDB 로 변경하도록 하겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

mysql sql-mode 하고 관련이 있지 않을까 추측이 드네요...

http://bizadmin.tistory.com/entry/Mysql-NOT-NULL%EC%97%90-%EA%B0%92%EC%9D%84-%EB%84%A3%EC%A7%80-%EC%95%8A%EC%95%84%EB%8F%84-%EC%97%90%EB%9F%AC%EA%B0%80-%EC%95%88%EB%82%9C%EB%8B%A4 

저는 strict mode 로도 테스트해 보았지만, 이상이 없었습니다.

혹시 모르니 1.3.7 이하 버젼이면 업데이트 해 주세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

500에러는 php코드상의 에러입니다.

페이지 자체를 처음부터 한줄씩 체크하며 봐야하겠네여

디비쿼리에서 문제 발생인거같기도하네여 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

직접 디버깅 해보지 않는한 찾기 힘든 문제 같아보입니다....

이메일 내용으로는 부족합니다.

쿼리는 문제 없어 보이지만 직접 쿼리도 실행해보시고 쿼리에서 오류 내용이 나오면 그걸 보여주시거나.

결제 flow 를 쿼리 실행 직접 하나씩 테스트 해보셔야 할듯 합니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고