paymaster запрос для онлайн-касс

С появлением онлайн-касс paymaster поспешил обновить апи, к-е почему то не представлено на сайте, а доступно только после общения с ТП. Для печати чеков пеймастер добавил в запрос параметры товаров LMI_SHOPPINGCART. (далее…)

php webdav yandex-disk

Бэкапы можно хранить на яндекс диске. Складируем их по протоколу webdav на php. Есть клиент под этот протокол. Качаем http://sabre.io/dav/install/


composer require sabre/dav ~3.2.0

Документация не самая полная, однако в коде куча комментов, так что без проблем разобраться.


use Sabre\DAV\Client;

include 'vendor/autoload.php';

$settings = array(
    'baseUri' => 'https://webdav.yandex.ru',
    'userName' => 'user',
    'password' => 'pass123',
    // 'proxy' => 'locahost:8888',
);

// должна лежать на уровень выше текущей папки
$LOCAL_back_folder = 'backups';
$YA_back_folder = 'my_backups';

$client = new Client($settings);

(далее…)

shiptor api добавление посылки

Создадим посылку, используя сервис. Shiptor предоставляет Public и Shipping api. Нам нужен 2-й, метод addPackage.
Код можно скачать с этого репозитория https://github.com/esteit/shiptor-russia-php-api-client . Можно воспользоваться примером shiptor-russia-php-api-client/samples/ShippingEndpoint/AddPackage.php (далее…)

nginx + php-fpm на vps centos 7, ubuntu

Развернем сервачок на vps под centos 7 или убунту. Покупаем любой за 150 рублей. После активации поставим последнюю версию php , nginx. Об установке писать не буду, вкратце опишу конфиги. Обратите внимание на наличие свопа, без него mysql будет частенько падать с памятью 256-512 Мб. Как поставить swap есть хорошая статья https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps. Также не помешает проверить частоту процессора командой cat /proc/cpuinfo, лучше будет от 2000Mhz, чем 500, хотя это не важно. (далее…)

ПЭК публичный апи для расчета стоимости доставки

Публичное апи для расчета стоимости перевозки достаточно простое. Делаем GET запрос на адрес http://calc.pecom.ru/bitrix/components/pecom/calc/ajax.php. В параметрах передаем габариты груза, город отправки и доставки. Обратите внимание, минусы для городов обязательны!
(далее…)

symfony form

Создадим форму симфони.
Понадобятся всего 4 зависимости.


      "require": {
        "symfony/form": "^3.3",
		"symfony/twig-bridge": "^3.3",
		"symfony/translation": "^3.3",
		"symfony/security-csrf": "^3.3"
      }

Далее подключаем классы формы, твига, переводчика и защиту от Csrf атак.
(далее…)

google captcha v2

Гугл капча сейчас везде. Плюс ее в том что она заменяет CSRF-токен.

Регистрируем свой домен по ссылке https://www.google.com/recaptcha/admin#list . Получаем ключи. Гугл предоставляет свое мини-апи для запросов на проверку.   Скачать его можно тут https://github.com/vaajnur/recaptcha2

Кстати, если не любите ооп и композер, в конце статьи есть способ проверки капчи всего лишь 3мя строчками кода.

Размещаем на страничке HTML-код капчи с секретным ключом.

Подключаем javascript


<script src='https://www.google.com/recaptcha/api.js'></script>

обработка отправленной капчи
(далее…)

php SOAP api на примере DPD

Поработаем с протоколом SOAP на примере DPD api. Напишем запрос и получим результат.


// создаем объект клиента
$soap = new SoapClient( 'http://ws.dpd.ru/services/geography2?wsdl' );
// вызовем метод getCitiesCashPay
$obj = $soap->getCitiesCashPay($arData);
// в параметрах можно передать только ключи. Внимание, здесь нерабочие ключи
$arData['request']['auth'] = array(
			'clientNumber' => 1230000123,
			'clientKey' => '023E2F77487F5BF05B663ACBB95F42079D961111');

(далее…)

composer autoload

В Composer 2 основные директивы: autoload для загрузки кастомных классов, require — для сторонних библиотек.
Рассмотрю автозагрузку файлов.

Создаем пустой класс  Api в Api.php . Заметьте, название класса должно совпадать с именованием файла.

 


class Api{

	public function __construct(){
		echo "class Api";
	}
}

(далее…)

php REST api

Первое знакомство с rest api для новичка может оказаться затруднительным, т.к. просто и с толком нигде не объяснено. Люди пытаются показать на примерах микрофреймворков, тем самым усугубляя ситуацию.
На самом деле все просто — rest api это запрос, при к-м передается не просто переменные,как при POST или GET, а самый настоящий xml или json, в ответе получая такой же формат. Покажу на примере yandex geolocation. Геолокацию с использованием api на ООП я публиковал http://phpjs.ru/2017/03/21/google-geolocation-api/ ‎.  Здесь покажу голый запрос.
Создаем минимальный json. Ключ к апи геолокации яндекса надо получить. Заметьте, почти все сервисы для протокола rest требуют авторизации, напр. в amocrm, shiptor, google geo, elba бухгалтерия, sms рассылка — все они дают 200 ответ только при авторизации.
(далее…)

sip телефония

Первое знакомство с сип телефонией. Не буду углубляться в технологии  виртуальных АТС, sip server asterisk  и проч. Просто зарегаем бесп. sip аккаунты и используем любой sip клиент (так называемый софтфон).



Сервисы бесп. sip аккаунтов — ekiga.net, iptel.org, sip2sip.info, sipnet.ru . После реги-ии ваш аккаунт будет выглядеть довольно привычным образом: user1@domen.ru
(далее…)

google geolocation api , php yandex locator

Получим город с помощью google geo api, а также яндекс Локатор . Апи обоих практически идентичны, надо получить апи-ключ и там и там. Запросы в гугл-апи пишем сами, в яндексе все уже есть, просто скачайте по ссылке.
Для начала надо создать проект, чтобы получить ключ. Далее все просто: делаем http POST запрос, с параметрами в формате JSON.
(далее…)

MVC приложение на php. Часть 6. crud, mapping

В этой статье сделаем админку полезной — она сможет создавать статьи, категории, редактировать, удалять. А также привяжем статьи к категориям.
Плодить контроллеры не будем, все добавим в 2 базовых.
Итак, форма для ред-ия та же что для просмотра, соот-но экшн будет одинаковый. Принимаем post данные

application/controllers/admin/articles.php
(далее…)

MVC приложение на php. Часть 5. Админ панель.

На этом уроке рассмотрю создание админ панели. Отделение admin от client мы сделали заранее, это плюс. Осталось добавить контрол-ры, модели, вьюхи для админской части. Тему я взял Admin LTE от того же бутстрап, версия еще 1-я.
Решил заменить имена классов, чтобы избавиться от zendовского snake case. Поменял namespace для каждого класса, сделал его соответствующим пути.

application/controllers/client/articles.php
(далее…)

MVC приложение на php. Часть 4

Cоздадим базовый шаблон и шаблон контента, в шаблоне контента выведем результаты запроса. Уже сможем запустить наш application. Для каждой статьи напишем экшн детальной страницы.
Для базового шаблона выбрал тему от bootstrap. Cоот-но надо будет подключить эту биб-ку.

css/bootstrap.min.css

    <link href="css/bootstrap.min.css" rel="stylesheet"/>

(далее…)