fbpx

Example code

Example code

The code below is an example that retrieves the transactions for the current month of the publisher account.

Please also check out these code samples on Github:

Example PHP code – Getting your transactions

Please note, you will need to setup your own oAuth handshake. This example assumes you have a function that provides the tokens and refreshes them when expired.

For examples of token refresh and expiry checkout our examples above

  1. $token = getOAuthToken(); // Returns a JWT token that’s not expired
  2. $publishers = performCall($token, ‘/publishers’);
  3. foreach ($publishers as $publisher)
  4. {
  5.     $start = date(‘Y-m-01’);
  6.     $end = date(‘Y-m-d’);
  7.     echo ‘Fetching transactions for: ‘ .  $publisher->name . ‘ (‘ .  $publisher->id .  ‘) – ‘ .  $start . ‘ – ‘  . $end, PHP_EOL;
  8.     $collection = [];
  9.     $page = 1;
  10.     $perPage = 1000;
  11.     $pages = 1;
  12.     while ($page <= $pages)
  13.     {
  14.         echo ‘fetching page: ‘ . $page . ‘ out of ‘ . ($page === 1 ? ‘?’ : $pages), PHP_EOL;
  15.         $responseHeaders = [];
  16.         $transactions = performCall(
  17.             $token,
  18.             ‘/publisher/’ . $publisher->id . ‘/transactions’,
  19.             [
  20.                 ‘start’ => $start,
  21.                 ‘end’ => $end,
  22.                 ‘page’ => $page,
  23.                 ‘per_page’ => $perPage,
  24.             ],
  25.             $responseHeaders
  26.         );
  27.         if ($page === 1)
  28.         {
  29.             $pages = ceil($responseHeaders[‘X-Total-Count’] / $perPage);
  30.         }
  31.         $collection = array_merge($collection, $transactions);
  32.     }
  33.     var_dump($collection);
  34.     exit;
  35. }
  36. function performCall($token, $relativeUrl, $data = [], &$responseHeaders = [])
  37. {
  38.     $requestUrl = ‘https://services.daisycon.com’ . $relativeUrl;
  39.     $curlHandler = curl_init();
  40.     $requestHeaders = [
  41.         “Authorization: Bearer {$token},
  42.         ‘Content-Type: application/json’,
  43.     ];
  44.     $paramSeparator = false === stripos($requestUrl, ‘?’) ? ‘?’ : ‘&’;
  45.     $requestUrl .= $paramSeparator . http_build_query($data);
  46.     curl_setopt($curlHandler, CURLOPT_URL, $requestUrl);
  47.     curl_setopt($curlHandler, CURLOPT_HTTPHEADER, $requestHeaders);
  48.     curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
  49.     curl_setopt(
  50.         $curlHandler,
  51.         CURLOPT_HEADERFUNCTION,
  52.         function ($curlHandler, $responseHeader) use (&$responseHeaders) {
  53.             @list($headerName, $headerValue) = explode(‘: ‘, $responseHeader);
  54.             if (true === str_starts_with($headerName, ‘X-‘))
  55.             {
  56.                 $responseHeaders[$headerName] = trim($headerValue);
  57.             }
  58.             return strlen($responseHeader);
  59.         }
  60.     );
  61.     $response = curl_exec($curlHandler);
  62.     $returnResponse = @json_decode($response);
  63.     curl_close($curlHandler);
  64.     return $returnResponse;
  65. }