src/Controller/AppController.php line 148

Open in your IDE?
  1. <?php
  2. /*
  3. File: AppController.php 
  4. Author: Ivan Kähm
  5. Date: 15.01.2020 13:45
  6. Project: friendscore.web.a22.localhost 
  7. */
  8. namespace App\Controller;
  9. use Pimcore\Controller\FrontendController;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Osiset\BasicShopifyAPI;
  14. class AppController extends FrontendController
  15. {
  16.     /**
  17.      * @Template()
  18.      * @param Request $request
  19.      */
  20.     public function pageAction(Request $request)
  21.     {
  22.     }
  23.     public function shopifyAction(Request $request)
  24.     {
  25.         $shop $request->get("shop");
  26.         if ($shop) {
  27.             // install app
  28.             $api_key "1ec6b93f670b55f43dce7a7a430edb9f";
  29.             $scopes "read_content,write_content,read_themes,write_themes,read_products,write_products,read_product_listings";
  30.             $scopes .= ",read_customers, write_customers,read_orders, write_orders, read_draft_orders, write_draft_orders,read_inventory, write_inventory,read_locations,read_script_tags, write_script_tags";
  31.             $scopes .= ",read_checkouts, write_checkouts, read_price_rules, write_price_rules,read_translations, write_translations,read_locales, write_locales";
  32.             $redirect_uri "https://friendscore.xxii.de/de/shopify/gentoken";
  33.             // Build install/approval URL to redirect to
  34.             $install_url "https://" $shop "/admin/oauth/authorize?client_id=" $api_key "&scope=" $scopes "&redirect_uri=" urlencode($redirect_uri);
  35.             // Redirect
  36.             header("Location: " $install_url);
  37.             die();
  38.         } else {
  39.             $token "b3824b7bd256d475724240574739230a";
  40.             $apiKey "1ec6b93f670b55f43dce7a7a430edb9f";
  41.             $pw "74e7020f910b7b12d7940dd7c32d9466";
  42.             $sharedSrt "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";
  43.             $credential = new \Slince\Shopify\PrivateAppCredential('daed83883b565e4e3de21559ab68c513''74e7020f910b7b12d7940dd7c32d9466''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');
  44.             $client = new \Slince\Shopify\Client($credential'coreshopxxii.myshopify.com', [
  45.                 'metaCacheDir' => '/var/www/vhosts/xxii.de/https://friendscore.xxii.de/web/var/tmp' // Metadata cache dir, required
  46.             ]);
  47.             //$data = $client->getLastResponse();
  48.             $api = new BasicShopifyAPI();
  49.             $api->setVersion('2020-03'); // "YYYY-MM" or "unstable"
  50.             $api->setShop("coreshopxxii.myshopify.com");
  51.             $api->setAccessToken("b3824b7bd256d475724240574739230a");
  52.             $data $api->rest("GET""/admin/api/2020-01/products.json"$params null$headers = [], $sync true);
  53.             /*
  54.                         $order = array (
  55.                             "email" => "foo@example.com",
  56.                             "fulfillment_status" => "unfulfilled",
  57.                             "line_items" => [
  58.                                 [
  59.                                     "variant_id" => 32907957567628,
  60.                                     "quantity" => 2
  61.                                 ]
  62.                             ]
  63.                         );
  64.                         $client->getOrderManager()->create($order);
  65.                     $orders = $client->getOrderManager()->getClient();
  66.             */
  67.             echo "<pre>";
  68.             var_dump($data->body);
  69.         }
  70.     }
  71.     public function shopifyGenTokenAction(Request $request)
  72.     {
  73. // Set variables for our request
  74.         $api_key "1ec6b93f670b55f43dce7a7a430edb9f";
  75.         $shared_secret "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";
  76.         $params $_GET// Retrieve all request parameters
  77.         $hmac $_GET['hmac']; // Retrieve HMAC request parameter
  78.         $params array_diff_key($params, array('hmac' => '')); // Remove hmac from params
  79.         ksort($params); // Sort params lexographically
  80.         $computed_hmac hash_hmac('sha256'http_build_query($params), $shared_secret);
  81. // Use hmac data to check that the response is from Shopify or not
  82.         if (hash_equals($hmac$computed_hmac)) {
  83.             // Set variables for our request
  84.             $query = array(
  85.                 "client_id" => $api_key// Your API key
  86.                 "client_secret" => $shared_secret// Your app credentials (secret key)
  87.                 "code" => $params['code'// Grab the access key from the URL
  88.             );
  89.             // Generate access token URL
  90.             $access_token_url "https://" $params['shop'] . "/admin/oauth/access_token";
  91.             // Configure curl client and execute request
  92.             $ch curl_init();
  93.             curl_setopt($chCURLOPT_RETURNTRANSFER1);
  94.             curl_setopt($chCURLOPT_URL$access_token_url);
  95.             curl_setopt($chCURLOPT_POSTcount($query));
  96.             curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($query));
  97.             $result curl_exec($ch);
  98.             curl_close($ch);
  99.             // Store the access token
  100.             $result json_decode($resulttrue);
  101.             $access_token $result['access_token'];
  102.             // Show the access token (don't do this in production!)
  103.             return new Response($access_token);
  104.             //return $this->json(array('key' => 'value'));
  105.         } else {
  106.             // Someone is trying to be shady!
  107.             die('This request is NOT from Shopify!');
  108.         }
  109.     }
  110.     /**
  111.      * @Template
  112.      * @param Request $request
  113.      * @return array
  114.      */
  115.     public function navAction(Request $request)
  116.     {
  117.         return [
  118.             'siteconfig' => $request->get('siteconfig'),
  119.             'documentNav' => $request->get('documentNav')
  120.         ];
  121.     }
  122.     /**
  123.      * @Template
  124.      * @param Request $request
  125.      * @return array
  126.      */
  127.     public function footerAction(Request $request)
  128.     {
  129.         return [
  130.             'websiteData' => $request->get('websiteData'),
  131.             'documentFooter' => $request->get('documentFooter')
  132.         ];
  133.     }
  134.     /**
  135.      * @Template()
  136.      * @param Request $request
  137.      */
  138.     public function emailAction(Request $request)
  139.     {
  140.         return [
  141.             'gender' => $request->attributes->get('gender'),
  142.             'name' => $request->attributes->get('name'),
  143.             'lastname' => $request->attributes->get('lastname'),
  144.             'email' => $request->attributes->get('email'),
  145.             'company' => $request->attributes->get('company'),
  146.             'address' => $request->attributes->get('address'),
  147.             'zip' => $request->attributes->get('zip'),
  148.             'city' => $request->attributes->get('city'),
  149.             'state' => $request->attributes->get('state'),
  150.             'message' => $request->attributes->get('message')
  151.         ];
  152.     }
  153. }