Files
assetmgt/api/v2/get/payment.php

89 lines
2.7 KiB
PHP

<?php
defined($security_key) or exit;
//------------------------------------------
// Payment Status Retrieval
//------------------------------------------
// This endpoint retrieves payment details for verification
//Connect to DB
$pdo = dbConnect($dbname);
//NEW ARRAY
$criterias = [];
//Check for $_GET variables
if(isset($get_content) && $get_content!=''){
$requests = explode("&", $get_content);
foreach ($requests as $y){
$v = explode("=", $y);
$criterias[$v[0]] = $v[1];
}
}
// Validate payment_id
if (empty($criterias['payment_id'])) {
http_response_code(400);
echo json_encode(['error' => 'Missing required parameter: payment_id'], JSON_UNESCAPED_UNICODE);
exit;
}
$payment_id = $criterias['payment_id'];
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
// STEP 1: Fetch transaction
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
$sql = 'SELECT * FROM transactions WHERE txn_id = ?';
$stmt = $pdo->prepare($sql);
$stmt->execute([$payment_id]);
$transaction = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$transaction) {
http_response_code(404);
echo json_encode(['error' => 'Payment not found'], JSON_UNESCAPED_UNICODE);
exit;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
// STEP 2: Fetch transaction item
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
$sql = 'SELECT * FROM transactions_items WHERE txn_id = ? LIMIT 1';
$stmt = $pdo->prepare($sql);
$stmt->execute([$transaction['id']]);
$item = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$item) {
http_response_code(404);
echo json_encode(['error' => 'Payment item not found'], JSON_UNESCAPED_UNICODE);
exit;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
// STEP 3: Parse item_options JSON
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
$item_options = [];
if (!empty($item['item_options'])) {
$item_options = json_decode($item['item_options'], true);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
// STEP 4: Return payment details
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
$messages = json_encode([
'payment_id' => $transaction['txn_id'],
'payment_status' => $transaction['payment_status'],
'payment_amount' => $transaction['payment_amount'],
'currency' => 'EUR', // Default currency
'serial_number' => $item_options['serial_number'] ?? null,
'equipment_id' => $item_options['equipment_id'] ?? null,
'hw_version' => $item_options['hw_version'] ?? null,
'version_id' => $item['item_id'],
'payer_email' => $transaction['payer_email'],
'customer_name' => trim(($transaction['first_name'] ?? '') . ' ' . ($transaction['last_name'] ?? '')),
'created' => $transaction['created']
], JSON_UNESCAPED_UNICODE);
echo $messages;
?>