?
| Current Path : /home/webyoo/www/backup/allback/docteur-site/cv/sym/a/leumi/site/ |
| Current File : /home/webyoo/www/backup/allback/docteur-site/cv/sym/a/leumi/site/agent-cancel-sub.php |
<?php
include "start.php";
include "verif_session.php";
// Annule l'abonnement PayPal du מתווך connecté, puis désactive sa vitrine.
// Répond "ok" en cas de succès.
// ---- CONFIG PayPal (mêmes identifiants Live que le webhook) ----
$MODE = 'live';
$CLIENT_ID = 'BAAzaApYYAx5QNj4Kb_HeB3gZARKntyYL97XCpDvnb66rF7-2obBll2pBfeuS8HhtEIn4cUt03qskR-4f8';
$SECRET = 'EAGmK0PQb7XHP-dxCBgMsCt2qN-qqVmqKv-ZYyRGmz4IKW-UaFRM5SBCZNZ2WRTaAXJdh_lcv-R6jPaR';
$BASE = ($MODE === 'live') ? 'https://api-m.paypal.com' : 'https://api-m.sandbox.paypal.com';
// ----------------------------------------------------------------
$userId = (int)$_SESSION['user']['id'];
$row = mysqli_fetch_assoc(mysqli_query($link, "SELECT fk_type, sub_payer_id FROM rent_users WHERE id = ".$userId));
if (!$row || intval($row['fk_type']) !== 3) {
echo "פעולה זו מיועדת למתווכים בלבד";
exit;
}
$subId = isset($row['sub_payer_id']) ? trim($row['sub_payer_id']) : '';
// Pas d'abonnement PayPal (ex. période d'essai) → on désactive simplement en local
if ($subId === '') {
mysqli_query($link, "UPDATE rent_users SET sub_status='expired', sub_until=NULL WHERE id=".$userId);
echo "ok";
exit;
}
// 1) Jeton d'accès
$ch = curl_init("$BASE/v1/oauth2/token");
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_USERPWD => $CLIENT_ID . ':' . $SECRET,
CURLOPT_HTTPHEADER => array('Accept: application/json'),
CURLOPT_POSTFIELDS => 'grant_type=client_credentials'
));
$tok = json_decode(curl_exec($ch), true);
curl_close($ch);
$access = isset($tok['access_token']) ? $tok['access_token'] : '';
if ($access === '') {
echo "שגיאה בהתחברות לפייפל";
exit;
}
// 2) Annulation de l'abonnement
$ch = curl_init("$BASE/v1/billing/subscriptions/" . rawurlencode($subId) . "/cancel");
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => array('Content-Type: application/json', 'Authorization: Bearer ' . $access),
CURLOPT_POSTFIELDS => '{"reason":"Cancelled by the broker from Ashkara"}'
));
$resp = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// 204 = annulé avec succès. 422 = déjà annulé/inactif → on considère OK côté local.
if ($code == 204 || $code == 200 || $code == 422) {
mysqli_query($link, "UPDATE rent_users SET sub_status='expired' WHERE id=".$userId);
echo "ok";
} else {
echo "שגיאה בביטול המנוי (" . $code . ")";
}