Azazello
Заблокированные
- Статус
- offline
- Регистрация
- 21.11.2015
- Сообщения
- 578
- Репутация
- 662
Обратите внимание, если Вы хотите провести сделку с данным пользователем, на то, что он заблокирован.
Недавно столкнулся с необходимостью подключить оплату qiwi p2p, но к своему удивлению не нашел готового решения(Может конечно плохо искал, но не суть).
Если вдруг Вам лень читать официальную документацию, то вот Вам мое решение, которое позволит Вам подключить qiwi p2p к вашему сайту или боту.
https://docs.ispsystem.ru/billmanager/finansy/podklyuchenie-modulej-oplaty/qiwi-p2p - читаем раздел "Настройка на стороне платёжной системы"
В пункте 5 указывает https://вашсайт.ru/qiwi.php (файл мы создадим немного позже).
В пункте 8 записывает публичный и приватный ключ.
Создаем файл config.php с таким содержанием:
Создаем файл qiwi.php, он будет обрабатывать уведомления от qiwi.
Как Выставлять счет? В нужной части Вашего проекты добавляем:
Может, кому-то будет полезным :)
Если вдруг Вам лень читать официальную документацию, то вот Вам мое решение, которое позволит Вам подключить qiwi p2p к вашему сайту или боту.
https://docs.ispsystem.ru/billmanager/finansy/podklyuchenie-modulej-oplaty/qiwi-p2p - читаем раздел "Настройка на стороне платёжной системы"
В пункте 5 указывает https://вашсайт.ru/qiwi.php (файл мы создадим немного позже).
В пункте 8 записывает публичный и приватный ключ.
Создаем файл config.php с таким содержанием:
PHP:
<?php
/* Тут не обязательно использовать массив, можно обойтись переменными, но в моем случае так было удобней */
function QIWI($a) {
return [
'public_key' => 'ВашПубличныйКлюч',
'secret_key' => 'ВашПривытныйКлюч=',
'successUrl' => 'https://вашсайт.ru/', // сюда будет перенаправлен клиент в случае успешной оплаты
][$a];
}
?>
Создаем файл qiwi.php, он будет обрабатывать уведомления от qiwi.
PHP:
<?php
include 'config.php'; // подключаем ранее созданный файл
$secret_key = QIWI('secret_key'); // Секретный ключ, берется из конфига
$sha256_hash_header = $_SERVER['HTTP_X_API_SIGNATURE_SHA256']; // Получаем заголовок
$entity_body = file_get_contents('php://input'); // Декодирую тело входящего запроса
$array_body = json_decode($entity_body, 1); // Декодирует строку JSON
$amount_currency = $array_body['bill']['amount']['currency'];
$amount_value = $array_body['bill']['amount']['value'];
$billId = $array_body['bill']['billId'];
$siteId = $array_body['bill']['siteId'];
$status_value = $array_body['bill']['status']['value'];
/* тут могут быть дополнительные параметры по типу почты, телефона и тд, ознакомьтесь с документацией если они Вам нужны */
$invoice_parameters = $amount_currency . '|' . $amount_value . '|' . $billId . '|' . $siteId . '|' . $status_value;
$sha256_hash = hash_hmac('sha256', $invoice_parameters, $secret_key);
if ($sha256_hash_header == $sha256_hash && !empty($sha256_hash_header) && $status_value == 'PAID') {
/* Проверяем подлинность уведомления и статус платежа "Оплачено". В случае успеха выполняем код, который Вы тут напишите :) */
} else {
http_response_code(404);
die();
}
?>
Как Выставлять счет? В нужной части Вашего проекты добавляем:
PHP:
<?
include 'config.php';
...
/* amount=100 - сумма платежа 100р.
account='1' - id вашего пользователя, например. Это нужно, что бы после оплаты выдать пользователю то что нужно. Все настраивается в обработчики уведомлений конкретно под Ваш проект.
Так же при выставлении счета возможно указать почту, описание и тд
Если Вам все это нужно - ознакомьтесь с документацией qiwi. */
<a href="https://oplata.qiwi.com/create?publicKey='.QIWI('public_key').'&amount=100&successUrl='.QIWI('successUrl').'&account=1">Оплатить</a>
?>
Может, кому-то будет полезным :)