getBaseApi() . "\n"; echo "Partner Merchant ID (Payer ID): " . $config['partner_merchant_id'] . "\n\n"; // Try a simple pull of merchant-integrations $path = '/v1/customer/partners/' . urlencode($config['partner_merchant_id']) . '/merchant-integrations?page_size=20'; $resp = $client->api('GET', $path); echo "GET $path => status: " . $resp['status'] . "\n"; if ($resp['status'] >= 200 && $resp['status'] < 300) { $list = $resp['body']['merchant_integrations'] ?? []; echo "Integrations returned: " . count($list) . "\n"; foreach ($list as $i => $mi) { $mid = $mi['merchant_id'] ?? 'n/a'; $tid = $mi['tracking_id'] ?? 'n/a'; $rid = $mi['partner_referral_id'] ?? ($mi['referral_id'] ?? 'n/a'); $onb = $mi['onboarding_status'] ?? null; echo sprintf("%02d. merchant_id=%s tracking_id=%s referral_id=%s status=%s\n", $i+1, $mid, $tid, $rid, is_array($onb)? json_encode($onb): (string)$onb); } } else { echo json_encode($resp['body'], JSON_PRETTY_PRINT) . "\n"; } echo "\nRecent sync_debug entries:\n"; $diag = $storage->get('sync_debug', []); $tail = array_slice($diag, -5); foreach ($tail as $row) { echo json_encode($row, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) . "\n"; } echo "\nPending entries:\n"; $pending = $storage->get('pending_onboarding', []); foreach ($pending as $track => $row) { echo $track . ' => ' . json_encode($row, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) . "\n"; } } catch (Throwable $e) { http_response_code(500); echo 'Diagnostics error: ' . $e->getMessage(); }