- Сообщений: 988
- Спасибо получено: 146
Как создать и настроить свой веб-сервер на VDS (05 сен 2024)
Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?
Яндекс.Деньги: прием платежей на сайте
- serge
- Автор темы
- Не в сети
- Модератор
Less
Больше
7 года 6 мес. назад #1
от serge
А я смогу! - А поглядим! - А я упрямый!
serge создал тему: Яндекс.Деньги: прием платежей на сайте
Один из способов проверки HTTP-уведомления от Яндекса. Иллюстрация к материалу
Яндекс.Деньги: прием платежей на сайте
:
Code:
$secret_key = '**********************************'; // секретное слово, полученное на Яндексе.
// возможно пригодятся:
// $_POST['operation_id'] - номер операция
// $_POST['amount'] - количество денег, которые поступят на счет получателя
// $_POST['withdraw_amount'] - количество денег, которые будут списаны со счета покупателя
// $_POST['datetime'] - тут понятно, дата и время оплаты
// $_POST['sender'] - если оплата производится через Яндекс Деньги, то этот параметр содержит номер кошелька покупателя
// $_POST['label'] - лейбл, который мы указывали в форме оплаты
// $_POST['email'] - email покупателя (доступен только при использовании https://)
$sha1 = sha1( $_POST['notification_type'] . '&'. $_POST['operation_id']. '&' . $_POST['amount'] . '&643&' . $_POST['datetime'] . '&'. $_POST['sender'] . '&' . $_POST['codepro'] . '&' . $secret_key. '&' . $_POST['label'] );
if ($sha1 != $_POST['sha1_hash'] ) {
// если верификация не пройдена, выполняем этот код, любое действие
exit();
}
// если проверка прошла успешно, любое действие
exit();
А я смогу! - А поглядим! - А я упрямый!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
- Автор темы
- Не в сети
- Модератор
Less
Больше
- Сообщений: 988
- Спасибо получено: 146
7 года 6 мес. назад - 7 года 6 мес. назад #2
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме Яндекс.Деньги: прием платежей на сайте
Еще вариант (найдено в Сети):
Code:
//yandex http-notification
$secret='XXXXXXXXXXXXXXXXXXXXXXX';
if ($_POST) {
$params='notification_type&operation_id&amount¤cy&datetime&sender&codepro';
$params=explode('&',$params);
$forHASH=array();
foreach($params as $key=>$p) {
if (isset($_POST[$p])) array_push($forHASH,$_POST[$p]);
}
if ($secret!="") array_push($forHASH,$secret);
if (isset($_POST['label'])) array_push($forHASH,$_POST['label']);
$forHASH=implode('&',$forHASH);
if ($_POST['sha1_hash']===sha1($forHASH) && $_POST['codepro']!=='true') { //transact ok.
////////////////////////////////
/////// Платёж прошел /////////
////////////////////////////////
$status="Успешно!";
$id=$_POST['label'];
$money=$_POST['amount'];
$tranid=$_POST["operation_id"];
$flow="in";
$paysystem="ym";
$ymfrom=$_POST['sender'];
/*что-то делаем....*/
////////////////////////////////
}
}
А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 7 года 6 мес. назад пользователем serge.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.