포인트가 db에 저장이 안되는 문제 채택완료
안녕하세요.
광고를 포인트로 결제하는 소스인데, 그누보드의 insert_point 함수를 사용해서 결제한 포인트와 결제후 남은 포인트를 각각 g5_point 테이블에 업데이트하고 g5_member 테이블의 mb_point 에 저장하려고 합니다.
그런데 소스가 잘못돼서 그렇겠지만 db 저장이 안됩니다.
며칠째 끙끙거리는데 제 실력으로는 도저히 모르겠어요.
도와주시면 정말 감사하겠습니다.
아래는 서버측 php
<?php
include_once('../../../../common.php');
if ($is_guest) {
alert_close('회원만 이용하실 수 있습니다.');
}
error_reporting(E_ALL);
ini_set('display_errors', 1);
$totalSale = isset($_POST['totalSale']) ? (int) $_POST['totalSale'] : 0;
$remainingPoints = isset($_POST['remainingPoints']) ? (int) $_POST['remainingPoints'] : 0;
$mb_id = $member['mb_id'];
// 포인트 사용 및 결제 처리
try {
// 포인트를 차감하기 위해 insert_point 함수를 사용
$result = insert_point($mb_id, -$totalSale, '광고구입', 'advertisement', $mb_id, '광고구입');
if ($result > 0) {
echo 'success';
} else {
throw new Exception('포인트 차감 실패');
}
} catch (Exception $e) {
echo '오류: ' . $e->getMessage();
}
그리고 다음은 클라이언트측 소스의 자바 스크립트 일부분입니다.
function processPayment() {
<?php if (!$is_member) { ?>
alert('회원만 이용하실 수 있습니다.');
return;
<?php } ?>
const totalSale = parseInt(totalSaleElem.textContent.replace(/[^0-9]/g, ''));
const memberPoint = <?php echo (int)$member['mb_point']; ?>;
if (totalSale > memberPoint) {
const shortage = totalSale - memberPoint;
alert(`${shortage.toLocaleString()} points가 부족합니다. 충전하시겠습니까?`);
} else {
if (confirm(`${totalSale.toLocaleString()} points를 결제하시겠습니까?`)) {
const remainingPoints = memberPoint - totalSale;
// 포인트 결제 처리 및 업데이트
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://hoju-korean.com/theme/eb4_comm_004/skin/board/pricing/process_payment.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
alert(`${totalSale.toLocaleString()} points가 결제되었습니다. 남은 포인트는 ${remainingPoints.toLocaleString()} points입니다. 광고요청페이지로 이동하시겠습니까?`);
window.location.href = 'https://hoju-korean.com/bbs/write.php?bo_table=request_ad';
} else {
alert('결제 처리 중 오류가 발생했습니다: ' + xhr.responseText);
}
}
};
xhr.send(`totalSale=${totalSale}&remainingPoints=${remainingPoints}`);
}
}
}
답변 2개
답변을 작성하려면 로그인이 필요합니다.
로그인