• Как реализовать https прокси с авторизацией в своем расширении хрома?

    @zkrvndm
    Софт для автоматизации
    В фоновом процессе расширения background.js прописываете:
    Развернуть
    // Записываем параметры прокси в глобальную переменную:
    
    window.proxy_auth = {
    	'address': 'Адрес_прокси:Порт_прокси',
    	'proxy_user': 'Логин от прокси',
    	'proxy_password': 'Пароль от прокси'
    };
    
    // Устсновка прокси через назначение PAC-скрипта:
    
    chrome.proxy.settings.set(
    	{
    		value: {
    			mode: 'pac_script',
    			pacScript: {
    				data: 'function FindProxyForURL(url, host) { return "PROXY '+proxy_auth.addres+'"; }'
    			}
    		},
    		scope: 'regular'
    	},
    	function() {
    		console.log('Прокси '+proxy_auth.addres+' установлен');
    	}
    );
    
    // Автоматическая авторизация для установленного прокси:
    
    chrome.webRequest.onAuthRequired.addListener(
    	function(info, callback) {
    		if (info.isProxy && typeof window.proxy_auth !== 'undefined') {
    			callback({
    				authCredentials: {
    					username: window.proxy_auth.proxy_user,
    					password: window.proxy_auth.proxy_password
    				}
    			});
    		}
    		else {
    			callback();
    		}
    	},
    	{ urls: [ '<all_urls>' ] },
    	[ 'asyncBlocking' ]
    );

    В манифесте расширения у вас должны быть прописаны разрешения:
    Развернуть
    {
    	
    	"name" : "Имя расширения",
    	
    	"manifest_version" : 2,
    		
    	"permissions" : [ "proxy", "webRequest", "webRequestBlocking", "<all_urls>" ],
    	
    	"background" : { "persistent": true, "scripts": [ "background.js" ] }
    
    }


    P. S. Сбросить ранее установленный прокси можно установив пустой PAC-скрипт, примерно так:
    Развернуть
    chrome.proxy.settings.set(
    	{
    		value: {
    			mode: 'pac_script',
    			pacScript: {
    				data: 'function FindProxyForURL(url, host) { return "DIRECT"; }'
    			}
    		},
    		scope: 'regular'
    	},
    	function() {
    		console.log('Прокси сброшены');
    	}
    );
    Ответ написан
    2 комментария
  • Кодировка при curl?

    @remzalp
    Программер чего попало на чем попало
    У Вас проблема в том, что отдаёте кодировку UTF-8, а размещаете текст в кодировке 1251.
    Варианты:
    1. ответ kruslan - меняете кодировку до UTF-8 полученного текста
    2. header('Content-Type: text/html; charset=windows-1251')
    где-то в самом начале кода еще до вывода любого текста.
    Ответ написан
    Комментировать
  • Deep linking в Telegram?

    @Mysterion
    $command = '/start 123456 dsad';
    $regex = '/(\/start\s)(\d+)/';
    if(preg_match($regex, $command, $match)) {
        $num = $match[2];
        echo $num; // 123456
    }
    Ответ написан
    Комментировать
  • Почему карты МИР не определяются по бину?

    @boss_lexa
    MIR начинается на 2200–2204
    https://en.wikipedia.org/wiki/Payment_card_number#...

    тут какие-то вроде определяются
    https://cardinfo.online
    https://binlist.pro
    https://bincheck.io

    за основу можно взять https://github.com/iannuttall/binlist-data и потом недостающим нагуглить
    Ответ написан
    Комментировать
  • Какую кассу выбрать для интернет проекта с учетом 54-ФЗ?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    У Вас есть 4 варианта жизни в условиях 54ФЗ

    1. Купить кассовый аппарат, установить его где-то, самому реализовать интеграцию с ним, самому реализовать отправку чеков клиенту.

    2. Воспользоваться сервисом онлайн касс, например https://online.atol.ru/ - кассу все равно придется купить но уже у них, самому нужно будет просто слать им данные о проведенных покупках/возвратах через +- человеческое апи.

    3. Обратиться к любому из крупных шлюзов действующих в РФ - у них есть из коробки интеграция с одним из ОФД (у Я.К как раз с Атолом этим) - кассу купить опять же придется (пара кликов), никаких дополнительных интеграций - данные туда шлет сама платежка.

    4. Зарегистрировать юрлицо вне российского права, работать с зарубежными шлюзами, забыть про 54ФЗ навсегда.
    Ответ написан
    1 комментарий