✏️ 正在编辑: IntegrationClient.php
路径:
/home/bpioifn/www/pigmentse/modules/sendinblue/services/IntegrationClient.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /** * 2007-2022 Sendinblue * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to contact@sendinblue.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author Sendinblue <contact@sendinblue.com> * @copyright 2007-2022 Sendinblue * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of Sendinblue */ namespace Sendinblue\Services; class IntegrationClient { const ORDER_CREATED_URI = '/events/%s/order_created'; const DISABLE_SMTP_URI = '/events/%s/disable_smtp'; const DELETE_USER_CONNECTION = '/events/%s/reset_api_key'; /** * @var ConfigService */ private $configService; public function __construct() { $this->configService = new ConfigService(); } /** * @param string $url * @param string $method * @param array $data * @param array $headers * * @return array */ public function makeHttpRequest($url, $method = 'GET', $data = [], $headers = []) { try { $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => $method, ]); if (empty($headers)) { $headers = [ 'Content-Type: application/json', sprintf('x-sib-shop-version: %s', _PS_VERSION_), sprintf('x-sib-plugin-version: %s', $this->getPluginVersion()), ]; } curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); $response = [ 'success' => true, 'data' => curl_exec($curl), ]; $error = curl_error($curl); curl_close($curl); if ($error) { $response = [ 'success' => false, 'error' => $error, ]; } } catch (\Exception $exception) { $response = [ 'success' => false, 'error' => $exception->getMessage(), ]; } return $response; } /** * @return string */ private function getPluginVersion() { return \Module::getInstanceByName('sendinblue')->version; } /** * @param string * @return string */ public function getConnectionUri($path) { return ConfigService::SIB_INTEGRATIONS_API_URL . sprintf( $path, $this->configService->getSibConfig(ConfigService::CONFIG_USER_CONNECTION_ID) ); } /** * @param array $contact */ public function createOrder($contact) { $this->makeHttpRequest($this->getConnectionUri(self::ORDER_CREATED_URI), 'POST', $contact); } /** * @param array $data */ public function disableSmtp() { $this->makeHttpRequest( $this->getConnectionUri(self::DISABLE_SMTP_URI), 'POST', [ ConfigService::WEBSERVICE_API_KEY => $this->configService->getSibConfig( ConfigService::CONFIG_SENDINBLUE_WEBSERVICE_KEY ) ] ); } public function deleteUserConnection() { $this->makeHttpRequest( $this->getConnectionUri(self::DELETE_USER_CONNECTION), 'POST', [ ConfigService::WEBSERVICE_API_KEY => $this->configService->getSibConfig( ConfigService::CONFIG_SENDINBLUE_WEBSERVICE_KEY ) ] ); } }
💾 保存文件
← 返回文件管理器