1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-19 16:01:34 +02:00
invoiceninja/app/Listeners/AnalyticsListener.php

61 lines
1.4 KiB
PHP
Raw Normal View History

<?php namespace App\Listeners;
use Utils;
use App\Events\PaymentWasCreated;
/**
* Class AnalyticsListener
*/
class AnalyticsListener
{
/**
* @param PaymentWasCreated $event
*/
public function trackRevenue(PaymentWasCreated $event)
{
if ( ! Utils::isNinja() || ! env('ANALYTICS_KEY')) {
return;
}
2016-06-08 15:06:48 +02:00
$payment = $event->payment;
$invoice = $payment->invoice;
$account = $payment->account;
2016-06-08 15:06:48 +02:00
if ($account->account_key != NINJA_ACCOUNT_KEY) {
return;
}
2016-06-08 15:06:48 +02:00
$analyticsId = env('ANALYTICS_KEY');
$client = $payment->client;
$amount = $payment->amount;
2016-06-08 15:06:48 +02:00
$base = "v=1&tid={$analyticsId}&cid={$client->public_id}&cu=USD&ti={$invoice->invoice_number}";
$url = $base . "&t=transaction&ta=ninja&tr={$amount}";
$this->sendAnalytics($url);
2016-06-08 15:06:48 +02:00
$url = $base . "&t=item&in=plan&ip={$amount}&iq=1";
$this->sendAnalytics($url);
}
2016-06-08 15:06:48 +02:00
/**
* @param $data
*/
private function sendAnalytics($data)
{
$data = json_encode($data);
$curl = curl_init();
$opts = [
CURLOPT_URL => GOOGLE_ANALYITCS_URL,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => 'POST',
CURLOPT_POSTFIELDS => $data,
];
curl_setopt_array($curl, $opts);
2016-07-27 15:31:52 +02:00
curl_exec($curl);
curl_close($curl);
}
2016-07-27 15:31:52 +02:00
}