KG이니시스 상점관리자에서 먼저 취소한 INIpay PRO 주문의 전체취소 허용
- 전체취소 전에 KG 거래상태를 조회해 이미 취소된 거래이면 주문 취소만 진행 - 조회 결과와 처리 사유를 결제 현황 이력에 기록 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
bc07b8383e
commit
cbd70fbe18
@@ -50,35 +50,54 @@ if (in_array($_POST['ct_status'], $status_cancel)) {
|
||||
where ip_oid = '".sql_escape_string($pre_od['od_id'])."'
|
||||
and ip_tid = '".sql_escape_string($pre_od['od_tno'])."' ", false);
|
||||
if (!empty($pro_summary['ip_id'])) {
|
||||
if (!isset($_POST['pg_cancel']) || (int) $_POST['pg_cancel'] !== 1)
|
||||
alert('INIpay PRO 주문은 PG 승인취소를 함께 처리해야 전체취소할 수 있습니다. PG 승인취소를 선택한 후 다시 처리해 주십시오.');
|
||||
|
||||
$inicis_pro_order_lock = inicis_pro_lock($pre_od['od_id']);
|
||||
if ($inicis_pro_order_lock === '')
|
||||
alert('동일 주문의 결제 또는 통보 처리가 진행 중입니다. 잠시 후 다시 취소해 주십시오.');
|
||||
|
||||
$pro_environment = !empty($pro_summary['ip_environment']) ? $pro_summary['ip_environment'] : inicis_pro_environment();
|
||||
if ($pro_summary['ip_mid'] !== inicis_pro_get_mid(!empty($pro_summary['ip_pay_type']) ? $pro_summary['ip_pay_type'] : null) || $pro_environment !== inicis_pro_environment())
|
||||
alert('거래 당시 MID 또는 결제환경과 현재 설정이 달라 PG 취소를 실행할 수 없습니다. KG이니시스 상점관리자에서 원거래를 확인해 주십시오.');
|
||||
// KG이니시스 상점관리자에서 이미 취소한 거래이면 PG 취소 없이 주문 취소만 진행한다.
|
||||
$pre_inquiry = inicis_pro_inquiry($pre_od['od_tno'], $pre_od['od_id'], $pro_summary);
|
||||
$pre_inquiry_data = isset($pre_inquiry['data']) && is_array($pre_inquiry['data']) ? $pre_inquiry['data'] : array();
|
||||
$pre_pg_status = isset($pre_inquiry_data['status']) ? strtoupper(preg_replace('/[^A-Za-z0-9_]/', '', (string) $pre_inquiry_data['status'])) : '';
|
||||
|
||||
include_once(G5_SHOP_PATH.'/settle_inicis.inc.php');
|
||||
$pre_cancel_args = array(
|
||||
'paymethod' => get_type_inicis_paymethod($pre_od['od_settle_case']),
|
||||
'tid' => $pre_od['od_tno'],
|
||||
'mid' => $pro_summary['ip_mid'],
|
||||
'audit_oid' => $pre_od['od_id'],
|
||||
'audit_source' => 'admin',
|
||||
'msg' => '쇼핑몰 운영자 승인 취소',
|
||||
'url' => $pro_environment === 'test' ? 'https://stginiapi.inicis.com/api/v1/refund' : 'https://iniapi.inicis.com/api/v1/refund'
|
||||
);
|
||||
$pre_cancel_response = inicis_tid_cancel($pre_cancel_args);
|
||||
$pre_cancel_result = json_decode($pre_cancel_response, true);
|
||||
if (!isset($pre_cancel_result['resultCode']) || $pre_cancel_result['resultCode'] !== '00') {
|
||||
$pre_cancel_code = !empty($pre_cancel_result['resultCode']) ? $pre_cancel_result['resultCode'] : 'COMMUNICATION_FAILED';
|
||||
$pre_cancel_message = !empty($pre_cancel_result['resultMsg']) ? $pre_cancel_result['resultMsg'] : 'KG이니시스 취소 응답을 확인하지 못했습니다.';
|
||||
alert($pre_cancel_message.' 코드 : '.$pre_cancel_code);
|
||||
if (!empty($pre_inquiry['success']) && in_array($pre_pg_status, array('1', 'C', 'CANCEL', 'DEPOSIT_CANCELED', 'REFUND_COMPLETED'))) {
|
||||
inicis_pro_save_inquiry($pre_od['od_id'], $pre_inquiry, 'admin');
|
||||
inicis_pro_audit_write($pre_od['od_id'], 'cancel', 'canceled', array(
|
||||
'tid' => $pre_od['od_tno'],
|
||||
'mid' => $pro_summary['ip_mid'],
|
||||
'amount' => isset($pro_summary['ip_amount']) ? (int) $pro_summary['ip_amount'] : 0,
|
||||
'pay_type' => isset($pro_summary['ip_pay_type']) ? $pro_summary['ip_pay_type'] : '',
|
||||
'source' => 'admin',
|
||||
'code' => $pre_pg_status,
|
||||
'message' => 'KG이니시스에서 이미 취소된 거래로 확인되어 주문 취소만 진행합니다.'
|
||||
));
|
||||
$inicis_pro_cancel_preprocessed = true;
|
||||
} else {
|
||||
if (!isset($_POST['pg_cancel']) || (int) $_POST['pg_cancel'] !== 1)
|
||||
alert('INIpay PRO 주문은 PG 승인취소를 함께 처리해야 전체취소할 수 있습니다. PG 승인취소를 선택한 후 다시 처리해 주십시오.');
|
||||
|
||||
$pro_environment = !empty($pro_summary['ip_environment']) ? $pro_summary['ip_environment'] : inicis_pro_environment();
|
||||
if ($pro_summary['ip_mid'] !== inicis_pro_get_mid(!empty($pro_summary['ip_pay_type']) ? $pro_summary['ip_pay_type'] : null) || $pro_environment !== inicis_pro_environment())
|
||||
alert('거래 당시 MID 또는 결제환경과 현재 설정이 달라 PG 취소를 실행할 수 없습니다. KG이니시스 상점관리자에서 원거래를 확인해 주십시오.');
|
||||
|
||||
include_once(G5_SHOP_PATH.'/settle_inicis.inc.php');
|
||||
$pre_cancel_args = array(
|
||||
'paymethod' => get_type_inicis_paymethod($pre_od['od_settle_case']),
|
||||
'tid' => $pre_od['od_tno'],
|
||||
'mid' => $pro_summary['ip_mid'],
|
||||
'audit_oid' => $pre_od['od_id'],
|
||||
'audit_source' => 'admin',
|
||||
'msg' => '쇼핑몰 운영자 승인 취소',
|
||||
'url' => $pro_environment === 'test' ? 'https://stginiapi.inicis.com/api/v1/refund' : 'https://iniapi.inicis.com/api/v1/refund'
|
||||
);
|
||||
$pre_cancel_response = inicis_tid_cancel($pre_cancel_args);
|
||||
$pre_cancel_result = json_decode($pre_cancel_response, true);
|
||||
if (!isset($pre_cancel_result['resultCode']) || $pre_cancel_result['resultCode'] !== '00') {
|
||||
$pre_cancel_code = !empty($pre_cancel_result['resultCode']) ? $pre_cancel_result['resultCode'] : 'COMMUNICATION_FAILED';
|
||||
$pre_cancel_message = !empty($pre_cancel_result['resultMsg']) ? $pre_cancel_result['resultMsg'] : 'KG이니시스 취소 응답을 확인하지 못했습니다.';
|
||||
alert($pre_cancel_message.' 코드 : '.$pre_cancel_code);
|
||||
}
|
||||
$inicis_pro_cancel_preprocessed = true;
|
||||
}
|
||||
$inicis_pro_cancel_preprocessed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user