get('merchants', []); // Backfill: if pending_onboarding has connected entries with merchant_id, ensure they exist in merchants.json $pending = $storage->get('pending_onboarding', []); $changed = false; foreach ($pending as $trackId => $entry) { if (!is_array($entry)) continue; $schoolName = $entry['school'] ?? null; $mid = $entry['merchant_id'] ?? null; $status = $entry['status'] ?? null; if ($schoolName && $mid && strtolower((string)$status) === 'connected') { if (!isset($merchants[$schoolName]) || empty($merchants[$schoolName]['merchant_id'])) { $merchants[$schoolName] = [ 'merchant_id' => $mid, 'tracking_id' => $trackId, 'connected_at' => $entry['connected_at'] ?? time(), ]; $changed = true; } } } if ($changed) { $storage->set('merchants', $merchants); } ?>
This uses PayPal Partner Referrals to onboard merchants and store their merchantId for routing payments.
After connecting, you'll be redirected back here.
Sync completed. Updated = (int)$_GET['sync']; ?> record(s).
â Onboarding completed and merchant saved.
â ī¸ Onboarding Incomplete: The merchant started the PayPal signup process but did not complete it. Please finish the entire PayPal business account setup to get your merchant ID. You can try connecting again.
âšī¸ Onboarding Pending: Your merchant ID is not available yet. This might take a few moments after completing PayPal signup. Try clicking "Sync Now" in a minute or refresh this page.
Payment captured successfully. Order = htmlspecialchars($_GET['order'] ?? '') ?> (status: = htmlspecialchars($_GET['status'] ?? 'CAPTURED') ?>)
No schools connected yet.
| School | Merchant ID | Actions |
|---|---|---|
| = htmlspecialchars($school) ?> | = htmlspecialchars($info['merchant_id'] ?? 'n/a') ?> |