Merge branch 'master' of bitbucket.org:venbainformationtechnology/golf_backend
This commit is contained in:
commit
3e44568c30
@ -64,7 +64,8 @@ $routes->get('payment_form', 'PaymentController::payment_form');
|
||||
$routes->post('processPayment', 'PaymentController::processPayment');
|
||||
|
||||
|
||||
$routes->match(['get','post'],'/test/(:any)','Test_controller::index/$1');
|
||||
$routes->match(['get','post'],'/test','Test_controller::sendEmail');
|
||||
$routes->match(['get','post'],'/test2','Test_controller::test2');
|
||||
|
||||
|
||||
|
||||
|
||||
@ -650,6 +650,8 @@ class PaymentController extends BaseController
|
||||
public function payment_success( $local_order_id = null)
|
||||
|
||||
{
|
||||
|
||||
|
||||
|
||||
if( $local_order_id != null)
|
||||
|
||||
@ -721,13 +723,6 @@ class PaymentController extends BaseController
|
||||
|
||||
$data['last_4'] = json_decode($data['TransactionData'][0]['transaction'] , true)['payment']['card_details']['card']['last_4'];
|
||||
|
||||
// echo '<pre>';
|
||||
|
||||
// print_r( $data['memberCredits']);
|
||||
|
||||
// echo '</pre>';
|
||||
|
||||
// die();
|
||||
|
||||
echo view('payment',$data);
|
||||
|
||||
@ -795,8 +790,30 @@ class PaymentController extends BaseController
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// $data['TransactionData'] = $this->TransactionModel->where('order_id', $code )->where('member_id', session()->get('logged_user'))->find();
|
||||
// $memberCredits = $this->creditsModel->where('order_id', $code )
|
||||
// ->where('member_id', session()->get('logged_user'))
|
||||
// ->select('package_name')
|
||||
// ->select('cost')
|
||||
// ->selectSum('credit_points', 'credit_points')
|
||||
// ->selectSum('cost', 'costSum')
|
||||
// ->selectCount('package_name', 'pack_count')
|
||||
// ->groupBy('package_name')->findAll();
|
||||
// $Subtotal = 0;
|
||||
// foreach ($memberCredits as $key => $ele) {
|
||||
// $Subtotal = $Subtotal + $ele['costSum'];
|
||||
// }
|
||||
// $data['memberCredits'] =$memberCredits;
|
||||
// $data['order_id'] = $code;
|
||||
// $timestamp = strtotime($data['TransactionData'][0]['created_at']);
|
||||
// $data['formattedDate'] = date('l, F j, Y', $timestamp);
|
||||
// $data['Subtotal'] = $Subtotal;
|
||||
// $data['gst'] = $this->RuleModel->select('value')->where('rule_key', 3 )->get()->getRow()->value;
|
||||
// $data['pst'] = $this->RuleModel->select('value')->where('rule_key', 4 )->get()->getRow()->value;
|
||||
// $data['card_brand'] = json_decode($data['TransactionData'][0]['transaction'] , true)['payment']['card_details']['card']['card_brand'];
|
||||
// $data['last_4'] = json_decode($data['TransactionData'][0]['transaction'] , true)['payment']['card_details']['card']['last_4'];
|
||||
// echo view('success_mail',$data);
|
||||
|
||||
|
||||
|
||||
|
||||
@ -28,6 +28,14 @@ use App\Models\Cart_model;
|
||||
|
||||
use App\Models\Transaction_model;
|
||||
|
||||
use Google_Client;
|
||||
use Google_Service_Gmail;
|
||||
use Google_Service_Gmail_Message;
|
||||
use Google_Service_Gmail_ModifyMessageRequest;
|
||||
use GuzzleHttp\Client as GuzzleClient;
|
||||
use Google_Service_Gmail_MessagePart;
|
||||
use Google_Service_Gmail_MessagePartHeader;
|
||||
use Google_Service_Gmail_MessagePartBody;
|
||||
class Test_controller extends BaseController
|
||||
|
||||
{
|
||||
@ -72,16 +80,225 @@ class Test_controller extends BaseController
|
||||
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
public function test2()
|
||||
{
|
||||
if($this->request->getVar('code')) {
|
||||
try {
|
||||
$capi = new Google_Client();
|
||||
|
||||
// Get the access token
|
||||
$data = $capi->GetAccessToken(CLIENT_ID, CLIENT_REDIRECT_URL, CLIENT_SECRET, $this->request->getVar('code'));
|
||||
|
||||
// Save the access token as a session variable
|
||||
$_SESSION['access_token'] = $data['access_token'];
|
||||
|
||||
// Redirect to the page where user can create event
|
||||
header('Location: home.php');
|
||||
exit();
|
||||
}
|
||||
catch(Exception $e) {
|
||||
echo $e->getMessage();
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function sendEmail()
|
||||
{
|
||||
$credentialsPath = 'credentials.json';
|
||||
$tokensPath = 'token.json';
|
||||
$accessToken = $this->getAccessToken($tokensPath); // Retrieve access token from storage
|
||||
$refreshToken = $this->getRefreshToken($tokensPath); // Retrieve refresh token from storage
|
||||
$recipientEmail = 'gowtham.manavalan.la@gmail.com';
|
||||
$subject = 'Test email';
|
||||
$messageBody = 'This is a test email sent using the Gmail API';
|
||||
|
||||
$client = new Google_Client();
|
||||
$client->setAuthConfig($credentialsPath);
|
||||
|
||||
// Set the access token and refresh token
|
||||
// $client->setAccessToken([
|
||||
// 'access_token' => $accessToken,
|
||||
// 'refresh_token' => $refreshToken,
|
||||
// 'expires_in' => 3600, // Expiration time in seconds (adjust if necessary)
|
||||
// 'created' => time()
|
||||
// ]);
|
||||
|
||||
// if ($client->isAccessTokenExpired()) {
|
||||
if (false) {
|
||||
// Refresh the access token if expired
|
||||
$newAccessToken = $this->refreshAccessToken($client, $refreshToken); // Implement your own method to refresh the token
|
||||
$client->setAccessToken([
|
||||
'access_token' => $newAccessToken,
|
||||
'refresh_token' => $refreshToken,
|
||||
'expires_in' => 3600,
|
||||
'created' => time()
|
||||
]);
|
||||
|
||||
// Update the access token in storage if necessary
|
||||
$this->updateAccessToken($newAccessToken, $tokensPath); // Implement your own method to update the token
|
||||
} else {
|
||||
// Request authorization from the user.
|
||||
$authUrl = $client->createAuthUrl();
|
||||
echo "Open the following link in your browser:\n%s\n", $authUrl;
|
||||
print 'Enter verification code: ';
|
||||
$authCode = trim(fgets(STDIN));
|
||||
|
||||
// Exchange authorization code for an access token.
|
||||
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
|
||||
$client->setAccessToken($accessToken);
|
||||
|
||||
// Check to see if there was an error.
|
||||
if (array_key_exists('error', $accessToken)) {
|
||||
throw new Exception(join(', ', $accessToken));
|
||||
}
|
||||
}
|
||||
// Save the token to a file.
|
||||
if (!file_exists(dirname($tokenPath))) {
|
||||
mkdir(dirname($tokensPath), 0700, true);
|
||||
}
|
||||
file_put_contents($tokensPath, json_encode($this->client->getAccessToken()));
|
||||
$service = new Google_Service_Gmail($client);
|
||||
|
||||
$message = $this->createMessage('me', $recipientEmail, $subject, $messageBody);
|
||||
|
||||
$service->users_messages->send('me', $message);
|
||||
|
||||
echo 'Email sent successfully';
|
||||
}
|
||||
|
||||
private function getAccessToken($tokensPath)
|
||||
{
|
||||
$tokens = $this->loadTokens($tokensPath);
|
||||
return $tokens['access_token'] ?? null;
|
||||
}
|
||||
|
||||
private function getRefreshToken($tokensPath)
|
||||
{
|
||||
$tokens = $this->loadTokens($tokensPath);
|
||||
return $tokens['refresh_token'] ?? null;
|
||||
}
|
||||
|
||||
private function refreshAccessToken($client, $refreshToken)
|
||||
{
|
||||
$client->fetchAccessTokenWithRefreshToken($refreshToken);
|
||||
return $client->getAccessToken()['access_token'];
|
||||
}
|
||||
|
||||
private function updateAccessToken($accessToken, $tokensPath)
|
||||
{
|
||||
$tokens = $this->loadTokens($tokensPath);
|
||||
$tokens['access_token'] = $accessToken;
|
||||
$this->saveTokens($tokens, $tokensPath);
|
||||
}
|
||||
|
||||
private function loadTokens($tokensPath)
|
||||
{
|
||||
if (file_exists($tokensPath)) {
|
||||
$tokensData = file_get_contents($tokensPath);
|
||||
return json_decode($tokensData, true);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
private function saveTokens($tokens, $tokensPath)
|
||||
{
|
||||
$tokensData = json_encode($tokens);
|
||||
file_put_contents($tokensPath, $tokensData);
|
||||
}
|
||||
|
||||
private function createMessage($sender, $recipient, $subject, $messageBody)
|
||||
{
|
||||
$message = new Google_Service_Gmail_Message();
|
||||
$email = new Google_Service_Gmail_MessagePartHeader();
|
||||
$email->setName('To');
|
||||
$email->setValue($recipient);
|
||||
$message->setPayload(new Google_Service_Gmail_MessagePart());
|
||||
$message->getPayload()->setHeaders([$email]);
|
||||
|
||||
$body = new Google_Service_Gmail_MessagePartBody();
|
||||
$body->setData(base64_encode($messageBody));
|
||||
$message->getPayload()->setBody($body);
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// public function sendEmail()
|
||||
// {
|
||||
// $credentialsPath = 'credentials.json';
|
||||
// $accessToken = 'your-access-token';
|
||||
// $refreshToken = 'your-refresh-token';
|
||||
// $recipientEmail = 'gowtham.manavalan.la@gmail.com';
|
||||
// $subject = 'Test email';
|
||||
// $messageBody = 'This is a test email sent using the Gmail API';
|
||||
|
||||
// $client = new Google_Client();
|
||||
// $client->setAuthConfig($credentialsPath);
|
||||
|
||||
// // Set the access token and refresh token
|
||||
// $client->setAccessToken([
|
||||
// 'access_token' => $accessToken,
|
||||
// 'refresh_token' => $refreshToken,
|
||||
// 'expires_in' => 3600, // Expiration time in seconds (adjust if necessary)
|
||||
// 'created' => time()
|
||||
// ]);
|
||||
|
||||
// if ($client->isAccessTokenExpired()) {
|
||||
// // Refresh the access token if expired
|
||||
// $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
|
||||
// }
|
||||
|
||||
// $service = new Google_Service_Gmail($client);
|
||||
|
||||
// $message = $this->createMessage('me', $recipientEmail, $subject, $messageBody);
|
||||
|
||||
// $service->users_messages->send('me', $message);
|
||||
|
||||
// echo 'Email sent successfully';
|
||||
// }
|
||||
|
||||
// private function createMessage($sender, $recipient, $subject, $messageBody)
|
||||
// {
|
||||
// $message = new Google_Service_Gmail_Message();
|
||||
// $email = new Google_Service_Gmail_MessagePartHeader();
|
||||
// $email->setName('To');
|
||||
// $email->setValue($recipient);
|
||||
// $message->setPayload(new Google_Service_Gmail_MessagePart());
|
||||
// $message->getPayload()->setHeaders([$email]);
|
||||
|
||||
// $body = new Google_Service_Gmail_MessagePartBody();
|
||||
// $body->setData(base64_encode($messageBody));
|
||||
// $message->getPayload()->setBody($body);
|
||||
|
||||
// return $message;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------
|
||||
|
||||
}
|
||||
|
||||
1
app/Controllers/credentials.json
Normal file
1
app/Controllers/credentials.json
Normal file
@ -0,0 +1 @@
|
||||
{"web":{"client_id":"1091575547896-uksojot6eohd8i2mg7dcga9t0rn430ie.apps.googleusercontent.com","project_id":"titanium-genre-389806","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["http://localhost/golf_backend/test2"],"javascript_origins":["http://localhost"]}}
|
||||
6
app/Controllers/token.json
Normal file
6
app/Controllers/token.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"access_token": "your-access-token",
|
||||
"refresh_token": "your-refresh-token",
|
||||
"expires_in": 3600,
|
||||
"created": 1678934567
|
||||
}
|
||||
71
app/Views/failed_mail.php
Normal file
71
app/Views/failed_mail.php
Normal file
@ -0,0 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<title>Payment Failed - Golf Evolution</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="<?= base_url()."/public"; ?>/assets/member_images/favicon.png" sizes="192x192" />
|
||||
<link rel="apple-touch-icon" href="<?= base_url()."/public"; ?>/assets/member_images/favicon.png" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="<?= base_url()."/public"; ?>/assets/member_css/front-style.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
|
||||
<script src="<?= base_url()."/public"; ?>/assets/member_js/ajax.js"></script>
|
||||
</head>
|
||||
<body class="payment">
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-8">
|
||||
<div class="payment-box">
|
||||
<div class="row payment-head alert">
|
||||
<div class="col-lg-12">
|
||||
<div>
|
||||
|
||||
<h1 style="color: red">Payment Failed!</h1>
|
||||
<!-- <p>The order confirmation has been sent to your registered mail id</p> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row aside">
|
||||
<div class="col-lg-12">
|
||||
<div class="aside-content">
|
||||
<div class="trans-id label">Order Id</div>
|
||||
<div class="trans-id"><?= $order_id; ?></div>
|
||||
</div>
|
||||
<div class="aside-content">
|
||||
<div class="trans-date label">Transaction Date</div>
|
||||
<div class="trans-date"><?= $formattedDate; ?></div>
|
||||
</div>
|
||||
<div class="aside-content aside-content-last">
|
||||
<div class="trans-method label">Payment Failed Details</div>
|
||||
<div class="trans-method"><?= $detail; ?> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
135
app/Views/success_mail.php
Normal file
135
app/Views/success_mail.php
Normal file
@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<title>Payment Successful - Golf Evolution</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="<?= base_url()."/public"; ?>/assets/member_images/favicon.png" sizes="192x192" />
|
||||
<link rel="apple-touch-icon" href="<?= base_url()."/public"; ?>/assets/member_images/favicon.png" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="<?= base_url()."/public"; ?>/assets/member_css/front-style.css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
|
||||
<script src="<?= base_url()."/public"; ?>/assets/member_js/ajax.js"></script>
|
||||
</head>
|
||||
<body class="payment">
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-8">
|
||||
<div class="payment-box">
|
||||
<div class="row payment-head">
|
||||
<div class="col-lg-12">
|
||||
<div>
|
||||
<h1 class="sucessful-heading">Payment Successful!</h1>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row aside">
|
||||
<div class="col-lg-12">
|
||||
<div class="row">
|
||||
<div class="aside-content col-lg-4">
|
||||
<div class="trans-id label">Order Id</div>
|
||||
<div class="trans-id"><?= $order_id; ?></div>
|
||||
</div>
|
||||
<div class="aside-content col-lg-4">
|
||||
<div class="trans-date label">Transaction Date</div>
|
||||
<div class="trans-date"><?= $formattedDate; ?></div>
|
||||
</div>
|
||||
<div class="aside-content col-lg-4 aside-content-last">
|
||||
<div class="trans-method label">Payment Method</div>
|
||||
<div class="trans-method"><?= $card_brand; ?> card ending with <?= $last_4; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row order">
|
||||
<div class="col-lg-12">
|
||||
<div class="order-heading">Your Order</div>
|
||||
</div>
|
||||
<?php foreach ($memberCredits as $val) { ?>
|
||||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-5">
|
||||
<div class="product-name"><?php echo $val['package_name']." (".$val['cost']." x ".$val['pack_count'].")"; ?></div>
|
||||
<div class="credits-number"><?php echo $val['credit_points']; ?> Credits</div>
|
||||
<!-- <div class="credit-point">20+4 Credits Extra*</div>
|
||||
<div class="credit-price">1 Credit at $22.90</div> -->
|
||||
</div>
|
||||
<div class="col-lg-3"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 d-flex justify-content-end align-items-start">
|
||||
<div class="order-total"><span class="price-symbol">$</span><?php echo $val['costSum']; ?></div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="total">
|
||||
|
||||
<div class="row total-list">
|
||||
<div class="col-lg-6">
|
||||
<div class="subtotal label">Subtotal</div>
|
||||
</div>
|
||||
<div class="col-lg-6 text-end">
|
||||
<div class="subtotal"><span class="price-symbol">$</span><?= $Subtotal; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row total-list">
|
||||
<div class="col-lg-6">
|
||||
<div class="taxes label">Taxes</div>
|
||||
</div>
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-2 text-end">
|
||||
<div class="taxes pst label">PST (<?= $pst; ?>%)</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-end">
|
||||
<div class="taxes pst"><span class="price-symbol">$</span><?= round($Subtotal * $pst / 100 , 2); ?></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
</div>
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-2 text-end">
|
||||
<div class="taxes gst label">GST (<?= $gst; ?>%)</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-end">
|
||||
<div class="taxes gst"><span class="price-symbol">$</span><?= round($Subtotal * $gst / 100 , 2); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row sub-total-main">
|
||||
<div class="col-lg-6">
|
||||
<div class="order-total label">Total</div>
|
||||
</div>
|
||||
<div class="col-lg-6 text-end">
|
||||
<div class="order-total"><span class="price-symbol">$</span><?= round( ( $Subtotal + (($Subtotal * ($gst + $pst) ) / 100) ) , 2 ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -9,6 +9,7 @@
|
||||
"codeigniter4/framework": "^4.0",
|
||||
"daycry/cronjob": "^2.2",
|
||||
"google/apiclient": "^2.15",
|
||||
"guzzlehttp/guzzle": "^7.7",
|
||||
"ramsey/uuid": "^4.2",
|
||||
"square/square": "18.0.0.20220420"
|
||||
},
|
||||
|
||||
2
composer.lock
generated
2
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "5a8d46ecf78556919bd1e0e57fdfba48",
|
||||
"content-hash": "6e8b2f75e98ca3380942cf3f26410005",
|
||||
"packages": [
|
||||
{
|
||||
"name": "apimatic/jsonmapper",
|
||||
|
||||
1
credentials.json
Normal file
1
credentials.json
Normal file
@ -0,0 +1 @@
|
||||
{"web":{"client_id":"649722930931-nrphm6ifgufi609vhlf3sva9m1etllbe.apps.googleusercontent.com","project_id":"golf-evo-smtp","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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"}}
|
||||
BIN
writable.zip
BIN
writable.zip
Binary file not shown.
Loading…
Reference in New Issue
Block a user