Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
PHP Steam api array GetPlayerBans $urljson = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?key=1684BB8412C9E952CF72E532CDCB2006&steamids=76561198036370701"); $_SESSION = (array) json_decode($urljson)->players; echo '<pre>'; print_r($_SESSION); echo '</pre>'; используя этот код я делжен получить следуюющее -> { "players": } https://www.cyberforum.ru/ php-api/ thread1628524.html по api steam PHP
вопрос в том как я понимаю в этом скрипте информация с url-дешифруется в массив contant->отправляется в глобальный массив $_SESSION .a вот это теги?->где их можно посмотреть? include("settings.php"); if (empty($_SESSION) or $_SESSION == false or empty($_SESSION)) { $url =...
PHP разжуйте по яндекс деньгами API https://www.cyberforum.ru/ php-api/ thread1624435.html
нужно реализовать уведомление о переводе ЯДов юзеру на самописном сайте. POST-параметры указаны тут https://tech.yandex.ru/money/doc/payment-solution/payment-notifications/payment-notifications-aviso-docpage/ принимаю их, хочу для начала отправить просто почту для проверки работоспособности <?php
PHP API, что и для чего он? https://www.cyberforum.ru/ php-api/ thread1624019.html
много где уже видел, что говорят о API, и меня заинтересовало - что это? погуглил и выяснил, что это "облегчает жизнь программисту") так как это работает и как это изучить? хотелось бы увидеть примеры))
Robokassa не запрашивает Result url PHP
Использую AVE cms и самописный магазин, надо подключить оплату через робокассу. Начал тестировать, но не работает хоть убейся, никаких ошибок нет, все сделано по их примерам с сайта, тестовая оплата проходит как по маслу вплоть до пункта “Вернутся в магазин” однако изменений не происходит. Стал вести лог, выяснилось что робокасса, даже не дергает Result url, работоспособность которого...
PHP API с переменными Biglion https://www.cyberforum.ru/ php-api/ thread1623641.html
Уважаемые форумчане, помогите советом или пенком в нужное направление)) Пытаюсь прикрутить на сайт проверку введеного пользователем номера купона через api которое дали в тех. поддержке биглиона выглядит следующим образом http://api.biglion.ru/api.php?type=xml&method=redeem_coupon&id=...&session=...&number=...&version=...&key=.. вместо точек соответственно некие известные мне значения API...
PHP Paypal php. Как при продаже товара, переводить 1% на второй paypal счет? https://www.cyberforum.ru/ php-api/ thread1621081.html
paypal php. Как при продаже товара, переводить 1% на второй paypal счет?
Настройка RCON(Minecraft) PHP
Нужен кусок кода, без чего-то лишнего, который будет отправлять команду на сервер. Пытаюсь сделать систему поощрений(с голосования), чтобы при голосовании выполнялась команда в игре, и игроку давался какой-либо предмет.
PHP Api.random.org подключить Привет. Мне нужно, чтобы с помощью моего api ключа генерировалось случайное число. и чтобы потом это число можно было проверить на самом сайте api.random.org. подскажите, какие библиотеки нужны и как это сделать? я уже очень долго парюсь, но никакие библиотеки в инете не помогают. кто что скажет ? https://www.cyberforum.ru/ php-api/ thread1618076.html PHP Не парсятся картинки из вк Приветствую всех! Прошу помощи в разрешении такой проблемы. Парсятся не все картинки из вк. Использую VK API. Собственно, код и скриншот. <?php set_time_limit(0); include "config.php"; $start_time = time(); https://www.cyberforum.ru/ php-api/ thread1615200.html
VK API выдает ошибку, как исправить? PHP
VK API выдает ошибку, как исправить? Сама ошибка: {"error":{"error_code":5,"error_msg":"User authorization failed: You should specify sig param for nohttps requests (scope contain nohttps)","request_params":}} Получал токен так: https://oauth.vk.com/authorize?client_id=5179980& scope=photos,audio,video,docs,notes,pages,status,offers,questions...
PHP Audio.get Здравствуйте, уже сколько мучаюсь и не как. Создал приложение и пытаюсь спарсить свою музыку $url = 'http://oauth.vk.com/authorize'; $params = array( 'client_id' => $client_id, 'redirect_uri' => $redirect_uri, 'revoke' => 0, 'scope' => 'offline,wall,email,audio', 'response_type' => 'code' https://www.cyberforum.ru/ php-api/ thread1610238.html
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
0

Скрипт платежной системы(интеркасса) - PHP - Ответ 8564340

30.12.2015, 02:40. Показов 5954. Ответов 3
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите разобраться со скриптом пополнения баланса на сайте.
После успешной оплаты переправляет как положено на сайт и пишет "Успешно." но баланс не пополняется

config.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
 
$config = array (
    /*
     * MySQL_DRIVER - Драйвер для подключения к базе данных
     * Может принимать значения (Регистр любой) - PDO (Рекомендовано), MySQLi или MySQL (Не рекомендовано!)
     * Если вы не знаете зачем нужен этот параметр, то не изменяйте его!
     */
     
    'mysql_driver' => 'MySQLi', // Драйвер для подключения к базе данных
    
    /*
     * Настройки базы данных
     */
    'host' => 'localhost', // MySQL Хост (IP/Domain)
    'user' => 'пользователь', // MySQL Пользователь
    'pass' => 'пароль', // MySQL Пароль
    'bd_name' => 'база', // MySQL База Данных
 
    'table' => 'money', // Таблица с валютой
    'column_money' => 'realmoney', // Столбик рублей
    'column_user' => 'username', // Столбик имён
    
    /*
     * Настройки системы
     * USER_PARAM - уникальный пареметр, это может быть ID или никнейм (логин) игрока, зависит от параметра COLUMN_USER
     * Для CMS DLE - $_SESSION['dle_user_id'], но тогда COLUMN_USER - 'user_id'
     */
    
    'path' => 'payment', // Путь до файла payment.php от корня, без / (payment - поумолчанию)
    'user_param' => 'test', // Уникальный параметр, напримаер логин или id игрока, зависит от параметра COLUMN_USER
    
    /*
     * Единые настройки платёжных системы
     */
    
    'description' => 'Пополнение счёта игрока - ', // Описание платежа. DESCRIPTION USER_PARAM
    'max_pay' => 1000, // Максимальная сумма пополнения
    
    /*
     * MESSAGE - Вместо обычного текста, можно использовать HTML-тег META для переадресации на сайт.
     * META, обладает свойством REFRESH - <META HTTP-EQUIV="REFRESH" CONTENT="N;URL=адрес">
     * N - Время, через которое пользователя отправит на указанный http. http - Ссылка на сайт
     * Например: <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://casioo.ru/">
     */
    'message' => array (
        'success' => 'Успешно.', // сообщение в случае успешной оплаты
        'fail' => 'Ошибка!', // сообщение в случае ошибки или неудачной оплаты.
    ),
    
    /*
     * Настройки платёжных систем
     * Пожробнее смотрите в инструкции.
     */
    'pay_system' => array (
        'interkassa' => array( // Настройки InterKassa
            'enable' => true, // Принимать платежи данной системы?
            'shop_id' => 'id магазина', // ID магазина InterKassa
            'cur' => 'RUB', // Тип валюты (RUB UAH USD EUR)
            'key' => 'ключ', // Секретный ключ
            'test_key' => 'тестовый ключ', // Местовый секретный ключ
            'testing' => false // Включить режим тестирования?
        ),
        
        'unitpay' => array( // Настройки UnitPay
            'enable' => false, // Принимать платежи данной системы?
            'project_id' => '', // ID(Номер) проекта || demo - в случае тестого платежа
            'key' => '', // Секретный ключ
        ),
        
        /*'robokassa' => array( // Настройки RoboKassa
            'enable' => false, // Принимать платежи данной системы?
            'password1' => '', // Пароль #1                               В следующей версии.
            'password2' => '', // Пароль #2
            'login' => '', // Логин (Имя проекта) || demo - в случае тестого платежа
        ),*/
    )
);
?>
payment.class.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
 
 
class payment
{
    public function __construct()
    {
        global $config;
        $this->config = $config;
        $this->mysql_driver = strtolower($config['mysql_driver']);
        $this->ik = $config['pay_system']['interkassa'];
        $this->up = $config['pay_system']['unitpay'];
        //$this->rk = $config['pay_system']['robokassa']; // Ждём следующую версию
    }
    
    public function ik_sort($param)
    {
        $data['ik_co_id'] = $this->ik['shop_id'];
        foreach ($param as $key => $value) // убирает параметры без /ik_/
        {
            if (!preg_match('/ik_/', $key)) continue;
            $data[$key] = $value; // сохраняем параметры
        }
        return $data;
    }
    
    public function ik_sign($param) // интеркасса генератор контрольной цифровой подписи со стороны сервера
    {
        $data = $this->ik_sort($param);
        $ikSign = $data['ik_sign']; // сохраняем приходящую переменную
        unset($data['ik_sign']); // удаляем придодащую переменную, для генирации подписи
        $key = ($data['ik_pw_via'] == 'test_interkassa_test_xts') ? $this->ik['test_key'] : $this->ik['key'];
        if ($data['ik_pw_via'] == 'test_interkassa_test_xts' && !$this->ik['testing']) return false;
        ksort ($data, SORT_STRING); // сортируем массив
        array_push($data, $key); // внедряем переменуую $key в массив
        $signStr = implode(':', $data); // записываем массив в формат @string через : 
        $sign = base64_encode(md5($signStr, true)); // хешируем подпись
        return ($sign == $ikSign) ? true : false;
    }
    
    
    public function up_json_reply($type = "error", $params) // системный ответ для сервера unitpay, json
    {
        if ($type == "check" || $type == "pay") $type = "success";
        $reply = array( // системный массив
            'error' => array(
                "jsonrpc" => "2.0",
                "error" => array("code" => -32000, "message" => $this->config['message']['fail']),
                'id' => $params['projectId']
            ),
            'success' => array(
                "jsonrpc" => "2.0",
                "result" => array("message" => $this->config['message']['success']),
                'id' => $params['projectId']
            )
        );
        return json_encode($reply[$type]); // возвращаем json
    }
    
    public function up_sign($reply) { // Проверка цифровой подписи unitpay
        ksort($reply); // сортируем массив
        $exp = explode("-", $this->up['project_id']);
        $Sign = $reply['sign']; // сохраняем подпись
        unset($reply['sign']); // удаляем подпись
        $reply['projectId'] = $exp[0]; // заменяем существующий ид проекта на свой, дабы убедиться, что запрос от нашего UP
        $return = (md5(join(null, $reply).$this->up['key']) != $Sign) ? "error" : "success"; // генирация и проверка подписи
        return $this->up_json_reply($return, $reply);
    }
    
    public function mysql_prepare($sql, $db, $binds)
    {
        foreach($binds as $key => $bind) {
            $a[] = $key;
            $b[] = "'{$bind}'";
        }
        $query = mysql_query(str_replace($a, $b, $sql), $db);
        return (!$query) ? false : true;
    }
    
    public function pay_systems($pay_system)
    {
        foreach($this->config['pay_system'] as $system => $options)
        {
            if ($pay_system == $system && $options['enable']) return true;
        }
        return false;
    }
    
    public function pay_form($amount, $user, $pay_system) // генерация GET запроса
    {
        $amount = (int) $amount;
        if ($amount > $this->config['max_pay'] || $amount <= 0 || !$this->pay_systems($pay_system)) return "/{$this->config['path']}/payment.php?reply=fail";
        $desc = "{$this->config['description']} {$user}";
        switch ($pay_system) {
            case "interkassa" :
                return "https://sci.interkassa.com/?ik_co_id={$this->ik['shop_id']}&ik_pm_no={$user}&ik_am={$amount}&ik_cur={$this->ik['cur']}&ik_desc={$desc}";
            break;
            case "unitpay" :
                return "https://unitpay.ru/pay/{$this->up['project_id']}?sum={$amount}&account={$user}&desc={$desc}";
            break;
            case "robokassa" :
                // Ждём следующую версию
            break;
            default:
                return "/{$this->config['path']}/payment.php?reply=fail";
            break;
        }
    }
    
    public function pay($amount, $user) // пополнение счета
    {
        $sql = "UPDATE `{$this->config['table']}` SET `{$this->config['column_money']}` = {$this->config['column_money']} + :amount WHERE `{$this->config['column_user']}` = :user";
        if(extension_loaded("MySQLi") && $this->mysql_driver == "auto" || $this->mysql_driver == "mysqli") {
            $conn = new mysqli($this->config['host'], $this->config['user'], $this->config['pass'], $this->config['bd_name']);
            $stmt = $conn->prepare(str_replace(array(":amount", ":user"), "?", $sql));
            $stmt->bind_param("is", $amo, $username);
            $username = $user; $amo = (int) $amount;
            return $stmt->execute();
        } else if(extension_loaded("PDO") && extension_loaded("PDO_MySQL") && $this->mysql_driver == "auto" || $this->mysql_driver == "pdo"){
            $conn = new PDO("mysql:host={$this->config['host']};dbname={$this->config['bd_name']}", $this->config['user'], $this->config['pass']); 
            $query = $conn->prepare($sql);
            return $query->execute(array(":amount" => (int) $amount, ":user" => $user));
        } else {
            $conn = mysql_connect($this->config['host'], $this->config['user'], $this->config['pass']) or die('Ошибка подключения: '.mysql_error());
            $db = mysql_select_db($this->config['bd_name'], $conn);
            $user = mysql_real_escape_string(htmlspecialchars($user, ENT_QUOTES));
            return $this->mysql_prepare($sql, $conn, array(":amount"=>(int)$amount, ":user"=>$user)) or die(mysql_error());
        }
    }
}
?>

payment.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
    session_start();
    include "config.php";
    require_once("payment.class.php");
    $pay = new payment();
    if (isset($_REQUEST['amount']) && isset($_REQUEST['payment'])) {
        header ("Location: ".$pay->pay_form($_REQUEST['amount'], $pay->config['user_param'], $_REQUEST['payment']));
    } else if (isset($_REQUEST['method']) && isset($_REQUEST['params'])) {
        switch (strtolower($_REQUEST['method'])) {
            case "check" :
                echo $pay->up_sign($_REQUEST['params']); 
            break;
            case "pay" :
                echo $pay->up_sign($_REQUEST['params']);
                $pay->pay($_REQUEST['params']['sum'], $_REQUEST['params']['account']);
            break;
            default :
                $pay->up_json_reply("error", $_REQUEST['params']);
            break;
        }
        exit();
    } else {
        if (isset($_GET['reply'])) {
            echo $config['message'][$_GET['reply']];
        } else {
            if(!$pay->ik_sign($_REQUEST)) exit("403");
            $pay->pay($_REQUEST['ik_am'], $_REQUEST['ik_pm_no']);
        }
    }
?>
Интерфейс интеркассы:
URL успешной оплаты: http://сайт/payment/payment.php?reply=success
URL неуспешной оплаты: http://сайт/payment/payment.php?reply=fail

Вернуться к обсуждению:
Скрипт платежной системы(интеркасса) PHP
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2015, 02:40
Готовые ответы и решения:

Подключение платежной системы payanyway
Всем привет! В программировании не очень силён, но пытаюсь подключить платежную систему payanyway...

Интеграция платежной системы Екомм ТБС банка на сайт
Здравствуйте, пытаюсь интегрировать платежную систему ufc ecomm TBC банка на сайт, но не как не...

Интеркасса к сайту
Ребят, кто работал с интеркассой, помогите! Проблема в том что мне нужно написать скрипт, который...

Интеркасса Interkassa
Доброго времени суток! Вопрос: я сделал тестовый платёж и собирался посмотреть, какие параметры...

3
30.12.2015, 02:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2015, 02:40
Помогаю со студенческими работами здесь

ИНТЕРКАССА / POST при успешной оплате
Есть сайт. Краткая суть такова. 1) Пользователь вводит свой e-mail и нажимает кнопку оплатить....

скрипт платежной системы
Нужна помощь :) Ситуация такая: клиент производит оплату через робокассу на сайте, деньги на счет...

скрипт платежной системы Robokassa
Здравствуйте делал скрипт оплаты робокассы в тестовом режиме так как уже все готово активировал...

Скрипт платежной системы на php
Доброго времени суток, уважаемые пользователи форума КиберФорум! Для меня вот уже год остается...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru