<?php require __DIR__ . '/conf.php'; require __DIR__ . '/vendor/autoload.php'; use phpish\shopify; if (!session_id()) { session_start(); } global $db; $shop = $_REQUEST['shop']; $shop_exists = pg_query($db, "SELECT * FROM configuration WHERE store = '{$shop}'"); if (pg_num_rows($shop_exists) < 1) { $access_token = shopify\access_token($_REQUEST['shop'], SHOPIFY_APP_API_KEY, SHOPIFY_APP_SHARED_SECRET, $_REQUEST['code']); $lastRow = pg_query($db, "SELECT id FROM configuration ORDER by id DESC limit 1"); $lastID = pg_fetch_assoc($lastRow); $lastID = pg_num_rows($lastRow) > 0 ? $lastID['id'] : 0; $lastID = $lastID + 1; $data = array('shop_name' => $shop, 'access_token' => $access_token); $data = serialize($data); pg_query($db, "INSERT INTO configuration (id, store, data) VALUES ('{$lastID}', '{$shop}', '{$data}')"); $url = "https://{$shop}/admin/webhooks.json"; $topics = array('customers/create' => "https://smscountry.herokuapp.com/notify.php?action=customer_signup::{$shop}", 'orders/create' => "https://smscountry.herokuapp.com/notify.php?action=order_created::{$shop}", 'orders/updated' => "https://smscountry.herokuapp.com/notify.php?action=order_updated::{$shop}", 'app/uninstalled' => "https://smscountry.herokuapp.com/notify.php?action=app_uninstalled::{$shop}"); foreach ($topics as $topic => $address) { $data = array('access_token' => $access_token, 'webhook' => array('address' => $address, 'format' => 'json', 'topic' => $topic)); $data = json_encode($data); $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data))); curl_exec($ch);
session_start(); require __DIR__ . '/vendor/autoload.php'; use phpish\shopify; require __DIR__ . '/conf.php'; # Guard: http://docs.shopify.com/api/authentication/oauth#verification shopify\is_valid_request($_GET, SHOPIFY_APP_SHARED_SECRET) or die('Invalid Request! Request or redirect did not come from Shopify'); # Step 2: http://docs.shopify.com/api/authentication/oauth#asking-for-permission if (!isset($_GET['code'])) { $permission_url = shopify\authorization_url($_GET['shop'], SHOPIFY_APP_API_KEY, array('read_content', 'write_content', 'read_themes', 'write_themes', 'read_products', 'write_products', 'read_customers', 'write_customers', 'read_orders', 'write_orders', 'read_script_tags', 'write_script_tags', 'read_fulfillments', 'write_fulfillments', 'read_shipping', 'write_shipping'), 'http://localhost/new_prj/oauth.php'); $permission_url = $permission_url . '&redirect_uri=' . YOUR_REDIRECT_URL; die("<script> top.location.href='{$permission_url}'</script>"); } # Step 3: http://docs.shopify.com/api/authentication/oauth#confirming-installation try { # shopify\access_token can throw an exception $oauth_token = shopify\access_token($_GET['shop'], SHOPIFY_APP_API_KEY, SHOPIFY_APP_SHARED_SECRET, $_GET['code']); $_SESSION['oauth_token'] = $oauth_token; $_SESSION['shop'] = $_GET['shop']; echo 'App Successfully Installed!'; } catch (shopify\ApiException $e) { # HTTP status code was >= 400 or response contained the key 'errors' echo $e; print_R($e->getRequest()); print_R($e->getResponse()); } catch (shopify\CurlException $e) { # cURL error echo $e; print_R($e->getRequest()); print_R($e->getResponse()); }
<?php require 'conf.php'; require __DIR__ . '/vendor/autoload.php'; use phpish\shopify; global $db; $store = $_REQUEST['shop']; $code = $_REQUEST['code']; $access_token = shopify\access_token($store, SHOPIFY_APP_API_KEY, SHOPIFY_APP_SHARED_SECRET, $code); $storeData = json_decode(file_get_contents("https://{$store}/admin/shop.json?access_token={$access_token}")); $config = pg_query($db, "SELECT data FROM configuration WHERE store = '{$store}'"); $config = pg_fetch_assoc($config); //echo '<pre>';print_r($config); echo'</pre>'; $config = unserialize($config['data']); $CustomerCustomerSignup = isset($config['SMSHTML']['CustomerCustomerSignup']) ? $config['SMSHTML']['CustomerCustomerSignup'] : null; $CustomerSignupsmsactive = isset($config['smsactive']['CustomerCustomerSignup']) ? $config['smsactive']['CustomerCustomerSignup'] : null; $CustomerCustomerSignupVerification = isset($config['SMSHTML']['CustomerCustomerSignupVerification']) ? $config['SMSHTML']['CustomerCustomerSignupVerification'] : null; $CustomerSignupVerificationsmsactive = isset($config['smsactive']['CustomerCustomerSignupVerification']) ? $config['smsactive']['CustomerCustomerSignupVerification'] : null; $CustomerOrderPlaced = isset($config['SMSHTML']['CustomerOrderPlaced']) ? $config['SMSHTML']['CustomerOrderPlaced'] : null; $CustomerOrderPlacedsmsactive = isset($config['smsactive']['CustomerOrderPlaced']) ? $config['smsactive']['CustomerOrderPlaced'] : null; $CustomerOrderStatusChanged = isset($config['SMSHTML']['CustomerOrderStatusChanged']) ? $config['SMSHTML']['CustomerOrderStatusChanged'] : null; $CustomerOrderStatusChangedsmsactive = isset($config['smsactive']['CustomerOrderStatusChanged']) ? $config['smsactive']['CustomerOrderStatusChanged'] : null; $AdminCustomerSignup = isset($config['SMSHTML']['AdminCustomerSignup']) ? $config['SMSHTML']['AdminCustomerSignup'] : null; $AdminCustomerSignupsmsactive = isset($config['smsactive']['AdminCustomerSignup']) ? $config['smsactive']['AdminCustomerSignup'] : null; $AdminCustomerSignupScheduled = isset($config['SMSHTML']['AdminCustomerSignupScheduled']) ? $config['SMSHTML']['AdminCustomerSignupScheduled'] : null; $AdminCustomerSignupScheduledsmsactive = isset($config['smsactive']['AdminCustomerSignupScheduled']) ? $config['smsactive']['AdminCustomerSignupScheduled'] : null; $AdminOrderPlaced = isset($config['SMSHTML']['AdminOrderPlaced']) ? $config['SMSHTML']['AdminOrderPlaced'] : null; $AdminOrderPlacedsmsactive = isset($config['smsactive']['AdminOrderPlaced']) ? $config['smsactive']['AdminOrderPlaced'] : null; $AdminOrderReturnRequest = isset($config['SMSHTML']['AdminOrderReturnRequest']) ? $config['SMSHTML']['AdminOrderReturnRequest'] : null; $AdminOrderReturnRequestsmsactive = isset($config['smsactive']['AdminOrderReturnRequest']) ? $config['smsactive']['AdminOrderReturnRequest'] : null; $AdminContactInquiry = isset($config['SMSHTML']['AdminContactInquiry']) ? $config['SMSHTML']['AdminContactInquiry'] : null;